Limits and usage
Your plan is a number of tokens a day, shared by all your keys and connected apps. A token is about 4 characters of data we send back, the way AI models count.
| Your plan | |
|---|---|
| Tokens a day | The volume you picked on the pricing page (500,000 on the $35 plan, about 150 jobs); resets 00:00 UTC |
| Requests at the same time | 5 |
| Jobs per request | up to 100 |
| Values per filter | up to 50 (titles, companies, locations…) |
| Active API keys | 10 |
What a call costs#
| Call | Tokens |
|---|---|
A search (/v1/jobs, MCP search_jobs, search) | About 300 a job returned |
Opening jobs (/v1/jobs/:id, batch, MCP get_job, get_jobs, fetch) | The size of each job, more with its full description |
A count (/v1/jobs/count, MCP count_jobs, catalog_stats) | At least 2,000: it reads millions of rows |
/v1/meta, /v1/usage, /v1/openapi.json, MCP describe_catalog | Free |
A call that returns an error costs nothing. The call that takes you past your daily tokens is still answered; the next one is refused until the day resets.
Headers#
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Your tokens a day |
X-RateLimit-Remaining | Tokens left today |
X-RateLimit-Reset | When the day resets (Unix seconds) |
Retry-After | On a 429: seconds until you can call again |
Searching descriptions#
description and exclude_description need a title or company in the same search, for example Data Engineer jobs that mention Snowflake. Descriptions are then read only for the jobs those already narrow down, so the search stays fast. To find every job that asks for a tool or skill (Snowflake, Python, dbt) across all companies, use skills instead: it covers the whole catalog and answers in seconds.
How long a request can run#
A REST call can run for up to 2 minutes and an MCP tool call for up to 80 seconds (ChatGPT and Claude stop waiting at about a minute). Almost every search answers in a few seconds; one that would take longer comes back as 400 too_broad, asking you to add a title, company or location.
Going over a limit#
Up to 5 of your requests can run at the same time. A 6th sent while 5 are still running is refused at once with 429 limit_reached and Retry-After: 1; as soon as one finishes, the next can start. Sending calls one after another, or a few at a time, never hits it. Past your tokens for the day, the error says so and Retry-After is the seconds until 00:00 UTC. A refused request costs nothing.
Your live usage is on the dashboard and at GET /v1/usage. Need more? Pick a bigger plan on the pricing page or contact us.