Defaults
The window is sliding 60 seconds, not a calendar minute. The
burst
column is the maximum number of requests we’ll let you make at once before
the window kicks in (it refills steadily as time passes). For most callers
the limits are invisible; for heavy callers the headers below tell you exactly
where you stand.
Read-only
GETs and writes count equally toward the limit. Async POST /jobs (blog generation, image gen, etc.) count once at submit; the resulting
job runs server-side and doesn’t add to your request budget.Response headers
Every response — including429 errors — carries the limit headers.
Example:
Hitting the ceiling
When the window is exhausted, the API returns429 Too Many Requests with
code: "rate_limited" and a precise Retry-After:
Backoff strategy
The recipe is the same one we recommend for errors: exponential backoff with full jitter, capped, and always honourRetry-After.
When to use bulk endpoints
If you’re hitting the limit doing many single-key reads, switch to the bulk endpoints — same rate-limit cost (one request) for a much larger payload:
A static-site builder that fetches every key on
next build should issue
exactly one bulk content call per locale.
Asking for higher limits
Higher limits are part of the Build, Scale and Enterprise plans, and we’ll also raise a per-project ceiling for one-off events (a launch, a Black Friday) without changing your tier. Email info@neuraldraft.io with:- Your project id (visible in the dashboard or
GET /v1/projects/me). - Expected peak RPS and total daily volume.
- The window of high traffic, if known.
Abuse, fairness, and quiet limits
In addition to the per-project window, we enforce a few global guardrails to keep the platform fair for everyone:- Per-IP soft cap for unauthenticated public endpoints
(
/v1/public/*) — the limit is generous and adapts to traffic; a single abusive IP can’t degrade your project. If you proxy public traffic behind your own backend, set theX-Forwarded-Forheader — we’ll honour it for attribution. - AI cost ceiling per project per minute — separate from the request
ceiling, this prevents a runaway script from spending your monthly credits in
an hour. Hitting it returns
429withcode: "rate_limited"and a longerRetry-After. If you need to do legitimately heavy AI work, talk to us in advance. - Webhook delivery rate is capped per endpoint at 100 deliveries/sec to avoid stampeding your receiver.
What 429 is not
- Not an account-wide “you’re paying too much” signal — that’s
insufficient_credits. - Not a permanent block — keys auto-recover the moment the window resets.
- Not a sign your key is compromised — but your audit log is the right place
to look if
429s happen unexpectedly. If a key you don’t control is being used, revoke it immediately.