Dokumentáció: Kreditek és korlátok

Fejlesztői dokumentáció

Kreditek, hibák és korlátok

Mennyibe kerül egy API-hívás, hogyan kérj árajánlatot költés előtt, milyen hibakódokat kaphatsz, és mik a sebességkorlátok.

Kreditek és árak

Az API, az MCP és a CLI ugyanabból a kreditegyenlegből von le, ugyanazon az áron, mint a web – nincs külön API-ár vagy felár. A csomagokat és a kreditcsomagokat az Árak oldalon találod.

  • Az API a pénzt egész millikreditben adja meg: 1 kredit = 1000 mc. A CLI kreditben írja ki.
  • Az aktuális árakat mindig a szervertől kérdezd: fotoai models, GET /api/v1/models (teljes ártábla) vagy az MCP list_models eszköze („-tól” ár). Ne írj árat a kódodba.
  • Generáláskor a szerver lefoglalja az árat; sikeres eredménynél levonja, hibánál, elutasításnál és lemondásnál felszabadítja. Kreditet csak sikeres generálás visz.

Árajánlat költés előtt

Minden felületen kérhetsz árat anélkül, hogy költenél: POST /api/v1/quote, az MCP quote eszköze, vagy a CLI --dry-run kapcsolója és a fotoai quote parancs.

Terminál
fotoai image "portré egy kávézóban" -a 3:4 --dry-run
fotoai quote video "lassú séta" -m <modell-id>

AI-ügynököknek

Egy ügynök ugyanúgy költ, mint a felhasználó. Mindig kérj előbb árat, mutasd meg a felhasználónak, és csak a jóváhagyása után generálj. Soha ne generálj ciklusban, és ne ismételj meg automatikusan egy generálást a felhasználó engedélye nélkül.

A REST API-ban a quote_id (vagy max_millicredits) felső korlát: ha a tényleges ár ennél magasabb lenne, a szerver 409 PRICE_CHANGED-dzsel elutasítja a kérést, és nem foglal le semmit. A CLI mindig így küldi a generálást.

Ki használhatja

HozzáférésCsomagEllenőrzés
Személyes API-kulcs, MCP, CLIProKulcs létrehozásakor és minden kérésnél – a Pro lejártával a kulcs azonnal leáll.
OAuth-partneralkalmazás (Posty)Bármely csomag, a regisztrációs kreditekkel isA kredit dönti el, mi generálható; a modellek csomagkorlátai ugyanúgy érvényesek, mint a weben.

Hibakódok

A hibák formája { "error": { "code": "…", "message": "…", "details": { … } } }. A code a szerződés, a message magyar, embereknek szól. Az OAuth-végpontok (/oauth/token, /oauth/revoke) az RFC 6749 szerinti { "error": "invalid_grant" } formát adják.

KódHTTPMit jelent
VALIDATION400Hibás kérés: details.issues vagy details.param / reason.
UNAUTHENTICATED401Hiányzó, ismeretlen, lejárt vagy visszavont token / kulcs.
PAYWALL402Csomagkorlát: details.requiredTier (modell, felbontás, hossz), vagy a kulcshoz Pro kell (details.requiredPerk: "mcp"). Mindig van details.plans_url.
INSUFFICIENT_CREDITS402Nincs elég kredit: details.required, details.available, details.topup_url.
FORBIDDEN403Hiányzó scope, session_only útvonal, tartozás (DEBT) vagy túl sok biztonsági elutasítás (POLICY).
NOT_FOUND404Nem létezik – vagy más felhasználóé.
PRICE_CHANGED409Az ár a jóváhagyott korlát fölé ment, vagy változott a katalógus: kérj új árajánlatot.
RATE_LIMITED429Sebességkorlát: Retry-After, details.scope, details.resetAt.
CONCURRENCY_LIMIT429A csomagod párhuzamos helyei foglaltak: Retry-After: 15, várj és próbáld újra.
DAILY_CAP429Napi keret: Retry-After 00:00 UTC-ig.
SERVICE_PAUSED503A szolgáltatás átmenetileg szünetel.
MODEL_UNAVAILABLE503A modell ki van kapcsolva vagy szolgáltatói hibák miatt szünetel.
PROVIDER_ERROR503A szolgáltató hibázott az indításkor; nem vontunk le kreditet.

Egy már elfogadott, később elbukó feladat nem HTTP-hiba: az állapota failed vagy rejected lesz error.code-dal (például PROVIDER_ERROR, REJECTED_SAFETY), és a lefoglalt kredit felszabadul.

Sebességkorlátok

KorlátÉrtékHatókör
Kérések (API-kulcs, MCP, CLI)60 / perckulcsonként
Kérések (OAuth-partner, v1)240 / percengedélyenként
Generálás indítása (kulcs / engedély)30 / 10 perckulcsonként vagy engedélyenként; a csomagfuttatás egynek számít
Generálás (minden csatorna együtt)20 / 10 percfelhasználónként – ez a meghatározó
Generálás IP-címenként40 / 10 percOAuth-partnerekre nem vonatkozik
Párhuzamos feladatokFree 1 kép / 1 videó · Alap 2 / 1 · Plusz 4 / 2 · Pro 8 / 4felhasználónként; a csomagfuttatás egy helyet foglal
Feltöltés120 / 10 percfelhasználónként, a webbel közösen

A 429 válasz mindig tartalmaz Retry-After fejlécet: annyi másodperc múlva próbáld újra. A gyakorlatban egy sorozatot a csomagod párhuzamos helyei lassítanak (CONCURRENCY_LIMIT) – ilyenkor tedd sorba a kéréseket.