Don't invest unless you're prepared to lose all the money you invest. This is a high-risk investment and you should not expect to be protected if something goes wrong. Take 2 mins to learn more.

DecryptrDevelopers

Errors

Every Decryptr API error code, its HTTP status and what to do about it. Errors use the RFC 9457 problem details format.

Errors come back with a 4xx or 5xx status and a JSON body in the RFC 9457 problem details format, with content type application/problem+json:

{
  "type": "https://www.decryptr.ai/developers/errors#rate_limited",
  "title": "Rate limit reached",
  "status": 429,
  "code": "rate_limited",
  "detail": "This request needs 25 calls; wait 4 s. Ask for a smaller limit to fit the remaining budget.",
  "request_id": "3f6c2a8e-6a1f-4c1e-9d2b-0a5e7c1d9b42",
  "limit": "burst",
  "calls_requested": 25,
  "retry_after": 4
}

Branch on code: it is stable. title and detail are for people and can change. Quote request_id (the same as the X-Request-Id header) when you contact support. A refused request does no work and costs no calls. A lookup that finds nothing (404) is still charged what it asked for.

Some errors carry extra fields:

FieldOnMeaning
errorsinvalid_parameterOne entry per bad parameter.
required_scopeinsufficient_scopeThe scope the endpoint needs.
required_planplan_upgrade_requiredThe lowest plan with this endpoint.
max_itemslimit_too_largeThe most items or ids per request on your plan.
history_dayshistory_limitHow many days back your plan reads.
limit, calls_requested, retry_afterrate_limited, quota_exceededWhich limit was reached (burst, minute or quota), the calls the request asked to reserve, and seconds to wait.
max_streamsstream_limitThe open streams your plan allows.

400 Bad request

CodeMeaning
invalid_parameterA parameter has the wrong type or is out of range. errors names each one.
unknown_parameterA query parameter the endpoint does not take. We refuse these so a typo never returns unfiltered data.
limit_too_largelimit, or the number of ids, is above what your plan allows in one request. max_items says how many.
history_limitThe time range starts before your plan's history window. history_days says how far back you can read.
key_in_queryA key was sent in the query string. Send it in a header, and rotate that key: it may be in logs.

401 Unauthorised

CodeMeaning
missing_keyNo key was sent.
invalid_keyThe key is malformed or not recognised.
key_revokedThe key was revoked.
key_expiredThe key passed its expiry date.

402 Payment required

CodeMeaning
payment_requiredThe subscription behind the key is unpaid after the 7 day grace period, or has been suspended. Sort out billing from your account.
subscription_cancelledThe subscription was cancelled.

403 Forbidden

CodeMeaning
insufficient_scopeThe key does not have the scope for this endpoint. required_scope says which.
plan_upgrade_requiredYour plan does not include this endpoint. required_plan says which plan does.
dataset_unavailableThe data behind this endpoint is switched off for now.
key_suspendedWe paused this key, for example after unusual use. Email [email protected] with the request_id.
account_suspendedThe account is suspended. Email [email protected].

404 Not found

CodeMeaning
not_foundNo item with that id or symbol, or the path does not exist.

405 Method not allowed

CodeMeaning
method_not_allowedv1 is read only: use GET.

429 Too many requests

Always sent with Retry-After. See Rate limits and quotas.

CodeMeaning
rate_limitedA per-second or per-minute limit was reached, or the request is larger than the burst bucket holds right now.
quota_exceededNot enough calls left this month for this request.
stream_limitYou already have your plan's number of open streams. Streams are the news signal stream (Pro and above) and the post stream (Business). Both count towards the same limit.
too_many_auth_failuresToo many failed key checks from your client. Wait, then use a valid key.

5xx Server errors

StatusCodeMeaning
500internal_errorSomething failed on our side. Safe to retry with backoff.
503api_disabledThe API is switched off for now. Retry after Retry-After.
503overloadedThe API is busy. Retry with backoff.
503query_timeoutThe query took too long. Narrow the range or lower limit.

Server errors cost no calls.

On this page