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:
{
"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:
{
"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.