The Notra API enforces rate limits on a small set of write-heavy endpoints to protect the service. Read endpoints (listing posts, fetching brand identities, etc.) are not currently rate limited. Limits are scoped per API key, with a sliding window. If your request would exceed the limit, the API returnsDocumentation Index
Fetch the complete documentation index at: https://docs.usenotra.com/llms.txt
Use this file to discover all available pages before exploring further.
429 Too Many Requests and the request is not executed.
Limits
| Endpoint | Limit |
|---|---|
POST /v1/posts/generate | 10 requests / minute |
PATCH /v1/posts/{postId} | 60 requests / minute |
POST /v1/brand-identities/generate | 5 requests / minute |
POST /v1/integrations/github | 20 requests / minute |
Limits are tracked per API key. If a request arrives without an authenticated key, the limit is applied per IP instead. Each endpoint has its own bucket, so hitting the post-generation limit does not affect post updates.
Response headers
Every rate-limited response (success or failure) includes both the IETF draft and legacyX- header names:
| Header | Meaning |
|---|---|
RateLimit-Limit / X-RateLimit-Limit | Maximum requests allowed in the window |
RateLimit-Remaining / X-RateLimit-Remaining | Requests remaining in the current window |
RateLimit-Reset | Seconds until the window resets |
X-RateLimit-Reset | Unix timestamp (seconds) when the window resets |
Retry-After | Seconds to wait before retrying (only sent on 429) |
429 response
When a request is rejected, the API returns:reset is a Unix timestamp in milliseconds. The Retry-After header gives you the same value in seconds and is the simplest field to act on.
Best practices
- Read
RateLimit-Remainingproactively and slow down before you hit zero. - On
429, wait forRetry-Afterseconds before retrying. Do not retry immediately. - Use exponential backoff with jitter for
5xxresponses; treat429as a hard wait, not a retry signal. - For bulk work (e.g. backfilling many posts), space requests evenly across the window rather than bursting.
Need higher limits?
If your workload genuinely needs higher limits, reach out via GitHub and describe the use case and expected volume.Next Steps
API Reference
Explore available endpoints
Authentication
Learn about API key management