---
title: "Rate limits — Tiny Plates recipe API"
description: "How requests count against each plan's daily and weekly limits, what a 429 looks like, when it resets and how to stay under."
url: "https://www.tinyplates.dev/docs/rate-limits"
---

# Rate limits

Every account's requests count against its plan's limits, across all of its keys. See the [plans](https://www.tinyplates.dev/pricing) for what each one includes.

## The limits

| Plan       | Daily limit | Weekly limit |
| ---------- | ----------- | ------------ |
| Free       | 50          | 300          |
| Personal   | 5,000       | No limit     |
| Business   | 20,000      | No limit     |
| Enterprise | Custom      | Custom       |

* The day resets at midnight UTC, not 24 hours after your first request.
* The week is rolling: today and the previous six UTC days. Room comes back as older days drop out of the window.
* Every request that carries a key counts, including ones that answer with an error.

Your [dashboard](https://www.tinyplates.dev/dashboard/usage) shows what you have used, and what each key has used per day and per endpoint.

## Going over

Once a limit is spent, every call from the account answers `429` until the window moves. On Free the message says which allowance ran out and points at the plans:

```
{
  "error": {
    "message": "Daily allowance of 50 requests used. It resets at midnight UTC. Paid plans include more; see https://www.tinyplates.dev/pricing."
  }
}
```

```
{
  "error": {
    "message": "Weekly allowance of 300 requests used. It covers the last 7 days. Paid plans include more; see https://www.tinyplates.dev/pricing."
  }
}
```

Paid plans get a message that names the plan and the limit:

```
{
  "error": {
    "message": "Daily limit of 5,000 requests on the Personal plan reached. It resets at midnight UTC. Contact us for a higher limit."
  }
}
```

There is no `Retry-After` header yet. The daily limit is back at midnight UTC; the weekly one frees up as days drop out of the window. Until then, back off rather than retrying immediately.

## Staying under

* Cache what does not change. `/vocabularies` changes rarely; fetch it once at start-up, not per request.
* Ask for less. `limit` and the `fields` parameter on [search](https://www.tinyplates.dev/docs/api/search-recipes) both cut the work.
* Use a key per application. It will not raise the ceiling, but the dashboard then tells you which one is spending it.
* Need more? See the plans on the [pricing page](https://www.tinyplates.dev/pricing), or [contact us](https://www.tinyplates.dev/contact) for Enterprise.
