ข้ามไปยังเนื้อหา
คู่มือ API

การยืนยันตัวตน

ดูเป็น Markdown อัปเดตแล้ว

ทุกการเรียกใช้ที่รันโมเดลหรืออ่านคำขอของคุณต้องใช้คีย์ API แค็ตตาล็อก (GET /models, GET /categories), POST /quote และเอกสาร OpenAPI เป็นสาธารณะ

คีย์ API

สร้างและเพิกถอนคีย์ได้ที่ https://doitong.com/developers/dashboard#keys คีย์จะมีลักษณะ aคือ doitong_ ตามด้วยอักขระฐานสิบหก 64 ตัว และจะแสดงเพียงครั้งเดียวเมื่อสร้าง ส่งคีย์ใน ส่วนหัว Authorization:

เทอร์มินัล
curl https://api.doitong.com/v1/account -H "Authorization: Bearer $DOITONG_API_KEY"

X-API-Key: <key> ก็ใช้ได้เช่นกัน

คำขอที่ไม่มีคีย์จะได้รับ 401 พร้อมโค้ด missing_api_key; คีย์ที่ไม่รู้จัก ถูกเพิกถอน หรือหมดอายุก็จะได้รับ 401 เช่นกัน

ขอบเขต

คีย์แต่ละรายการจะมีขอบเขต API โมเดลจะตรวจสอบขอบเขตเหล่านี้:

การดำเนินการ ขอบเขตที่ต้องใช้
รันโมเดล ยกเลิกคำขอ ลบไฟล์ของคำขอ เปลี่ยนการตั้งค่าพื้นที่จัดเก็บ models:run (คีย์ที่มี images:create หรือ videos:create รุ่นเก่าก็ใช้ได้เช่นกัน)
สร้าง URL สำหรับอัปโหลด models:run หรือ media:upload
อ่านคำขอและบัญชี models:read (คีย์ที่รันโมเดลได้ก็อ่านได้เช่นกัน)

คีย์ใหม่จะได้รับ models:read และ models:run เป็นค่าเริ่มต้น การเรียกใช้ที่ไม่มีขอบเขตที่ถูกต้องจะได้รับ 403 พร้อมโค้ด insufficient_scope

งบประมาณเครดิต

คีย์สามารถมีงบประมาณของตัวเองเป็นเครดิต API (1,000 เครดิต API = $1) ซึ่งเจ้าของบัญชีกำหนดได้ ได้แก่ งบประมาณรวม งบประมาณรายวัน (ย้อนหลัง 24 ชั่วโมง) หรือทั้งสองอย่าง ก่อนเรียกเก็บค่าใช้จ่ายของการรัน ระบบจะตรวจสอบค่าใช้จ่ายเทียบกับจำนวนที่คีย์ใช้ไปแล้วผ่าน API นี้ (หักยอดคืนเงินแล้ว) การรันที่ทำให้เกินงบประมาณจะถูกปฏิเสธด้วย 402 budget_exceeded และจะไม่มีการเรียกเก็บเงิน

คีย์ที่ไม่มีงบประมาณสามารถใช้จ่ายได้สูงสุดเท่ายอดคงเหลือ API แยกกันนั้น การรันที่ยอดคงเหลือ API ไม่เพียงพอจะได้รับ 402 insufficient_credits พร้อม top_up_url

GET https://api.doitong.com/v1/account แสดงยอดคงเหลือ API และงบประมาณที่เหลือของคีย์ (ทั้งสองค่าเป็นเครดิต API):

200 OK · account
{
  "object": "account",
  "credits": 125000,
  "balance": { "credits": 125000, "usd": "125.00" },
  "top_up_url": "https://doitong.com/developers/dashboard#balance",
  "key": {
    "name": "Production server",
    "prefix": "doitong_3fa9c1e...",
    "scopes": ["models:read", "models:run"],
    "budget_remaining": 50000,
    "rate_limit": 3600,
    "rate_limit_remaining": 3571
  },
  "webhook_signing_secret": "whsec_..."
}

budget_remaining จะเป็น null เมื่อคีย์ไม่มีงบประมาณของตัวเอง

ขีดจำกัดอัตราการใช้งาน

คีย์แต่ละรายการส่งคำขอได้ 3600 คำขอต่อชั่วโมง เว้นแต่จะกำหนดขีดจำกัดไว้แตกต่างกัน การตอบกลับที่ผ่านการยืนยันตัวตนทุกครั้งจะมี สถานะปัจจุบัน:

ส่วนหัว ความหมาย
X-RateLimit-Limit จำนวนคำขอที่อนุญาตในช่วงเวลาปัจจุบัน
X-RateLimit-Remaining จำนวนคำขอที่เหลือในช่วงเวลาปัจจุบัน
X-RateLimit-Reset เวลา Unix ที่ช่วงเวลาจะรีเซ็ต

เมื่อเกินขีดจำกัด คุณจะได้รับ 429 พร้อมส่วนหัว Retry-After (วินาที) การโพลระยะยาวด้วย ?wait= จะนับเป็นหนึ่งคำขอ ต่อการเรียกใช้ ดังนั้นการรอจึงประหยัดกว่าการโพลถี่ ๆ

นอกจากนี้ แต่ละบัญชียังมีขีดจำกัดคำขอที่กำลังดำเนินการอยู่ (queued หรือ running) 10 คำขอ การเริ่มเพิ่มอีกหนึ่งคำขอจะส่งคืน 429 too_many_inflight; ให้เริ่มใหม่หลังจากมีคำขอหนึ่งรายการเสร็จสิ้น