API

從您自己的網站、商店或程式訂購服務:列出服務與價格、連同任務下訂單、追蹤訂單並取得成果。這與網站上提供的是同一項服務,因此透過 API 下的訂單也會顯示在您的帳戶中。

快速入門

  1. 登入並開啟餘額與 API 金鑰。
  2. 建立金鑰。金鑰只會顯示一次:請複製並像密碼一樣妥善保密。您可以隨時撤銷金鑰。
  3. 為餘額儲值。透過 API 下的訂單以餘額支付,幣別為美元。

每個請求都要附上金鑰:

Authorization: Bearer dlx_your_key

API 位址:https://dleex.com/api/v1。請求與回應均為 JSON。價格與金額皆為整數的美分:1500 代表 $15.00。

服務

GET /services 列出可訂購的服務。

curl https://dleex.com/api/v1/services -H "Authorization: Bearer dlx_your_key"
[
  {
    "service": "seo-article",
    "category": "seo",
    "title": { "en": "SEO article", "ru": "SEO-статья" },
    "linkRequired": false,
    "files": null,
    "script": null,
    "briefQuestions": [
      { "q": { "en": "What is the article about?", "ru": "О чём статья?" }, "hint": { "en": "The topic, or a link to the page.", "ru": "..." } },
      { "q": { "en": "Who will read it?", "ru": "..." } }
    ],
    "packages": [
      { "tier": "basic", "title": { "en": "...", "ru": "..." }, "priceUsdCents": 1500, "days": 2, "revisions": 1 },
      { "tier": "standard", "...": "..." },
      { "tier": "premium", "...": "..." }
    ],
    "addons": [
      {
        "id": 7,
        "title": { "en": "Express delivery", "ru": "Срочное выполнение" },
        "description": null,
        "priceUsdCents": 1000,
        "extraDays": -1,
        "tiers": ["standard", "premium"]
      }
    ]
  }
]

days 是工作所需的天數;revisions 是您可以提出修改請求的次數。addons 是可與 tiers 中的方案一起訂購的加購服務:其價格會加到方案價格上,extraDays 則加到方案的交付期限上(負數代表更快,但絕不少於 1 天)。briefQuestions 是服務針對任務提出的問題,部分附有 hint;下訂單時請在 answers 中回答。若服務沒有任何問題,此清單為空。對於依據連結所開啟的內容來完成的服務(例如個人檔案或貼文,或需要上字幕的錄音),linkRequired 為 true:訂購這類服務時需要提供 link。

不接受隨需求說明附加檔案的服務,其 files 為 null。否則會說明接受哪些檔案,例如 {"accept": ["image"], "maxFiles": 3, "maxMb": 5, "required": true, "insteadOfLink": false}:檔案類型(image、audio、video、document:PDF、DOCX、XLSX)、每份需求說明或修改請求可附的檔案數、每個檔案的大小上限(MB)、需求說明是否至少需要一個檔案,以及檔案能否取代 link(此時對於未附檔案送出的訂單,linkRequired 仍為 true)。請參閱檔案。

不朗讀文字的服務,其 script 為 null。配音服務會列出各方案可朗讀的最長文字(以字元計),例如 {"maxChars": {"basic": 1000, "standard": 3000, "premium": 9000}}:其訂單需要提供 script,即要逐字朗讀的文字。錄音以合成語音朗讀:無論在何處發布,都請告知聽眾該語音為合成語音(請參閱服務條款)。

餘額

GET /balance

{ "balanceUsdCents": 10000, "currency": "USD" }

下訂單

POST /orders。價格(方案與加購服務,扣除任何折扣)會從餘額中扣除,工作隨即開始。

