Langkau ke kandungan
Panduan API

Pengesahan

Lihat sebagai Markdown Dikemas kini

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:

terminal
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):

200 OK · akaun
{
  "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.