Developer API & integrations · API reference

Rate limits, error handling, and the API activity log

Each key gets separate budgets: 120 reads and 30 writes per minute, 50 AI generations per day, and a 100-requests-per-minute safety cap. Every call is recorded in an activity log you can filter in your admin.

How rate limits work

Every API key has separate budgets per kind of work, so heavy reading never blocks your writes. Reads allow 120 requests per minute, writes allow 30 per minute, and AI-generation tools (content and images, which cost real compute) allow 50 per day. On top of that sits a global safety cap of 100 requests per minute per key.

When you exceed a budget you get a 429 response with a Retry-After header telling you how many seconds to wait, plus an X-RateLimit-Remaining header showing what's left in the bucket. Well-behaved clients honor Retry-After instead of hammering retries.

Reading errors

Errors are designed to be self-explanatory: 401 for an invalid or revoked key, 403 with the exact missing scope named, 404 when a tool isn't exposed over the API, 400 for malformed JSON, and 500 if a tool fails internally. Tool-level failures (valid request, but the action couldn't complete) come back as 200 with "ok": false and a readable message — so always branch on the ok field, not just the HTTP status.

The activity log

Everything your keys do is recorded. The activity log shows the 200 most recent API calls with the tool name, arguments, response status, timing, and any error — perfect for debugging a misbehaving integration or auditing what an AI agent actually did.

Step by step

  1. In your admin, go to Integrations → API.
  2. Click "Activity log" in the top right.
  3. Filter by status (all, ok, or errors only), by a specific key, or by tool name.
  4. Click a row to expand it and see the full arguments and error details.

Good to know

  • Filter to "errors only" after connecting a new client — a burst of 403s usually means a missing scope you can add in one click.
  • AI generation is limited to 50 calls per day per key by design; schedule bulk generation jobs across days rather than retrying.

Related articles