欄位
service必填/services 中的服務
tier必填basic、standard 或 premium
text未提供 answers、script 或 awaitBrief 時必填任務:要做什麼,最多 10,000 個字元。搭配 script 時:如何朗讀(語氣、速度、名稱的唸法)
link選填頁面、個人檔案或貼文的連結,或錄音的連結:檔案的直接連結,或 Dropbox 或 Yandex Disk 連結。linkRequired 為 true 時必填
answers選填對服務 briefQuestions 的回答:[{"q": "question", "a": "answer"}],最多 8 則,每則回答最多 5,000 個字元
script/services 中的 script 不為 null 時必填,其他情況會被拒絕要逐字朗讀的文字,上限為方案的 maxChars(最多 20,000 個字元,換行算一個字元)。段落之間請空一行
locale選填成果的語言,en 或 ru。預設為您帳戶的語言
addons選填/services 中此方案提供的加購服務 id,例如 [7]
promoCode選填優惠碼;若不適用,訂單不會成立(請參閱錯誤)
awaitBrief選填設為 true 可在上傳檔案後再送出需求說明:訂單已付款並以 awaiting_brief 狀態等待。此時請省略 text、link、answers 和 script。請參閱檔案
curl https://dleex.com/api/v1/orders -H "Authorization: Bearer dlx_your_key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: <your-order-id>" \
  -d '{"service":"seo-article","tier":"basic","text":"An article about trail running shoes, 5 keywords: ..."}'

Idempotency-Key 為選填,可讓您安全地重送請求;每筆新訂單都需要新的金鑰。請參閱下方的冪等性。

請提供 text 或至少一則回答,或兩者皆提供;配音服務只需提供 script 即可。在 q 中填寫每個問題時,請依 briefQuestions 中的原文、以訂單的語言填寫,沒有答案的問題可省略:

{
  "service": "seo-article",
  "tier": "basic",
  "answers": [
    { "q": "What is the article about?", "a": "Choosing trail running shoes" },
    { "q": "Who will read it?", "a": "Runners moving from road to trail" }
  ]
}

回應即為訂單(狀態 201):

{
  "id": 1042,
  "status": "in_progress",
  "service": "seo-article",
  "tier": "basic",
  "priceUsdCents": 1500,
  "addons": [],
  "discountUsdCents": 0,
  "promoCode": null,
  "locale": "en",
  "text": "An article about trail running shoes...",
  "link": null,
  "answers": [],
  "script": null,
  "fileIds": [],
  "files": [],
  "revisionsLeft": 1,
  "createdAt": "2026-10-16T11:00:00.000Z",
  "dueAt": "2026-10-18T11:00:00.000Z",
  "deliveredAt": null,
  "autoAcceptAt": null,
  "completedAt": null,
  "results": []
}

檔案

部分服務需要客戶的檔案才能進行,例如要打字輸入的頁面圖片或要上字幕的錄音:這些服務在 /services 中的 files 不為 null。檔案要上傳到正在等待需求說明的訂單:

  1. 以 "awaitBrief": true 下訂單,且不帶 text、link、answers 和 script。訂單會立即付款,狀態為 awaiting_brief;交付期限自需求說明送出時起算。
  2. 針對每個檔案,以 {"name": "page-1.png", "size": 482113, "mime": "image/png"} 呼叫 POST /orders/{id}/files:size 為以位元組計的確切大小,mime 為選填。回應(201)為該檔案及其上傳位置:
{
  "file": { "id": 77, "name": "page-1.png", "mime": "application/octet-stream", "size": 482113, "status": "pending", "used": false, "uploadExpiresAt": "2026-10-16T12:00:00.000Z", "createdAt": "2026-10-16T11:00:00.000Z" },
  "upload": { "url": "https://...", "headers": { "content-type": "application/octet-stream" }, "expiresAt": "2026-10-16T12:00:00.000Z" }
}
  1. 在 upload.expiresAt(一小時)之前,將檔案的位元組以 PUT 傳送到 upload.url,並完全使用所提供的 headers,不附 API 金鑰:
curl -X PUT "$url" -H "content-type: application/octet-stream" --data-binary @page-1.png
  1. 呼叫 POST /orders/{id}/files/{fileId}/complete。大小與 size 不符,或位元組不屬於 accept 中類型的檔案,會以 422 拒絕並刪除:檔名與 mime 不列入判斷。否則回應為該檔案,狀態變為 checking。幾秒後(較長的錄音則需幾分鐘),狀態會變為 ready,或變為 rejected 並在 reason 中說明原因,例如 recording_no_sound 或 file_unreadable。訂單的 files 會顯示各檔案的狀態。
  2. 以 text、link、answers 和 script 呼叫 POST /orders/{id}/brief,用法與 POST /orders 相同。尚未送出的就緒檔案會一併送出,您也可以在 fileIds 中列出要送出的檔案。若其中仍有檔案為 checking,需求說明會以 409 files_not_ready 被拒絕:請稍後再送一次。回應(200)為訂單,狀態變為 in_progress。

