# Rate limits, quotas & look-to-book

Every flight search costs real supplier capacity. The limits below keep the platform fast for everyone. Your current limits and usage are always visible in the panel (**Developers → API usage**) and through `GET /account/usage`.

## 1. Rate limit (per key)

| | Limit |
|---|---|
| Requests per minute | 120 (default) |
| Burst | 40 requests at once |

Each response carries:

```http
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 37
X-RateLimit-Reset: 1
```

Above the limit you get `429 rate_limit.exceeded` with `Retry-After` (seconds). Wait that long, then continue. Spread traffic evenly instead of firing bursts.

## 2. Search quotas (per agency, live only)

| | Default |
|---|---|
| Searches per day (UTC) | 5,000 |
| Searches per month | 100,000 |

`X-Quota-Searches-Remaining` shows what is left today. When a quota is used up, searches return `429 quota.searches_daily_exceeded` (or `…_monthly_exceeded`) with `Retry-After` until the next day/month. **Pricing, booking, issuing and reading are never blocked by quotas.**

## 3. Look-to-book ratio (live only)

**Look-to-book = live searches ÷ tickets issued** over a rolling window (30 days by default). Integrations that search heavily but rarely book are expensive for everyone, so the ratio is monitored:

| Your ratio | What happens |
|---|---|
| Below 80% of the maximum | Nothing. |
| Above 80% of the maximum | Warning e-mail to your agency (at most once a week). |
| Above the maximum (default 500 : 1) | The platform may slow down your searches, pause them, or suspend API access, as configured for your account. |

Notes:

- Only live **searches** count as "looks". Pricing an offer or reading bookings does not.
- Tickets issued through the panel and your website count as bookings too, unless your agreement says otherwise.
- The ratio is judged only after at least 1,000 searches in the window.
- Throttling and pausing lift automatically as soon as the ratio is back under the maximum. A suspension is lifted by the QuickOTA team.
- When searching is slowed or paused you get `429 quota.look_to_book_exceeded`; holding, issuing and servicing keep working, so existing customers are not affected.

### How to keep a healthy ratio

- **Cache search results** for a few minutes and reuse them for the same route and date.
- Do not pre-fetch prices for every route "just in case"; search when a customer asks.
- Use `maxResults` to fetch only what you display.
- Use the **price** endpoint (not a new search) to re-check one offer before booking.

Limits can be adjusted per agency. Talk to us if your business needs different numbers.
