Help Centre
Troubleshooting

Why is the UtilitySEO API refusing my request?

Updated 2 min read

On this page

Every refusal from the API has an HTTP status and a short code saying why. The usual ones are unauthorized (401: the key is missing, wrong or revoked), forbidden (403: the key lacks permission or the account has no active plan), rate_limited or scan_limit_reached (429: wait and try again) and scan_running (409: a scan is already in progress).

Project settings, API keys with the count of recent API calls
API keys

Errors look like this:

{ "error": { "code": "not_found", "message": "No scan with that id on this project." } }

The message says what to fix in plain words.

Each error and what to do

Status and codeWhyWhat to do
401 unauthorizedNo key, a mistyped or revoked key, or a token that is not an API keySend Authorization: Bearer usk_live_... with a key from Project settings, API keys. App sign-in tokens and connector keys are not accepted
403 forbiddenThe key's maker lost owner or Full Access rights, or the account has no active planCreate a new key as an owner or Full Access member, or choose a plan in Settings, Billing
400 invalid_requestA value is missing or wrong, for example a page on another website or too many pagesRead message. Page scans must be on the project's own site; maxPages cannot be more than your plan allows
404 not_foundNo such scan, issue or guide on this key's projectCheck the id. Each key sees one project only
409 scan_runningA scan of that type is already runningWait for the scan named in scanId to finish
409 not_finishedYou asked for results before the scan finishedWait, then ask again, or use a webhook
429 rate_limitedMore than 60 requests a minute, or 10 scan starts an hour, on this keyWait the number of seconds in the Retry-After header
429 scan_limit_reachedYour plan's scans for today are used, in the app and the API togetherWait until midnight UK time (resetsAt), or move to a bigger plan
501 not_supportedScheduled scansStart scans from your own scheduler with POST /scans
500 server_errorA fault on our sideTry again shortly

Other things to check

  • Calling from a web page: the API only works from a server. Browsers are refused, which also keeps your key out of sight.
  • A scan restarted: if we update the app while a site scan runs, it starts again under a new id. Asking for the old id answers with the new scan.
  • Your trial ended: the API stops until you choose a plan. Your keys work again straight away after.

See the UtilitySEO API and API webhooks.

Questions people ask

Every answer has X-RateLimit headers. What are they?

X-RateLimit-Limit and X-RateLimit-Remaining show how many requests the key may make in the current minute and how many are left.

Can support see why my request failed?

The API keys tab shows how many calls each project's keys made. For a particular failure, email support@utilityseo.com with the time, the request and the code you got.

Was this helpful?

Still stuck?

Email support@utilityseo.com and a person will reply, usually within one working day. Free setup help is on every plan, trial included.