> ## Documentation Index
> Fetch the complete documentation index at: https://developers.everflow.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limiting

> REST API rate limits, concurrency caps, and granular report quotas.

The Everflow **REST API** enforces rate limits to ensure platform stability. The quota is **per network** — a single shared bucket across every API key and every user on that network. There is no per-key or per-user allocation.

<Note>
  The MCP Server has its own dedicated rate limit bucket, separate from the REST API. MCP usage does not count against your REST API quota. See [MCP Limits & Constraints](/ai-automation/mcp/limits) for details.
</Note>

## Request quotas

Rate limits are enforced per customer using a token bucket. Each user type has a sustained request rate and a short burst allowance.

| User type  |     Sustained rate | Burst capacity |
| ---------- | -----------------: | -------------: |
| Network    | 30 requests/second |    50 requests |
| Affiliate  |  5 requests/second |    20 requests |
| Advertiser |  5 requests/second |    20 requests |
| Partner    |  5 requests/second |    20 requests |

Tokens refill continuously at the sustained rate. For example, Network users can sustain 30 requests per second and may temporarily burst up to 50 requests if their bucket is full.

Every response includes headers indicating your current quota:

| Header                  | Description                                            |
| ----------------------- | ------------------------------------------------------ |
| `X-RateLimit-Limit`     | Maximum burst capacity for your current token bucket   |
| `X-RateLimit-Remaining` | Requests currently available before throttling         |
| `X-RateLimit-Reset`     | Unix timestamp (seconds) of the next token refill tick |

Once your available requests are exhausted, requests return `429 Too Many Requests` until enough tokens refill.

## Concurrent request limits

The `/v1/networks/reporting/*` endpoints allow a maximum of **10 concurrent requests**. Additional concurrent requests will return an error. Wait for in-flight requests to complete before sending new ones.

## Granular report quotas

Reporting requests that include certain high-cardinality columns are served by a separate, more granular reporting backend and are subject to their own hourly quota:

| User type  | Queries per hour |
| ---------- | ---------------- |
| Network    | 1,000            |
| Affiliate  | 1,000            |
| Advertiser | 1,000            |

The hourly limit is enforced on a rolling 60-minute window (not aligned to clock hours).

<Note>
  Affiliate and Advertiser granular report quotas are applied at the network level — the 1,000/hour limit is shared across all affiliates (or advertisers) of a given network, not allocated per individual entity.
</Note>

### Columns that trigger granular reporting

A reporting request falls under this quota when it includes at least one of these columns.

<Accordion title="See the full column list">
  **Geolocation:** Country, Region, City, DMA, Carrier, ISP, Connection Type, Postal Code, Is Proxy

  **Device:** Platform, OS Version, Device Type, Browser, Device Brand, Language, Device Model, Device Make

  **Offer:** Offer Group, Offer URL, Event Name, Advertiser Event Name, Payout Type, Payout Amount, Revenue Type, Revenue Amount, Custom Payout Revenue

  **Miscellaneous:** Adv1–Adv5, Sub1–Sub5, Source ID, Project ID, Referrer, Coupon Code, Tracking Domain, Order ID, Attribution Method, Account Referred By, Error Code, Cookie Based, Click Tracking Method, Data Supplement
</Accordion>
