> ## Documentation Index
> Fetch the complete documentation index at: https://urbackend-mintlify-1dc05325.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Limits & Quotas

> Rate limits, storage quotas, database size caps, and HTTP status codes for urBackend projects.

## Rate limits

urBackend enforces per-IP rate limits to keep the service stable for all projects.

| Endpoint group                     | Limit                              |
| :--------------------------------- | :--------------------------------- |
| Global API                         | 100 requests per 15 minutes per IP |
| Auth endpoints (`/api/userAuth/*`) | Stricter per-IP limit              |

Requests that exceed the limit receive a `429 Too Many Requests` response. Design your client to back off and retry after the rate limit window resets.

## Storage limits

| Resource                  | Limit          |
| :------------------------ | :------------- |
| File upload size          | 10 MB per file |
| Storage quota per project | 20 MB          |

Files that exceed the limit return `413 Payload Too Large`.

## Database limits

| Resource                  | Limit |
| :------------------------ | :---- |
| Database size per project | 20 MB |

When your project approaches the database quota, writes may be rejected with `403 Forbidden`. Monitor your usage in the Dashboard.

## AI session limits

AI features that use urBackend's platform Groq key are capped per account, per calendar month. The AI Query Builder and the AI Collection Creator (Schema Design) each have their own separate monthly counter.

### AI Query Builder

| Plan | Query Builder requests per month (platform key) |
| :--- | :---------------------------------------------- |
| Free | 5                                               |
| Pro  | 20                                              |

### AI Collection Creator (Schema Design)

| Plan | Schema designs per month (platform key) |
| :--- | :-------------------------------------- |
| Free | 1                                       |
| Pro  | 5                                       |

In addition to the monthly cap, each Collection Creator chat session using the platform key is limited to **20 iterations** (turns) before you must start a new session. This per-session cap protects platform resources against long, runaway conversations.

Requests beyond either the monthly cap or the per-session iteration cap return `403 Forbidden`. Monthly counters reset on the first of the next calendar month (UTC).

To bypass both the monthly cap and the per-session iteration cap, configure a personal Groq API key at the developer or project level. Requests that resolve to a BYOK key are not counted against any platform cap. See [BYOK for AI](/guides/ai-byok).

## HTTP status codes

| Code                        | Meaning               | Common cause                                                       |
| :-------------------------- | :-------------------- | :----------------------------------------------------------------- |
| `200 OK`                    | Request succeeded     | —                                                                  |
| `201 Created`               | Resource created      | Successful `POST` insert                                           |
| `400 Bad Request`           | Invalid request       | Schema validation failure, missing required field                  |
| `401 Unauthorized`          | Authentication failed | Missing or invalid API key, expired JWT                            |
| `403 Forbidden`             | Access denied         | RLS policy violation, quota exceeded, write blocked for `pk_live_` |
| `404 Not Found`             | Resource not found    | Document ID does not exist, invalid file path                      |
| `413 Payload Too Large`     | Upload too big        | File exceeds the per-file size limit                               |
| `429 Too Many Requests`     | Rate limit exceeded   | Too many requests from the same IP within the window               |
| `500 Internal Server Error` | Server-side error     | Unexpected failure; contact support if it persists                 |

<Tip>
  If you are using webhooks, respond to incoming webhook requests within 10 seconds. urBackend retries failed deliveries with exponential backoff, so a slow response can trigger unintended duplicate processing on your end.
</Tip>
