API ถอดเสียงเป็นข้อความของ Hushscript รับเสียงบันทึกผ่าน /v1/ แล้วให้สคริปต์ของคุณตรวจสอบงานเป็นระยะและอ่านข้อความถอดเสียงได้ นี่คือขั้นตอนถอดเสียงออนไลน์ ไม่ใช่เอนด์พอยต์สำหรับสตรีมสดหรือเรียกโมเดลรู้จำเสียงโดยตรง เซิร์ฟเวอร์ MCP ใช้บัญชี ยอดคงเหลือ และโทเคนแบบ bearer เดียวกัน เมื่อไคลเอนต์ของคุณต้องการใช้เครื่องมือแทนการเรียก HTTP
ถอดเสียงจากเสียงและวิดีโอผ่าน API
API ถอดเสียงรับไฟล์เสียงที่เตรียมไว้แล้ว รวมถึงเสียงพูดที่บันทึกไว้ สำหรับการเชื่อมต่อ STT (speech-to-text) ให้ส่งไฟล์บันทึก เพราะไม่รองรับการสตรีมจากไมโครโฟนแบบสด หากต้องการถอดเสียงวิดีโอ ให้อัปโหลดไฟล์ MP4 หรือ MOV ที่มีแทร็กเสียงได้ตามเดิม เซิร์ฟเวอร์จะอ่านแทร็กเสียงและข้ามส่วนวิดีโอ หากเป็นรูปแบบวิดีโออื่น ให้แยกเสียงออกมาก่อน API ไม่รับ URL วิดีโอ ดูขั้นตอนในเบราว์เซอร์ได้ที่ ถอดข้อความจากวิดีโอ
เริ่มต้นใช้งาน
API ต้องใช้โทเคนเข้าถึงส่วนบุคคล ซึ่งมีสองวิธีในการรับโทเคน บุคคลสร้างโทเคนได้ใต้ สร้างโทเคนใหม่ ใน หน้า MCP ในบัญชี เลือกขอบเขตสิทธิ์ และกำหนดว่าโทเคนจะซื้อนาทีได้หรือไม่ หรือเอเจนต์เปิดบัญชีของตัวเองโดยไม่มีมนุษย์เป็นเจ้าของบัญชี: POST /v1/agent/accounts เริ่มการสมัครแบบชำระเงิน และ POST /v1/agent/accounts/{signup_id}/claim ใช้รหัสลับเปิดใช้งานบัญชีที่ใช้ได้ครั้งเดียวแลกเป็นบัญชีจริงและโทเคนแรก ไม่ว่ารับด้วยวิธีใด โทเคนจะแสดงเพียงครั้งเดียวและมีรูปแบบ hsr1:<region>:pat.<id>.<secret> โทเคนที่สร้างผ่านการเข้าสู่ระบบ OAuth ของเซิร์ฟเวอร์ MCP ก็ใช้ได้ที่นี่ ดู เชื่อมต่อ โทเคนไม่สามารถสร้าง แสดงรายการ หรือเพิกถอนโทเคนอื่นได้ และบัญชีหนึ่งมีโทเคนที่ใช้งานได้สูงสุด 25 ตัว ดูขั้นตอนบัญชีเอเจนต์ทั้งหมด รวมถึงการหมุนเวียนข้อมูลรับรอง ได้ที่ การถอดเสียงอัตโนมัติ
เมื่อมีโทเคนแล้ว คุณเรียก API ได้โดยตรง ตัวอย่างนี้แสดงบัญชีส่วนตัวใหม่ก่อนยืนยันบัตรหรือซื้อแพ็กเกจ ส่วนบัญชีที่เอเจนต์สร้างจะเริ่มด้วยแพ็กเกจนาทีที่ชำระเงินไว้:
curl https://api.hushscript.com/v1/account \
-H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293"
{
"balance_seconds": 0,
"held_seconds": 0,
"credits_expire_at": null,
"card_on_file": false,
"data_region": "eu",
"limits": {
"max_active_jobs": 50,
"max_daily_seconds": 144000,
"active_jobs": 0,
"used_today_seconds": 0
}
}
คำตอบนี้แสดงยอดคงเหลือเป็นวินาที วินาทีที่พักไว้สำหรับงานที่กำลังดำเนินการ credits_expire_at (เป็น null เสมอ เพราะนาทีไม่มีวันหมดอายุ) สถานะบัตรที่บันทึกไว้ ภูมิภาคข้อมูล และขีดจำกัดการรับงาน (max_active_jobs, max_daily_seconds และปริมาณที่ใช้ไปแล้ว) ขีดจำกัดรายวันคือขีดจำกัดที่มีผลกับบัญชีในปัจจุบัน ไม่ใช่ค่าที่ควรกำหนดตายตัวในโค้ด POST /v1/uploads ตรวจสอบนาทีที่ใช้ได้ ไม่ใช่บัตร หากนาทีไม่พอจะตอบกลับด้วย 3001 insufficient_balance
API ถอดเสียงเป็นข้อความใช้ฟรีหรือไม่?
ไม่มี API ระดับใช้ฟรีทั่วไป แต่คุณลองขั้นตอนก่อนเขียนโค้ดได้: ตัวอย่างถอดเสียง สาธารณะถอดเสียงได้สูงสุดห้านาทีจากไฟล์บันทึกหนึ่งไฟล์ก่อนเข้าสู่ระบบ จากนั้นบัญชีส่วนตัวที่มีสิทธิ์จะได้รับฟรี 30 นาทีหลังยืนยันบัตร (ดูวิธีที่หน้า ราคา) บัญชีที่เอเจนต์สร้างจะไม่ได้รับนาทีต้อนรับ แต่เริ่มด้วยแพ็กเกจที่ซื้อตอนสมัคร ไม่ว่ากรณีใด งาน API เต็มรูปแบบต้องมีบัญชีและนาที
ทำให้เป็นอัตโนมัติตั้งแต่ต้นจนจบ
คำขอ /v1/ ชุดเดียวกันใช้ได้กับโทเคนที่บุคคลสร้างในแอป หรือโทเคนที่เอเจนต์ได้รับเมื่อเปิดใช้งานบัญชีหลังสมัครแบบชำระเงิน (ดู การถอดเสียงอัตโนมัติ) การบันทึกบัตรต้องทำผ่าน Checkout แบบโฮสต์ในเบราว์เซอร์ ซึ่งเอเจนต์ควบคุมได้ การซื้อแบบ off-session ในภายหลังยังอาจถูกปฏิเสธหากผู้ออกบัตรต้องการการยืนยันตัวตน
-
อ่านข้อมูลบัญชี
GET /v1/accountหากต้องซื้อนาทีและcard_on_fileเป็น false ให้บันทึกบัตรก่อน -
บันทึกบัตรครั้งเดียว
POST /v1/billing/setup-sessionตอบกลับcheckout_url,session_idและexpires_at:curl -X POST https://api.hushscript.com/v1/billing/setup-session \ -H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293"{ "checkout_url": "https://checkout.stripe.com/c/pay/cs_live_a1B2c3D4e5F6g7H8", "session_id": "seti_1PxYzQ2eZvKYlo2C", "expires_at": "2026-09-11T15:45:00Z" }เปิด URL ในเบราว์เซอร์ที่คุณควบคุมและทำขั้นตอนในหน้า Stripe แบบโฮสต์ให้เสร็จ ไม่มีการเรียกเก็บเงิน และ Hushscript ไม่เห็นข้อมูลบัตร จากนั้น
GET /v1/billing/cardsจะแสดงรายการบัตรพร้อม id หากบัญชีมีหลายใบ ใช้POST /v1/billing/cards/defaultเปลี่ยนบัตรเริ่มต้น -
ซื้อนาที
GET /v1/billing/packsแสดงแพ็กเกจทั้งห้าพร้อมid,seconds,amountและcurrency:curl https://api.hushscript.com/v1/billing/packs \ -H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293"POST /v1/billing/purchaseพร้อมpack,quick_payment_method_id(id ของบัตรที่บันทึกไว้) และidempotency_keyจะเรียกเก็บเงินจากบัตรแบบ off-session และตอบกลับbalance_secondsใหม่:curl -X POST https://api.hushscript.com/v1/billing/purchase \ -H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293" \ -H "Content-Type: application/json" \ -d '{ "pack": "300min", "quick_payment_method_id": "pm_2QeT4bY7uX9mK3nP", "idempotency_key": "purchase-2026-09-11-02" }'{ "balance_seconds": 18000 }คำขอนี้ต้องมีขอบเขต
billingและเปิดใช้การเรียกเก็บเงินทั้งบนโทเคนและบัญชี หากเนื้อหาคำขอไม่มี id ของบัตร หรือบัตรถูกปฏิเสธ จะตอบกลับ4021 pat_purchase_requires_appหากผู้ออกบัตรต้องการการยืนยันตัวตนเพิ่มเติม จะตอบกลับ4023 pat_purchase_requires_authenticationทั้งสองกรณีไม่เปิดหน้าเว็บที่ไม่มีใครทำต่อให้เสร็จได้ -
อัปโหลด
POST /v1/uploadsพร้อมsize_bytes,duration_seconds(15 วินาทีถึง 10 ชั่วโมง),titleที่ระบุหรือไม่ก็ได้,transcription_options,matter_codeและidempotency_key:curl -X POST https://api.hushscript.com/v1/uploads \ -H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293" \ -H "Content-Type: application/json" \ -d '{ "size_bytes": 41943040, "duration_seconds": 1200, "title": "Q3 board call", "transcription_options": { "speaker_detection": true }, "idempotency_key": "upload-2026-09-11-02" }'matter_codeเป็นข้อความอิสระยาวไม่เกิน 64 อักขระ และมีผลเฉพาะกับโทเคนที่เป็นของพื้นที่ทำงาน โดยแสดงคู่กับงานในบันทึกรายการและรายงานการใช้งานของพื้นที่ทำงาน หากนโยบายเรื่องงานกำหนดให้ต้องระบุรหัส พื้นที่ทำงานจะปฏิเสธการอัปโหลดที่ไม่มีรหัสด้วยorg_matter_code_requiredส่วนclient_codeจะรับไว้แต่ไม่นำไปใช้ เพราะลูกค้าเป็นข้อมูลของเรื่องงานที่แอดมินพื้นที่ทำงานกำหนดคำขอนี้จะพักเครดิตไว้และตอบกลับ
job_idพร้อมหน้าแรกของ URL ส่วนไฟล์ที่ลงลายเซ็นไว้ล่วงหน้า:{ "job_id": "job_5e2a91cf4d7b6081a9f3c2e4b5d6a7c8", "part_urls": [ { "n": 1, "url": "https://r2.hushscript.com/uploads/job_5e2a91cf.../part-1?X-Amz-Signature=..." } ] }ส่งแต่ละส่วนด้วย
PUTไปยัง URL ของส่วนนั้น (ค่าเริ่มต้นคือส่วนละ 32 MiB โดยส่วนสุดท้ายเล็กกว่า):curl -X PUT "https://r2.hushscript.com/uploads/job_5e2a91cf.../part-1?X-Amz-Signature=..." \ --data-binary @part-01.binดึงหน้าถัดไปจาก
GET /v1/uploads/{job}/part-urls?start=<n>และเรียกPOST /v1/uploads/{job}/heartbeatก่อนถึงเวลาหมดอายุจากการไม่มีกิจกรรม 20 นาที โดยเผื่อเวลาไว้ระหว่างการโอนที่ใช้เวลานาน หากใช้ URL ที่ลงลายเซ็นล่วงหน้าไม่ได้ หรือส่งส่วนใดไม่สำเร็จ ให้ใช้PUT /v1/uploads/{job}/parts/{n}ส่งไบต์ของส่วนนั้นผ่าน API แทน การส่งPUTซ้ำจะแทนที่ส่วนนั้น จึงลองใหม่ได้อย่างปลอดภัย รองรับ: mp3, m4a, mp4 หรือ mov (ใช้แทร็กเสียง ข้ามแทร็กวิดีโอ), wav, flac, ogg หรือ opus ซึ่งเซิร์ฟเวอร์จะตรวจสอบ หากเป็นรูปแบบวิดีโออื่น ให้แยกเสียงออกมาก่อนอัปโหลด -
เริ่มและรอ
POST /v1/uploads/{job}/completeพร้อมnและetagของทุกส่วนที่ส่งไปยัง URL ที่ลงลายเซ็นไว้ล่วงหน้า (ละpartsหากส่งทุกส่วนผ่าน API):curl -X POST https://api.hushscript.com/v1/uploads/job_5e2a91cf4d7b6081a9f3c2e4b5d6a7c8/complete \ -H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293" \ -H "Content-Type: application/json" \ -d '{ "parts": [ { "n": 1, "etag": "\"9f86d081884c7d65\"" } ] }'จากนั้นตรวจสอบ
GET /v1/jobs/{id}เป็นระยะ:stateเปลี่ยนจากuploadingผ่านqueuedและprocessingไปเป็นdoneหรือfailedงานที่เสร็จแล้วมีtranscript_id:curl https://api.hushscript.com/v1/jobs/job_5e2a91cf4d7b6081a9f3c2e4b5d6a7c8 \ -H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293"{ "id": "job_5e2a91cf4d7b6081a9f3c2e4b5d6a7c8", "state": "done", "transcript_id": "trs_2b6e1d4a9f7c3088a1b2c3d4e5f6a7b9" } -
อ่านผลลัพธ์
GET /v1/transcripts/{id}ตอบกลับเมทาดาทาและเนื้อหาทั้งหมด พร้อมชื่อผู้พูด ภาษาที่ตรวจพบ แท็ก และวันลบอัตโนมัติ:curl https://api.hushscript.com/v1/transcripts/trs_2b6e1d4a9f7c3088a1b2c3d4e5f6a7b9 \ -H "Authorization: Bearer hsr1:eu:pat.7f3a9c.2b6e1d4a9f2c88b1a3d4e5f60718293"GET /v1/transcriptsแสดงรายการแบบแบ่งหน้า
ตัวเลือกการถอดเสียงตรงกับแอปทุกตัว: language_code หรือการตรวจหาภาษาอัตโนมัติ, speaker_detection, medical_mode (ต้องระบุ language_code เป็น en, es, fr หรือ de และคิดเพิ่ม +100%), translation_targets (+25% ต่อภาษา), multichannel, keyterms_prompt, prompt แบบข้อความอิสระ รวมถึง dictionary_ids และ prompt_preset_id ที่บันทึกไว้และแสดงรายการผ่าน GET /v1/transcription-context
บางส่วนของบัญชียังใช้ได้ผ่าน MCP เท่านั้น การนำเข้าจากลิงก์ การแก้ไขหรือลบข้อความถอดเสียง Insights การส่งออก การบันทึกพจนานุกรมและพรอมต์สำเร็จรูป และการตั้งค่าบัญชียังไม่มีเส้นทาง /v1/ เซิร์ฟเวอร์ MCP รองรับทั้งหมดด้วยโทเคนเดียวกัน
การยืนยันตัวตน
ทุกคำขอ /v1/ ส่งโทเคนแบบ bearer ในส่วนหัว Authorization โดยตรวจสอบกับขอบเขตสิทธิ์ชุดเดียวกับที่เซิร์ฟเวอร์ MCP ใช้:
| ขอบเขต | สิ่งที่อนุญาต |
|---|---|
transcripts:read |
อ่านและส่งออกข้อความถอดเสียง ข้อมูลเมทาดาทา และรายการที่ถูกลบ |
transcripts:write |
แก้ไข ติดแท็ก แปล กู้คืน และลบข้อความถอดเสียง |
transcribe |
อัปโหลดไฟล์บันทึกเสียง นำเข้าจากลิงก์ และเริ่มการถอดเสียง |
insights |
อ่าน สร้าง และลบ Insights |
context |
จัดการพจนานุกรมที่บันทึกไว้และพรอมต์สำเร็จรูป |
account:read |
อ่านยอดคงเหลือ การใช้งาน รายการธุรกรรม และยอดพักไว้ |
settings:write |
เปลี่ยนการตั้งค่าบัญชี |
org:read |
อ่านสมาชิกพื้นที่ทำงาน บันทึกรายการ ใบแจ้งหนี้ และบันทึกการตรวจสอบ |
org:write |
เปลี่ยนสิทธิ์ของสมาชิก ตั้งเวลาการย้ายไปการครอบครองแบบองค์กร (ถาวร) และอายัดหรือเลิกอายัดทางกฎหมาย |
export |
ร้องขอการส่งออกข้อมูลบัญชีทั้งหมด ตรวจสอบสถานะ และดาวน์โหลด |
billing |
บันทึกบัตรและซื้อแพ็กเกจนาที |
คำขอที่อยู่นอกขอบเขตของโทเคนจะล้มเหลวด้วย pat_scope_missing ที่สถานะ 403 ขอบเขต billing ก็ใช้ไม่ได้จนกว่าจะเปิดใช้การเรียกเก็บเงินทั้งบนโทเคนและบัญชี หากสวิตช์ใดปิดอยู่ คำขอเรียกเก็บเงินจะล้มเหลวด้วย pat_scope_missing เช่นกัน การสร้างโทเคนใหม่ไม่ได้เปิดสวิตช์ของบัญชี โทเคนไม่สามารถสร้าง แสดงรายการ หรือเพิกถอนโทเคนได้ และบัญชีหนึ่งมีโทเคนที่ใช้งานได้สูงสุด 25 ตัว
ผู้เรียกเลือกขอบเขตทั้ง 11 รายการนี้ได้ ส่วน pat:rotate เป็นขอบเขตแยกที่มอบให้โทเคนแรกของบัญชีเอเจนต์และโทเคนที่สืบต่อจากการหมุนเวียน โดยให้โทเคนแทนที่ตัวเองได้ ไม่ใช่จัดการโทเคนอื่น คุณเลือกขอบเขตนี้ไม่ได้เมื่อสร้างโทเคนในแอป
เอนด์พอยต์
เอกสาร OpenAPI ของระบบจริงระบุ 38 การดำเนินการตามเมธอด/พาธใน 37 พาธ แต่ละการดำเนินการด้านล่างต้องมีขอบเขตสิทธิ์ที่ระบุ:
| เมธอด | พาธ | ขอบเขต |
|---|---|---|
POST |
/v1/agent/accounts |
none |
POST |
/v1/agent/accounts/{signup_id}/claim |
none |
POST |
/v1/agent/credentials/rotate |
pat:rotate |
GET |
/v1/account |
account:read |
POST |
/v1/billing/setup-session |
billing |
GET |
/v1/billing/cards |
billing |
POST |
/v1/billing/cards/default |
billing |
GET |
/v1/billing/packs |
billing |
POST |
/v1/billing/purchase |
billing |
GET |
/v1/billing/transactions |
account:read |
GET |
/v1/billing/ledger |
account:read |
GET |
/v1/billing/holds |
account:read |
POST |
/v1/uploads |
transcribe |
GET |
/v1/uploads/{job}/part-urls |
transcribe |
PUT |
/v1/uploads/{job}/parts/{n} |
transcribe |
POST |
/v1/uploads/{job}/heartbeat |
transcribe |
POST |
/v1/uploads/{job}/complete |
transcribe |
GET |
/v1/jobs |
transcribe |
GET |
/v1/jobs/{id} |
transcribe |
GET |
/v1/transcripts |
transcripts:read |
GET |
/v1/transcripts/deleted |
transcripts:read |
GET |
/v1/transcripts/{id} |
transcripts:read |
GET |
/v1/transcription-context |
context |
GET |
/v1/org |
org:read |
GET |
/v1/org/members |
org:read |
PATCH |
/v1/org/members/{user_id} |
org:write |
GET |
/v1/org/matters |
org:read |
GET |
/v1/org/transcripts |
org:read |
POST |
/v1/org/transcripts/{id}/hold |
org:write |
DELETE |
/v1/org/transcripts/{id}/hold |
org:write |
POST |
/v1/org/custody |
org:write |
GET |
/v1/org/invoices |
org:read |
GET |
/v1/org/ledger |
org:read |
GET |
/v1/org/ledger.csv |
org:read |
GET |
/v1/org/usage |
org:read |
GET |
/v1/org/usage.csv |
org:read |
GET |
/v1/org/audit |
org:read |
GET |
/v1/org/audit.csv |
org:read |
/v1/agent/accounts เริ่มการสมัครที่เอเจนต์ดำเนินการได้โดยยังไม่มีโทเคน /v1/agent/accounts/{signup_id}/claim เปิดใช้งานบัญชีจากการสมัครที่ชำระเงินแล้วเป็นบัญชีจริงพร้อมโทเคนแรก และ /v1/agent/credentials/rotate สร้างโทเคนที่สืบต่อจากโทเคนที่เรียก และยกเลิกโทเคนนั้นเมื่อโทเคนที่สืบต่อถูกใช้ครั้งแรก โดยไม่แตะข้อมูลรับรองอื่นในบัญชี ดูทั้งสามขั้นตอนตั้งแต่ต้นจนจบได้ที่ การถอดเสียงอัตโนมัติ
ทุกรายการรับ limit และ cursor ที่ผู้เรียกไม่ต้องตีความ แล้วตอบกลับ next_cursor ซึ่งเป็น null ในหน้าสุดท้าย ส่ง cursor กลับโดยไม่เปลี่ยนแปลง เพราะค่าดังกล่าวเข้ารหัสตำแหน่งไว้ จึงไม่ข้ามหรือแสดงหน้าซ้ำเมื่อมีแถวใหม่เข้ามาระหว่างคำขอ
นิยามฉบับเต็มที่เป็นปัจจุบัน พร้อมพารามิเตอร์และสคีมาคำตอบของทุกการดำเนินการ อยู่ใน เอกสาร OpenAPI ให้ยึดเอกสารนี้เป็นแหล่งอ้างอิงเหนือกว่าตารางนี้ โทเคนแบบ bearer ใดก็เข้าถึงได้โดยไม่จำกัดขอบเขต ไคลเอนต์จึงดึงเอกสารด้วยข้อมูลรับรองที่มีอยู่ได้
อินเทอร์เฟซ MCP
ต้องการใช้เครื่องมือแทน HTTP โดยตรงหรือไม่? เซิร์ฟเวอร์ MCP ให้เข้าถึงบัญชีเดียวกันผ่านเครื่องมือ 56 รายการแทนเอนด์พอยต์เหล่านี้ สำหรับไคลเอนต์ที่รองรับ MCP อยู่แล้วแทน REST โดยประกาศเฉพาะเครื่องมือที่ขอบเขตของโทเคนที่เชื่อมต่ออนุญาต
ขีดจำกัด
คำขอที่ใช้โทเคนของบัญชีบุคคลจำกัดที่ 1,200 ครั้งต่อนาทีต่อโทเคน โทเคนที่หมุนเวียนของบัญชีเอเจนต์ใช้โควตานี้ร่วมกันทั้งบัญชี เส้นทางเรียกเก็บเงินที่เรียก Stripe ใช้ขีดจำกัดที่เข้มกว่าร่วมกัน คือ 60 ครั้งต่อนาทีต่อบัญชีสำหรับผู้เรียกด้วย PAT: เซสชันตั้งค่า การซื้อ การเปลี่ยนบัตรเริ่มต้น การลบบัตร และกรณีที่ไม่พบรายการบัตรในแคช การจำกัดอัตราทั่วไปตอบกลับ 429 rate_limited พร้อม Retry-After เป็นวินาที ให้รอตามนั้นก่อนลองใหม่ การซื้อของบัญชีเอเจนต์หรือด้วย PAT ของบัญชีบุคคลใช้เพดานร่วมกันที่ 3 ครั้งต่อช่วง 24 ชั่วโมงแบบต่อเนื่องต่อบัญชี การซื้อตอนสมัครของเอเจนต์นับรวมด้วย รวมถึงการปฏิเสธหรือข้อผิดพลาดหลังกันโควตาความพยายามซื้อไว้แล้ว การซื้อผ่านเซสชันเบราว์เซอร์ของบุคคลได้รับยกเว้น การปฏิเสธเพราะถึงเพดานตอบกลับ HTTP 429 พร้อม 4038 agent_purchase_capped และ Retry-After ไฟล์บันทึกยาวได้ตั้งแต่ 15 วินาทีถึง 10 ชั่วโมง GET /v1/account รายงานขีดจำกัดการรับงานปัจจุบันของบัญชี (max_active_jobs, max_daily_seconds)
แซนด์บ็อกซ์
ไม่มีแซนด์บ็อกซ์ทั่วไปสำหรับการถอดเสียง: คำขอ /v1/ ปกติทำงานกับบัญชีจริง และการซื้อใช้เงินจริง ข้อยกเว้นคือการตรวจสอบการสมัคร: POST /v1/agent/accounts รับ dry_run: true ตอบกลับ id การสมัคร dry_ ที่ใช้เปิดใช้งานบัญชีไม่ได้ และไม่เปิดเซสชัน Stripe หรือบัญชี
ข้อผิดพลาด
ข้อผิดพลาดเป็นเนื้อหา JSON ที่มี code ตัวเลขคงที่และ slug ของ error พร้อมสถานะ HTTP ตามตารางด้านล่าง เนื้อหาข้อผิดพลาด /v1/ มีโครงสร้างที่กำหนดตายตัว: error, code และชุดคีย์รายละเอียดที่กำหนดไว้ รูปแบบข้อผิดพลาด /api ไม่ได้กำหนดตายตัวและอาจมีข้อมูลเพิ่มเติม รหัสที่ผู้เรียกอัตโนมัติต้องจัดการมีดังนี้:
| สถานะ | รหัส | Slug | ความหมาย |
|---|---|---|---|
| 401 | 2000 | unauthorized |
ไม่มีโทเคนแบบ bearer หรือโทเคนไม่ถูกต้อง |
| 403 | 2022 | pat_forbidden |
เส้นทางนี้ไม่รับโทเคนใดๆ เลย |
| 403 | 2023 | pat_scope_missing |
โทเคนไม่มีขอบเขตที่คำขอนี้ต้องใช้ หรือบัญชีปิดใช้การเรียกเก็บเงินอยู่ |
| 403 | 4021 | pat_purchase_requires_app |
ไม่ได้ระบุบัตรที่บันทึกไว้ หรือการเรียกเก็บเงินถูกปฏิเสธ ไม่มีการเรียกเก็บเงินใดๆ เกิดขึ้น |
| 403 | 4023 | pat_purchase_requires_authentication |
ผู้ออกบัตรต้องการการยืนยันตัวตนเพิ่มเติมที่ผู้เรียกทำต่อไม่ได้ ตัวบัตรเองไม่มีปัญหา |
| 402 | 3001 | insufficient_balance |
ยอดคงเหลือไม่พอสำหรับรับงานนี้ |
| 402 | 3002 | card_declined |
บัตรที่บันทึกไว้ถูกปฏิเสธ |
| 402 | 3003 | org_insufficient_balance |
พูลของพื้นที่ทำงานที่ใช้นาทีสำหรับการอัปโหลดนี้มีไม่พอ |
| 404 | 4000 | not_found |
ไม่มีงาน การอัปโหลด หรือทรัพยากรนี้อยู่ |
| 409 | 4001 | wrong_state |
ทรัพยากรนี้ไม่อยู่ในสถานะที่อนุญาตให้ทำสิ่งนี้ |
| 422 | 1021 | duration_out_of_range |
ระยะเวลาที่ระบุต่ำกว่า 15 วินาทีหรือเกิน 10 ชั่วโมง |
| 429 | 4038 | agent_purchase_capped |
บัญชีใช้โควตาความพยายามซื้อผ่านโทเคนครบแล้ว รอตาม Retry-After |
| 429 | 5000 | rate_limited |
คำขอมากเกินไป รอตามส่วนหัว Retry-After |
| 502 | 6001 | provider_error |
บริการต้นทางล้มเหลว |
| 500 | 9000 | internal_error |
ข้อผิดพลาดของเซิร์ฟเวอร์ที่ไม่คาดคิด |
เอกสาร OpenAPI ระบุรหัสที่แต่ละการดำเนินการคืนค่าได้อย่างแน่นอน และเซิร์ฟเวอร์ MCP เผยแพร่รายการรหัสทั้งหมดผ่านทรัพยากร hushscript://error-codes