DELETE /orders/{id}/files/{fileId} 可撤回尚未送出的檔案。每筆訂單最多可接受 5 個檔案、總計 4 GB;已開始上傳的檔案在完成或撤回前都會列入計算,而自開始上傳起一天內,撤回或被拒絕的檔案會與訂單的檔案合併計入 12 GB 的上限:超過此上限時,上傳會以 409 upload_quota 被拒絕,並附上 retryAt,即恢復接受上傳的時間。已交付的訂單也接受修改請求所需的檔案:以相同方式上傳,再隨請求送出 fileIds。

未使用 awaitBrief 時,若服務的檔案為 required,訂單會以 400 files_required 被拒絕;若服務允許以檔案取代連結,而訂單未附連結送出,則會以 400 link_required 被拒絕。

在訂單中,files 會列出您的檔案及其 status,fileIds 則列出隨需求說明送出的檔案。就緒的檔案有一個 url,可使用至 expiresAt 為止,與成果檔案相同。檔案會在訂單結案後保留 30 天。

冪等性

請求可能在訂單已成立後才逾時。若要重送 POST /orders 而不重複付款,請隨請求傳送 Idempotency-Key 標頭:這是一個由 1 到 255 個可列印 ASCII 字元組成的字串,每筆訂單由您選定一次,例如 UUID 或您自己的訂單編號。重送請求時,請傳送相同的金鑰與相同的內容。

curl -i https://dleex.com/api/v1/orders -H "Authorization: Bearer dlx_your_key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: shop-order-981" \
  -d '{"service":"seo-article","tier":"basic","text":"An article about trail running shoes, 5 keywords: ..."}'

若已有訂單以此金鑰成立,回應即為該訂單的目前狀態,狀態碼為 201,並多一個標頭。不會再次扣款:

HTTP/1.1 201 Created
Idempotent-Replayed: true

驗收、需求說明與修改請求不使用金鑰。驗收可安全地重複:訂單完成後,重複的請求會回應 409 order_not_delivered。需求說明也是如此:送出成功後,重複的請求會回應 409 brief_not_expected,訂單狀態為 in_progress。修改請求則不同:在工作重做期間,重複的請求會回應 409 order_not_delivered,但重做的成果交付後,重複的請求會再提出一次修改。重送修改請求前,請先以 GET /orders/{id} (status 和 revisionsLeft) 檢查訂單。

追蹤訂單

GET /orders/{id} 傳回單筆訂單,GET /orders 傳回您的訂單,最新的排在最前面。清單接受 status、limit(1 到 100,預設 20)和 before(訂單 id,用於取得較舊的訂單)。

訂單狀態:

狀態說明
awaiting_brief以 awaitBrief 下單:等待 POST /orders/{id}/brief
in_progress工作進行中
quality_check工作已完成,交付前正在檢查
delivered成果已就緒,請見 results。請在 autoAcceptAt 之前驗收或提出修改請求
revision正在依您的要求進行修改
completed您已驗收成果,或成果已自動驗收
refunded款項已退回您的餘額

每隔幾分鐘檢查一次即可,不需要更頻繁地查詢。訂單為 delivered 時,results 中包含工作成果:kind 為 text(Markdown)、report(社群媒體訂單的交付報告)或 files(供下載的檔案,body 中可附說明)。每項成果都有一個 files 清單,文字與報告的清單為空:每個檔案都有 name、mime、以位元組計的 size,以及可使用至 expiresAt(約一小時)的 url。重新讀取訂單即可取得新的連結。連結可能會重新導向至檔案儲存空間,因此請跟隨重新導向,例如 curl -L -o result.png "$url",且不要附上 API 金鑰:僅憑連結即可開啟檔案。

