Skip to content

Errors

What each error status means, what its body says and what to do about it.

Every error is JSON with the HTTP status, its name, a message for people and a link to this page:

JSON
{
  "status": 404,
  "error": "Not Found",
  "message": "Item 77 not found",
  "docsUrl": "https://pricana.io/docs/errors#not-found"
}

Limits (402, 429) also say which limit, its value in your plan, and where to upgrade:

JSON
{
  "status": 429,
  "error": "Too Many Requests",
  "message": "The monthly quota of 25,000 calls is used up; it starts over on 1 November",
  "limit": "apiCallsPerMonth",
  "allowed": 25000,
  "plan": "starter",
  "upgradeUrl": "https://pricana.io/pricing",
  "docsUrl": "https://pricana.io/docs/errors#apiCallsPerMonth"
}

Go by status and limit in your code; the message may be worded differently over time.

400 Bad Request

A parameter is not valid: an unknown sort, a malformed date, format=xml … The message names it. Fix the request; asking again won't help. A method an endpoint doesn't take (405, the Allow header says which) and an Accept header that asks for something other than JSON (406) point here too.

401 Unauthorized

No API key, or one that is wrong, revoked or of the old format. Send it as Authorization: Bearer prc_live_…; check it in the portal under API (Authentication).

402 Payment Required

Something your plan doesn't include. limit says what:

Dataset not in your plan

You asked for one of your datasets beyond the number your plan includes (or, on Free, any dataset of your own: Free reads the sample data). Remove one in the portal or upgrade.

Change feed

/changes (and /changes/recent with a key) are in the paid plans. On Free, use /items?changedSince=.

Payment overdue

A payment has been overdue for 30 days, so access to the data is locked until it is paid (terms § 11). upgradeUrl points to the billing page. Nothing is deleted; paying unlocks everything at once.

Webhooks

Webhooks come with Pro and above, or as an add-on.

Users

Your plan's seats are taken (open invitations count): remove someone or upgrade.

403 Forbidden

Your key or login is valid but may not do this: the company account is no longer active, or you left its team.

404 Not Found

No such item, product or dataset among those you can see: it may exist in a dataset you don't have, or have aged out of your plan's history. A path the API doesn't have answers 404 as well: compare it with the API reference.

409 Conflict

The request clashes with the current state (in the portal: a name that is taken, a limit of endpoints). The message says what.

Terms not accepted yet

Signed in to the portal, a user of your company has to accept the terms, the data licence and the acceptable use policy before working with the data. Do it in the portal; API keys aren't affected.

429 Too Many Requests

Too many requests. Retry-After says how many seconds to wait. limit says which:

Requests per second

Your plan's rate (RateLimit-Limit per second). Spread requests out or wait Retry-After seconds; asking again at once keeps failing. Fetch bigger pages (size up to 500) or use an export instead of many small requests.

Calls per month

Your plan's calls for the month are used up (X-Quota-Remaining: 0); they start over on the 1st (UTC). Paid plans can bill further calls instead (overage, see Limits).

Export rows per month

Your export rows for the month are used up (Free and the trial; paid plans bill further rows instead). An export that would go beyond what is left doesn't fail: it ends at the limit and says so in X-Export-Truncated.

5xx

Something went wrong on our side. Try again after a short wait (with growing pauses). If it persists, tell us (Support) with the time and the request.

502, 503, 504

Pricana is briefly unavailable, e.g. during an update. Try again in a few seconds.