Skip to content

Errors & rate limits

The Jobs API uses standard HTTP status codes. The body is JSON.

StatusMeaningWhat to do
200 OKSuccess.
401 UnauthorizedAPI key missing, malformed, or revoked.Check the Authorization / x-api-key header. Create or rotate the key.
403 ForbiddenThe key is valid, but your plan doesn’t include the public API.Body carries {"code": "public_api_jobs_not_in_plan"}. Upgrade your plan or contact Atlast.
404 Not FoundThe job doesn’t exist, isn’t published, or belongs to another organisation.Treat the job as not publicly available — remove or hide it on your side.
429 Too Many RequestsYou exceeded the rate limit.Back off and retry (see below).
{
"code": "public_api_jobs_not_in_plan",
"message": "Your plan does not include the public Jobs API."
}

Each API key is limited to:

60 requests per minute

The limit is per key, so splitting traffic across multiple keys gives you more headroom (and lets you revoke one without affecting the others).

When you exceed it you get 429 Too Many Requests. Handle it gracefully:

  • Back off — pause briefly before retrying, ideally with exponential backoff and jitter.
  • Spread out bulk reads rather than bursting.
  • Prefer webhooks over polling — if you’re polling frequently to detect changes, switch to webhooks and you’ll rarely hit the limit.
A simple backoff retry
# Pseudocode
attempt=0
until response=200; do
call_api
if response == 429; then
sleep $(( 2 ** attempt )) # 1s, 2s, 4s, 8s…
attempt=$(( attempt + 1 ))
fi
done