# Erori

> Apelurile în stil TMDB întorc erorile în corpul TMDB: success false, un status_code numeric și un status_message. Apelurile în stil OMDb întorc Response False cu un șir Error. amodb folosește 8 coduri TMDB, de la 7 pentru o cheie invalidă la 25 pentru limita de cereri și 36 pentru un plan expirat. Reîncearcă doar 429, 500 și 504.

## Corpul de eroare în stil TMDB

Fiecare eroare de la `https://api.amodb.dev/3` are aceeași formă JSON ca în TMDB:

```json
{
  "success": false,
  "status_code": 34,
  "status_message": "The resource you requested could not be found."
}
```

## Coduri de eroare

| HTTP | status_code | status_message                                                               | Ce să faci                                 |
| ---- | ----------- | ---------------------------------------------------------------------------- | ------------------------------------------ |
| 401  | 7           | Invalid API key: You must be granted a valid key.                            | Verifică cheia și modul în care o trimiți. |
| 401  | 10          | Suspended API key: Access to your account has been suspended, contact amodb. | Scrie la <support@amodb.dev>.              |
| 402  | 36          | Your plan has expired. Renew at <https://amodb.dev/pricing>                  | Plătește o perioadă nouă.                  |
| 404  | 34          | The resource you requested could not be found.                               | Verifică ID-ul sau calea.                  |
| 405  | 37          | This method is not offered by amodb.                                         | Folosește un endpoint de citire.           |
| 429  | 25          | Your request count (N) is over the allowed limit of (L).                     | Așteaptă `Retry-After` secunde.            |
| 500  | 11          | Internal error: Something went wrong, contact amodb.                         | Reîncearcă după câteva secunde.            |
| 504  | 24          | Your request to the backend server timed out. Try again.                     | Reîncearcă după câteva secunde.            |

## Corpul de eroare în stil OMDb

Endpoint-ul compatibil OMDb păstrează forma și formularea OMDb:

```json
{
  "Response": "False",
  "Error": "Movie not found!"
}
```

Un apel OMDb cu `r=xml` întoarce HTTP 400. Folosește `r=json` sau omite `r`.

## Tratează erorile în cod

```js
const res = await fetch("https://api.amodb.dev/3/movie/550", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) {
  const err = await res.json();
  if (res.status === 429) {
    // wait Retry-After seconds, then retry
  }
  throw new Error(`amodb ${res.status} code ${err.status_code}: ${err.status_message}`);
}
```

```python
res = requests.get(url, headers=headers, timeout=10)
if not res.ok:
    err = res.json()
    raise RuntimeError(f"amodb {res.status_code} code {err['status_code']}: {err['status_message']}")
```

## Situații de rezervă care nu sunt erori

- O etichetă `language` necunoscută nu produce eroare. amodb servește engleza pentru ea.
- Un câmp fără date este `null` sau un array gol, ca în TMDB.

## Întrebări și răspunsuri

### Ce erori ar trebui să reîncerce clientul meu?

Reîncearcă 429 după Retry-After secunde, iar 500 sau 504 cu o pauză de câteva secunde. Nu reîncerca 401, 402, 404 sau 405: același apel eșuează din nou.

### De ce primesc 405 pentru un endpoint TMDB?

amodb nu oferă metodele TMDB de scriere pentru cont, sesiune, evaluări și liste. Ele întorc 405 cu status_code 37. Toate endpoint-urile de citire funcționează.

## Pagini conexe

- [Limite de cereri](https://amodb.dev/ro/rate-limits/): amodb limitează fiecare cheie în cereri pe minut, în fereastră glisantă de 60 de secunde: 20, 40 sau 120. Citește antetele și tratează 429 cu Retry-After.
- [Autentificare](https://amodb.dev/ro/authentication/): Cum trimiți cheia amodb: api_key în interogare, antetul Authorization Bearer sau apikey pentru apelurile OMDb. Format, stocare, rotire și erorile 401.
- [Ghid rapid](https://amodb.dev/ro/quickstart/): Fă primul apel amodb: ia o cheie, cere detaliile unui film în curl, JavaScript, Python, PHP sau Go, apoi încarcă posterul de pe img.amodb.dev. Sub 2 minute.

Actualizat: 2026-10-18. Source: https://amodb.dev/ro/errors/
