Skip to content
jot.co.zm

Rate limits

Per-second request limits by plan, plus the separate monthly link quota and bulk-create ceiling.

Three independent numbers govern what you can do — don't conflate them:

1. Per-second request rate (every /v1/* call)

A token-bucket limit, keyed to your API key, enforced on every request — reads, writes, and webhook management alike:

PlanRequests/second
Free2
Plus5
Team10
Business/API50
Enterprise50 (negotiable by contract; implemented identically to Business today)

Every response — successful or not — carries:

X-RateLimit-Remaining: <n>
X-RateLimit-Limit: <n>

Exceeding it returns 429 with { "error": "Too many requests" } and a Retry-After: <seconds> header.

2. Bulk-create's own ceiling

POST /v1/links/bulk is rate-limited separately from the table above — 100 requests/second, the same for every plan, since a single bulk request can already create up to 5,000 links. This is on top of (not instead of) your plan's per-item batch-size cap — see Links.

How many links your plan can create per calendar month, across the dashboard and the API combined — there's no separate, larger API allowance. Check it anytime:

GET /v1/usage — scope: read

{
  "periodStart": 1759276800,
  "linksCreated": 42,
  "linksQuota": 150,
  "clicks": 318,
  "plan": "free"
}

linksQuota is null on Enterprise (no cap). On Free/Plus/Team, exceeding it returns 422 with { "error": "Monthly link quota exceeded", "remaining": 0 } — upgrade to raise it, nothing is throttled without that explicit error. Business/API doesn't hard-stop: it includes 50,000 links/month, then bills overage per the pricing page.