# Limite de cereri

> Fiecare plan stabilește o rată în cereri pe minut: 20, 40 sau 120. amodb numără cererile într-o fereastră glisantă de 60 de secunde. Fiecare răspuns poartă X-RateLimit-Limit, X-RateLimit-Remaining și X-RateLimit-Reset. Peste limită primești HTTP 429 cu status_code 25 și un antet Retry-After în secunde. Răspunsurile din cache se numără și ele.

## Limite în funcție de plan

| Cereri pe minut | Cereri pe zi la rata maximă |
| --------------- | --------------------------- |
| 20              | 28,800                      |
| 40              | 57,600                      |
| 120             | 172,800                     |

Fiecare plan include aceleași endpoint-uri și aceleași date. Vezi [prețurile](https://amodb.dev/ro/pricing/) pentru numele și prețurile planurilor.

## Cum funcționează fereastra

amodb numără cererile fiecărei chei din ultimele 60 de secunde. Fereastra glisează: o cerere făcută la 12:00:30 nu mai este numărată la 12:01:30. Nu există resetare la începutul minutului, deci o rată constantă funcționează mai bine decât rafalele.

Verificarea cheii și limita de cereri rulează înainte de cache-ul de la margine. Un răspuns servit din cache se numără tot ca o cerere.

## Antete de răspuns

Fiecare apel făcut cu o cheie întoarce aceste antete:

| Antet                   | Semnificație                                                        |
| ----------------------- | ------------------------------------------------------------------- |
| `X-RateLimit-Limit`     | Cereri permise pe 60 de secunde pentru această cheie.               |
| `X-RateLimit-Remaining` | Cereri rămase în fereastra curentă.                                 |
| `X-RateLimit-Reset`     | Secunde până când cea mai veche cerere numărată iese din fereastră. |
| `Retry-After`           | Doar la 429: secunde de așteptat până la următorul apel.            |

## Când atingi limita

Răspunsul este HTTP 429, cu corpul de eroare TMDB:

```json
{
  "success": false,
  "status_code": 25,
  "status_message": "Your request count (41) is over the allowed limit of (40)."
}
```

Așteaptă `Retry-After` secunde, apoi reîncearcă. Nu reîncerca într-o buclă strânsă.

```js
async function amodb(path) {
  for (let attempt = 0; attempt < 3; attempt++) {
    const res = await fetch(`https://api.amodb.dev${path}`, {
      headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
    });
    if (res.status !== 429) return res.json();
    const wait = Number(res.headers.get("Retry-After") ?? 1);
    await new Promise((r) => setTimeout(r, wait * 1000));
  }
  throw new Error("amodb: still rate limited after 3 attempts");
}
```

```python
import os
import time
import requests

def amodb(path):
    for _ in range(3):
        res = requests.get(
            f"https://api.amodb.dev{path}",
            headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
            timeout=10,
        )
        if res.status_code != 429:
            return res.json()
        time.sleep(int(res.headers.get("Retry-After", "1")))
    raise RuntimeError("amodb: still rate limited after 3 attempts")
```

## Rămâi sub limită

- Stochează răspunsurile în cache la tine. Detaliile se schimbă rar; 6 ore este o valoare implicită sigură.
- Folosește `append_to_response` ca să obții detalii, credite și imagini într-o singură cerere în loc de trei.
- Distribuie joburile în lot: la 40 de cereri pe minut, trimite o cerere la fiecare 1,5 secunde.
- Citește `X-RateLimit-Remaining` și încetinește înainte să ajungă la 0.

## Întrebări și răspunsuri

### Toate cheile mele au aceeași limită?

Fiecare cheie este numărată în propria fereastră, iar fiecare cheie primește rata planului tău. Folosește o cheie pentru fiecare aplicație, ca o aplicație aglomerată să nu o încetinească pe alta.

### Există o limită zilnică?

Nu. Singura limită este rata pe minut. La 40 de cereri pe minut, o cheie poate face până la 57,600 de cereri pe zi.

### Cererile de imagini se numără?

Nu. Imaginile de pe img.amodb.dev nu cer cheie și nu intră în rata ta.

## Pagini conexe

- [Prețuri](https://amodb.dev/ro/pricing/): Planurile amodb diferă doar prin cereri pe minut: 20, 40 sau 120. Toate includ datele compatibile TMDB v3 și OMDb. Plată în avans, fără reînnoire sau probă.
- [Erori](https://amodb.dev/ro/errors/): Fiecare eroare amodb, cu statusul HTTP, status_code TMDB și mesajul, plus forma erorii OMDb. Ce înseamnă fiecare și ce ar trebui să facă clientul tău.
- [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/rate-limits/
