APIPočetak
Greške
Format grešaka, šta znači svaki status i kad zahtjev ponoviti.
Greške se vraćaju kao application/problem+json (RFC 9457) sa stabilnom šifrom u code. Granajte kod po code, ne po tekstu u detail — tekst se može poboljšati, šifra ostaje.
400 invalid_request
{
"type": "https://api.cifra.ba/errors/invalid_request",
"title": "Bad Request",
"status": 400,
"code": "invalid_request",
"detail": "The request does not match the schema.",
"request_id": "033ce4b4-d930-4b5a-9cf9-6b2b006ac473",
"errors": [
{
"path": "year",
"message": "year is in the future",
"code": "custom"
},
{
"path": "mileage_km",
"message": "Too small: expected number to be >=0",
"code": "too_small"
},
{
"path": "doors",
"message": "doors applies to car only, not motorcycle",
"code": "custom"
}
]
}Statusi
| Status | Značenje | Ponoviti? |
|---|---|---|
400 | Zahtjev nije ispravan: polja, JSON, parametri. | Ne, ispravite zahtjev |
401 | Nema ključa, nepoznat ili istekao. | Ne |
403 | Ključ ne smije ovo: pristup, IP adresa, pauza. | Ne |
404 | Ne postoji (ili je druge kompanije ili okruženja). | Ne |
409 | Sukob sa stanjem: pun limit praćenja, isključena adresa. | Ne, promijenite stanje |
413 | Prevelik zahtjev ili lista. | Ne, podijelite |
422 | Ispravan oblik, ali nemoguć sadržaj: nepoznata marka, datum u budućnosti. | Ne |
429 | Limit u minuti ili mjesečna kvota. | Da, nakon Retry-After (osim kvote) |
5xx | Greška kod nas. | Da, s eksponencijalnim čekanjem |
Greške u listama
Masovna procjena i uvoz portfelja ne padaju zbog jednog vozila: odgovor je 200, a svako vozilo ima ili rezultat ili error na svom mjestu (index). Naplaćuju se samo uspjeli.
Stavka s greškom
{
"index": 2,
"error": {
"code": "unknown_model",
"detail": "Unknown model \"pasat\" for Volkswagen. See GET /v1/taxonomy/makes/volkswagen/models."
}
}Upozorenja nisu greške
Procjena može uspjeti i nositi warnings: npr. nedostaju podaci pa je raspon širi. Prikažite ih ili zabilježite; nepoznatu šifru upozorenja tretirajte kao informaciju. Sva upozorenja: Tržišna vrijednost.
Sve šifre
Potpuna lista sa statusom, uzrokom i rješenjem: Šifre grešaka.
Česte greške
| Status | Šifra | Kad | Šta uraditi |
|---|---|---|---|
| 400 | invalid_body | Tijelo nije JSON. | Pošaljite Content-Type: application/json i ispravan JSON. |
| 401 | missing_token | Zahtjev nema ključ. | Pošaljite Authorization: Bearer cfr_live_… (ili x-api-key). |
| 401 | invalid_token | Ključ ne postoji, opozvan je ili nije dobrog oblika. | Provjerite da šaljete cijeli ključ, bez razmaka; napravite novi u Razvoj → API ključevi. |
| 401 | token_expired | Ključu je prošao datum isteka. | Napravite novi ključ ili produžite postojeći na platformi. |
| 403 | key_paused | Vaša kompanija je pauzirala ključ. | Administrator ga nastavlja u Razvoj → API ključevi. |
| 403 | token_suspended | Cifra je privremeno zaustavila ključ. | Javite se podršci. |
| 403 | ip_not_allowed | Ključ prima zahtjeve samo s dozvoljenih adresa, a ova nije među njima (odgovor nosi ip). | Dodajte adresu ili CIDR raspon ključu na platformi. |
| 403 | insufficient_scope | Ključ nema pristup ovoj usluzi (npr. Provjera vozila bez listings). | Dodajte pristup ključu ili koristite drugi ključ. |
| 413 | payload_too_large | Tijelo je veće od 2 MB. | Podijelite listu na manje zahtjeve. |
| 429 | rate_limited | Previše zahtjeva u minuti. | Sačekajte Retry-After sekundi i ponovite; ravnomjerno raspodijelite zahtjeve. |
| 429 | quota_exceeded | Potrošena mjesečna kvota ugovora (odgovor nosi quota, used, resets_at). | Kvota se obnavlja 1. u mjesecu (UTC); za veću se javite prodaji. |
| 429 | key_limit_reached | Ključ je potrošio mjesečni limit koji mu je postavila vaša kompanija (limit, used, resets_at). | Administrator povećava limit ključa na platformi. |
| 500 | internal_error | Greška na strani Cifre. | Ponovite zahtjev; ako se ponavlja, pošaljite request_id podršci. |