驗收與修改

若您對已交付的訂單既不驗收也不提出修改,訂單會在交付後 3 天、於 autoAcceptAt 所示時間自動驗收(其他狀態下為 null)。修改後的新交付會重新起算 3 天。您也可以在網站上驗收工作。若您在交付後於網站上的訂單聊天室留言,訂單將不會自動驗收,且 autoAcceptAt 會維持 null,直到您驗收,或我們重做工作或退款為止。回覆您的訊息後,我們也可能重新起算 3 天:此時 autoAcceptAt 會顯示新的時間。

錯誤

錯誤會附上 HTTP 狀態碼與錯誤代碼:

{ "code": "insufficient_balance" }
狀態代碼說明
400validation欄位缺漏或有誤;fields 會列出這些欄位
400link_required此服務需要 link
400files_required此服務需要檔案:請以 awaitBrief 下訂單並上傳檔案
400script_required此服務會朗讀文字:請在 script 中傳送
400script_too_longscript 超過方案可朗讀的長度;回應中的 maxChars 為可接受的上限。未扣款
400script_not_accepted此服務不朗讀文字(其在 /services 中的 script 為 null):請省略 script。未扣款
400files_not_accepted、file_too_large此服務不接受檔案,或檔案超過其 maxMb
400invalid_idempotency_keyIdempotency-Key 為空、超過 255 個字元,或不是可列印的 ASCII
401invalid_api_key未提供金鑰、金鑰錯誤或金鑰已撤銷。當帳戶未確認的電子郵件透過 Google 登入或設定新密碼而獲得確認時,金鑰也會被撤銷
402insufficient_balance餘額不足;未扣款
404package_not_found、order_not_found、file_not_found找不到該服務、方案、訂單或檔案
409order_not_delivered、no_revisions_left訂單目前的狀態無法執行此操作
409brief_not_expected訂單並未在等待需求說明:下單時未使用 awaitBrief,或需求說明已送出
409uploads_closed僅在訂單等待需求說明或已交付時接受檔案
409files_limit檔案數超過服務每份需求說明或每次請求可接受的數量,或訂單超過 5 個檔案或 4 GB
409upload_quota加上此檔案後,訂單的檔案(包括已送出的檔案及未完成的上傳)與過去一天內開始上傳後被撤回或拒絕的檔案合計超過 12 GB:請在 retryAt 之後再試
409files_not_ready、file_rejected要送出的檔案仍在檢查中,或已被拒絕
409upload_incomplete尚未有任何內容上傳到該連結:請完成 PUT 後再次完成上傳
409file_in_use、file_busy該檔案已隨需求說明或請求送出並保留在訂單中,或正因檢查而移動中:請稍後再試
409addon_unavailable此服務與方案不提供該加購服務
409promo_not_found、promo_inactive、promo_used_up、promo_already_used、promo_first_order_only、promo_min_order優惠碼不存在、目前未啟用、已用完、您已使用過、僅限首筆訂單,或需要更高的訂單金額。未扣款
409idempotency_key_in_progress使用此 Idempotency-Key 的請求仍在處理中;請稍後再重送
410upload_expired、file_removed上傳連結在上傳任何內容前已過期,或您已撤回該檔案:請重新開始上傳
415file_type_not_accepted提供的 mime 不屬於服務接受的類型
422idempotency_key_reused此 Idempotency-Key 已用於不同的請求
422upload_size_mismatch、file_type_not_accepted上傳的檔案大小與 size 不符,或其位元組不屬於服務接受的類型;檔案已刪除
422file_unreadable、recording_no_sound、check_failed、document_no_text、document_protected完成上傳的檔案未通過檢查:無法開啟、錄音沒有聲音,或無法檢查。請重新上傳該檔案或改傳其他檔案。文件沒有可讀取的文字,例如掃描檔(document_no_text),或受密碼保護(document_protected)。
429rate_limited單一金鑰每分鐘超過 120 個請求;請等待 Retry-After 所示的秒數

退款

若我們將訂單退款,款項會退回餘額,訂單狀態變為 refunded。