message you can act on.
Rate Limits by Plan
Each organization has a per-minute and a per-hour allowance set by its plan. Both windows apply at once: a request is refused as soon as either one is full.
A few expensive operations have an extra, tighter cap of 30 per minute and 300 per hour on top of the plan allowance. These include inviting candidates to an assessment or AI interview, bulk CV imports and generating PDF reports; the reference marks them.
A plan change applies to your allowance within about a minute. An organization whose subscription has lapsed drops to a smaller allowance until it is restored, and API access itself is a plan feature (see Compare Plans).
Rate Limit Headers
Every counted response carries three headers describing the tightest window you are in. A429 adds Retry-After.
Read
RateLimit-Remaining as you go and slow down before it reaches zero. When you do get a 429, wait for Retry-After seconds and retry; do not retry in a tight loop, since every refused request is still counted as an attempt.
Error Codes
Every error is a JSON object. Most carry amessage; some add a details object or, for field-access errors, an error field.
Example Error Bodies
A plan refusal carries adetails object with the feature, the tier it needs and your current tier.
error field and lists both what you asked for and what is allowed.
The field names in the last example are illustrative. The real
allowed_fields list is the one the operation’s reference page documents.Related Resources
- API Keys and Authentication - Where the key comes from and how plan checks apply
- Developer Playground - See the rate-limit headers live and check an operation’s parameters
- Webhooks - Replace polling with pushed events
- API Integrations - What the REST API lets you read and write
