Pengesahan
Setiap panggilan yang menjalankan model atau membaca permintaan anda memerlukan kunci API. Katalog (GET /models, GET /categories), POST /quote dan dokumen OpenAPI adalah awam.
Kunci API
Cipta dan batalkan kunci di https://doitong.com/developers/dashboard#keys. Kunci kelihatan seperti doitong_ diikuti 64 aksara heksadesimal dan hanya dipaparkan sekali, ketika anda menciptanya. Hantar kunci itu dalam pengepala Authorization:
curl https://api.doitong.com/v1/account -H "Authorization: Bearer $DOITONG_API_KEY"
X-API-Key: <key> juga berfungsi.
Permintaan tanpa kunci menerima 401 dengan kod missing_api_key; kunci yang tidak dikenali, telah dibatalkan atau telah tamat tempoh juga menerima 401.
Skop
Setiap kunci mempunyai skop. API model menyemak perkara berikut:
| Tindakan | Skop diperlukan |
|---|---|
| Jalankan model, batalkan permintaan, padam fail permintaan, ubah tetapan storan | models:run (kunci dengan images:create atau videos:create yang lebih lama juga berfungsi) |
| Cipta URL muat naik | models:run atau media:upload |
| Baca permintaan, akaun | models:read (kunci yang boleh menjalankan model juga boleh membaca) |
Kunci baharu mendapat models:read dan models:run secara lalai. Panggilan tanpa skop yang betul menerima 403 dengan kod insufficient_scope.
Belanjawan kredit
Kunci boleh mempunyai belanjawannya sendiri dalam kredit API (1,000 kredit API = $1), yang ditetapkan oleh pemilik akaun: jumlah belanjawan, belanjawan harian (24 jam terakhir), atau kedua-duanya. Sebelum penjanaan dicaj, kos disemak berbanding jumlah yang telah dibelanjakan oleh kunci melalui API ini (selepas bayaran balik). Penjanaan yang akan melebihinya ditolak dengan 402 budget_exceeded dan tiada caj dikenakan.
Kunci tanpa belanjawan boleh membelanjakan sehingga baki API. Secara berasingan, penjanaan yang tidak dapat ditampung oleh baki API menerima 402 insufficient_credits dengan top_up_url.
GET https://api.doitong.com/v1/account memaparkan baki API dan baki belanjawan kunci (kedua-duanya dalam kredit API):
{
"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 ialah null apabila kunci tidak mempunyai belanjawan sendiri.
Had kadar
Setiap kunci boleh membuat 3600 permintaan sejam melainkan hadnya ditetapkan secara berbeza. Setiap respons yang disahkan membawa keadaan semasa:
| Pengepala | Maksud |
|---|---|
X-RateLimit-Limit |
Permintaan yang dibenarkan dalam tetingkap semasa |
X-RateLimit-Remaining |
Permintaan yang masih ada dalam tetingkap semasa |
X-RateLimit-Reset |
Masa Unix apabila tetingkap ditetapkan semula |
Jika melebihi had, anda menerima 429 dengan pengepala Retry-After (saat). Tinjauan berkala yang lama dengan ?wait= dikira sebagai satu permintaan bagi setiap panggilan, jadi menunggu lebih menjimatkan daripada meninjau dengan cepat.
Terdapat juga had 10 permintaan yang sedang berjalan (queued atau running) bagi setiap akaun. Memulakan satu lagi akan mengembalikan 429 too_many_inflight; mulakannya semula selepas satu selesai.