İçeriğe geç
API kılavuzu

Kimlik doğrulama

Markdown olarak görüntüle Güncellendi

Bir modeli çalıştıran veya isteklerinizi okuyan her çağrı için API anahtarı gerekir. Katalog (GET /models, GET /categories), POST /quote ve OpenAPI belgesi herkese açıktır.

API anahtarları

https://doitong.com/developers/dashboard#keys adresinden anahtar oluşturun ve iptal edin. Bir anahtar, doitong_ ile başlayan 64 onaltılık karakterden oluşur ve oluşturduğunuz anda yalnızca bir kez gösterilir. Anahtarı Authorization başlığında gönderin:

terminal
curl https://api.doitong.com/v1/account -H "Authorization: Bearer $DOITONG_API_KEY"

X-API-Key: <key> de çalışır.

Anahtarsız bir istek, missing_api_key koduyla 401 alır; bilinmeyen, iptal edilmiş veya süresi dolmuş bir anahtar da 401 alır.

Kapsamlar

Her anahtar kapsamlar taşır. Model API'si bunları denetler:

Eylem Gerekli kapsam
Bir modeli çalıştırma, bir isteği iptal etme, isteğin dosyalarını silme, depolama ayarını değiştirme models:run (daha eski images:create veya videos:create kapsamlarına sahip anahtarlar da çalışır)
Yükleme URL'si oluşturma models:run veya media:upload
İstekleri ve hesabı okuma models:read (modelleri çalıştırabilen bir anahtar da okuyabilir)

Yeni anahtarlara varsayılan olarak models:read ve models:run verilir. Doğru kapsam olmadan yapılan bir çağrı, insufficient_scope koduyla 403 alır.

Kredi bütçeleri

Bir anahtar, hesap sahibi tarafından belirlenen API kredisi cinsinden kendi bütçesini taşıyabilir (1.000 API kredisi = $1): toplam bütçe, günlük bütçe (son 24 saat) veya her ikisi. Bir çalıştırma ücretlendirilmeden önce maliyet, anahtarın bu API üzerinden şimdiye kadar harcadığı tutarla (iadeler düşüldükten sonra) karşılaştırılır. Bütçeyi aşacak bir çalıştırma 402 budget_exceeded ile reddedilir ve ücret alınmaz.

Bütçesi olmayan bir anahtar, API bakiyesine kadar harcama yapabilir. Ayrıca API bakiyesinin karşılayamadığı bir çalıştırma, top_up_url ile birlikte 402 insufficient_credits alır.

GET https://api.doitong.com/v1/account, API bakiyesini ve anahtarın kalan bütçesini (ikisi de API kredisi cinsinden) gösterir:

200 OK · hesap
{
  "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_..."
}

Anahtarın kendine ait bütçesi olmadığında budget_remaining değeri null olur.

Hız sınırları

Her anahtar, sınırı farklı ayarlanmadıysa saatte 3600 istek yapabilir. Kimliği doğrulanmış her yanıt mevcut durumu içerir:

Başlık Anlamı
X-RateLimit-Limit Mevcut pencerede izin verilen istek sayısı
X-RateLimit-Remaining Mevcut pencerede kalan istek sayısı
X-RateLimit-Reset Pencerenin sıfırlanacağı Unix zamanı

Sınırı aşarsanız Retry-After başlığıyla birlikte 429 alırsınız (saniye). ?wait= ile uzun yoklama, çağrı başına bir istek sayılır; bu nedenle beklemek, sık aralıklarla yoklama yapmaktan daha ekonomiktir.

Ayrıca hesap başına ilerleme durumunda (queued veya running) en fazla 10 istek olabilir. Bir istek daha başlatmak 429 too_many_inflight döndürür; biri tamamlandıktan sonra yeniden başlatın.