---
title: "Rate limits"
description: "Every INBIO rate limit in one place — free endpoints, plan tiers, and handling 429s."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.in.bio/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate limits

## Keyless endpoints (per IP)

| Endpoint | Limit |
| --- | --- |
| `POST /api/shorten` | **5 requests/minute**, 100/day |
| `GET /api/qr` | **30 requests/minute** (responses cached for a day) |

## REST API v1 (per account)

| Plan | Limit |
| --- | --- |
| Pro | **60 requests/minute** |
| Business | **300 requests/minute** |

Every response carries the standard headers:

```
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 42
```

## When you hit a limit

Exceeding a limit returns `429` with a `Retry-After` header (seconds). Wait
that long and retry — all [official SDKs](/sdks) do this automatically for
requests that carry `Retry-After`.

## Other limits worth knowing

- Anonymous link creation on the website: 10/hour, 30/day per IP (a captcha
  appears after the first few).
- Bulk create: up to **100 links per request** (Business).
- Custom slugs: 4–64 characters, `a-z A-Z 0-9 - _`.
- Webhook deliveries retry 5 times with growing backoff; an endpoint failing
  20 times in a row is disabled automatically.

If you have a legitimate use case that needs more, email
[hello@in.bio](mailto:hello@in.bio) — limits are policy, not physics.

Source: https://docs.in.bio/rate-limits/index.mdx
