---
title: "AI Content Drop API Rate Limits | AI Content Drop"
description: "Rate limits, RateLimit-* headers, Retry-After behaviour, and generation budgets on the AI Content Drop API."
canonical: "https://aicontentdrop.com/docs/rate-limits"
source: "https://aicontentdrop.com/docs/rate-limits"
---

# AI Content Drop API Rate Limits

## The limits

| Surface | Anonymous | Registered agent token |
| --- | ---: | ---: |
| `/v1/*` REST | 120/minute | 600/minute |
| `POST /graphql` | 120/minute | 600/minute |
| `POST /mcp`, `POST /mcp/docs` | 600/minute | 1,200/minute |
| `POST /ask` (NLWeb) | 60/minute | 300/minute |
| `POST /a2a` | 60/minute | 300/minute |

The MCP ceiling is deliberately higher than the REST one. A single MCP client
session is not one request: connecting fires an initialize, then tools/list,
resources/list and prompts/list, then one read per resource — a hundred-request
burst before the client has done anything a user asked for. A limit sized for
REST refuses an ordinary client mid-handshake.

Read limits are bucketed per IP. A valid [agent-registered token](https://aicontentdrop.com/docs/authentication) selects the higher ceiling for that IP without unlocking account data or generation. A user API key authenticates account and generation operations but does not select the registered-agent read tier.

## Reading the headers

Every response — not just a 429 — carries the standard fields:

```
RateLimit-Limit: 120
RateLimit-Remaining: 118
RateLimit-Reset: 47
RateLimit-Policy: 120;w=60
```

Self-throttle on `RateLimit-Remaining` rather than waiting to be refused. You can observe them with no credential at all: `curl -sD - https://aicontentdrop.com/v1 -o /dev/null`.

## When you are refused

A 429 carries `Retry-After` in seconds and a JSON body naming the window. Wait that long and resume — retrying sooner extends the window rather than shortening it.

```json
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded. Wait 31 seconds and retry.",
    "retry_after_seconds": 31,
    "documentation": "https://aicontentdrop.com/docs/rate-limits"
  }
}
```

## Generation budgets

Generation endpoints carry their own hourly and daily budgets on top of the request rate, tied to the plan on the account. Those are about spend, not traffic: the error message names the specific window that was hit. Unlimited-model access has a separate concurrency and hourly-delay engine, described on [pricing](https://aicontentdrop.com/pricing.md).

## What is not rate limited

The static discovery documents — `/llms.txt`, `/openapi.json`, `/.well-known/*`, markdown twins, and `/graphql/schema.graphql` — are cached and served without a limit. Read them freely.
