Baslangic ve Auth
DIP API, dokuman parse ve arama akislarini programatik olarak kullanmaniz icin tasarlanmis M2M (makine-to-makine) bir arayuzdur. Bu bolum, entegrasyona baslamadan once bilmeniz gereken auth, hata formati ve rate limit kurallarini anlatir.
API Key
Her istek bir API key ile kimliklendirilir. Key iki tipte gelir:
dip_live_...— gercek tenant verisi, billing ve rate limit'e tabi.dip_test_...— staging/entegrasyon testleri icin; billing ve rate limit'ten muaftir, sabit bir hard-cap ile sinirlidir.
Key'ler yalnizca dashboard'dan (user-app, oturum tabanli auth ile) olusturulur ve iptal edilir — API'nin kendisi key CRUD islemi sunmaz. Yeni bir key olusturuldugunda ham deger yalnizca o cevapta gorunur, sonrasinda tekrar gosterilmez; guvenli bir yerde saklayin.
Bearer ile kimliklendirme
Tum istekler Authorization basligina Bearer seklinde key icermelidir:
Authorization: Bearer dip_live_a1b2c3d4e5f6...
- Eksik/gecersiz key ->
401 unauthorized - Iptal edilmis (revoke) key -> yine
401 unauthorized, mesajinvalid_or_revoked_key - Key dogrulandiktan sonra tum sorgular otomatik olarak o key'in tenant'ina
scope edilir. Baska bir tenant'a ait bir kaynagi id ile sorgulasaniz bile
404donulur (kaynagin varligini sizdirmamak icin403degil).
Hata formati
Tum hatalar ayni zarfla doner:
{ "error": { "code": "...", "message": "...", "request_id": "..." } }
| HTTP | code | Anlami |
| --- | --- | --- |
| 400 | invalid_request | Eksik/hatali alan |
| 401 | unauthorized | Eksik, gecersiz veya revoke edilmis key |
| 402 | insufficient_credit | Bakiye negatif, upload reddedildi |
| 404 | not_found | Kaynak yok ya da baska tenant'a ait |
| 413 | payload_too_large | Dosya boyutu limiti asildi |
| 422 | unprocessable_file | Desteklenmeyen format ya da bozuk dosya |
| 429 | rate_limited | Throttle limiti asildi (Retry-After ile) |
| 500 | internal_error | Beklenmeyen sunucu hatasi |
| 503 | service_unavailable | Alt sistem gecici olarak musait degil |
Rate limit
Her cevapta (basarili ya da 429) rate limit basliklari doner. Limitler
tenant bazinda anahtarlanir, IP bazinda degil:
| Scope | Limit |
| --- | --- |
| tenant_upload | 60 / dakika |
| tenant_status | 600 / dakika |
| tenant_search | 300 / dakika |
429 alindiginda Retry-After header'indaki saniye kadar bekleyip tekrar
deneyin; istemci tarafinda exponential backoff onerilir.