# מגבלות קצב

> כל מסלול קובע קצב בבקשות לדקה: 20, 40 או 120. amodb סופר בקשות בחלון נע של 60 שניות. כל תגובה נושאת את X-RateLimit-Limit, את X-RateLimit-Remaining ואת X-RateLimit-Reset. מעבר למגבלה מקבלים HTTP 429 עם status_code 25 וכותרת Retry-After בשניות. גם תגובות מהמטמון נספרות.

## מגבלות לפי מסלול

| בקשות לדקה | בקשות ביום בקצב מלא |
| ---------- | ------------------- |
| 20         | 28,800              |
| 40         | 57,600              |
| 120        | 172,800             |

כל מסלול כולל את אותן נקודות קצה ואת אותם נתונים. ראו [תמחור](https://amodb.dev/he/pricing/) לשמות המסלולים ולמחירים.

## איך החלון עובד

amodb סופר את הבקשות של כל מפתח ב-60 השניות האחרונות. החלון נע: בקשה שנשלחה ב-12:00:30 מפסיקה להיספר ב-12:01:30. אין איפוס בתחילת הדקה, ולכן קצב יציב עובד טוב יותר מפרצי בקשות.

בדיקת המפתח ומגבלת הקצב רצות לפני מטמון הקצה. תגובה שמוגשת מהמטמון עדיין נספרת כבקשה אחת.

## כותרות תגובה

כל קריאה שנעשית עם מפתח מחזירה את הכותרות האלה:

| כותרת                   | משמעות                                           |
| ----------------------- | ------------------------------------------------ |
| `X-RateLimit-Limit`     | מספר הבקשות המותר ל-60 שניות עבור המפתח הזה.     |
| `X-RateLimit-Remaining` | מספר הבקשות שנשארו בחלון הנוכחי.                 |
| `X-RateLimit-Reset`     | שניות עד שהבקשה הישנה ביותר שנספרה יוצאת מהחלון. |
| `Retry-After`           | ב-429 בלבד: שניות להמתנה לפני הקריאה הבאה.       |

## כשמגיעים למגבלה

התגובה היא HTTP 429 עם גוף השגיאה של TMDB:

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

המתינו `Retry-After` שניות ואז נסו שוב. אל תנסו שוב בלולאה צפופה.

```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")
```

## איך להישאר מתחת למגבלה

- שמרו תגובות במטמון אצלכם. פרטים משתנים לעתים רחוקות; 6 שעות הן ברירת מחדל בטוחה.
- השתמשו ב-`append_to_response` כדי לקבל פרטים, קרדיטים ותמונות בבקשה אחת במקום בשלוש.
- פזרו עבודות אצווה: ב-40 בקשות לדקה, שלחו בקשה אחת כל 1.5 שניות.
- קראו את `X-RateLimit-Remaining` והאטו לפני שהוא מגיע ל-0.

## שאלות ותשובות

### האם כל המפתחות שלי חולקים מגבלה אחת?

כל מפתח נספר בחלון משלו, וכל מפתח מקבל את הקצב של המסלול שלכם. השתמשו במפתח אחד לכל אפליקציה, כדי שאפליקציה עמוסה לא תאט אחרת.

### יש תקרה יומית?

לא. המגבלה היחידה היא הקצב לדקה. ב-40 בקשות לדקה מפתח יכול לבצע עד 57,600 בקשות ביום.

### האם בקשות תמונות נספרות?

לא. תמונות ב-img.amodb.dev לא צריכות מפתח ולא נספרות בקצב שלכם.

## עמודים קשורים

- [תמחור](https://amodb.dev/he/pricing/): המסלולים של amodb נבדלים רק בבקשות לדקה: 20, 40 או 120. כל מסלול כולל את כל הנתונים התואמים ל-TMDB v3 ול-OMDb. תשלום מראש, בלי חידוש ובלי ניסיון.
- [שגיאות](https://amodb.dev/he/errors/): כל שגיאה של amodb עם סטטוס HTTP, status_code והודעה של TMDB, וגם מבנה השגיאה של OMDb. מה כל אחת מהן אומרת ומה הלקוח שלכם צריך לעשות כשהיא מופיעה.
- [אימות](https://amodb.dev/he/authentication/): איך שולחים את מפתח amodb: api_key בשאילתה, כותרת Authorization Bearer או apikey בקריאות OMDb. פורמט המפתח, שמירה, החלפה ושגיאות 401 שכדאי להכיר.
- [מדריך למתחילים](https://amodb.dev/he/quickstart/): בצעו את הקריאה הראשונה ל-amodb: קבלו מפתח, בקשו פרטי סרט ב-curl, JavaScript, Python, PHP או Go, ואז טענו את הפוסטר מ-img.amodb.dev. פחות מ-2 דקות.

עודכן: 2026-10-18. Source: https://amodb.dev/he/rate-limits/
