Documentation contents
Error codes
Every error follows RFC 9457 (application/problem+json). Your code relies on the code field, which is stable; the title is translated and may change.
-
unauthenticatedMissing, invalid or expired token. -
forbiddenThis token is not allowed to perform this action. -
token.missing_scopeThe token does not carry the required scope. -
api.not_in_planThe API is not included in your plan. -
api.write_not_in_planWrite access to the API is not included in your plan. -
plan_limitYour plan limit has been reached. -
rate_limitedYour plan rate limit was exceeded, retry later. -
not_foundResource not found. -
method_not_allowedThis route does not support this HTTP method. -
validation_failedThe request contains invalid values. -
pagination.invalid_cursorInvalid pagination cursor, or one issued for another request. -
idempotency.key_requiredThis write requires an Idempotency-Key header. -
idempotency.key_invalidInvalid Idempotency-Key header (1 to 255 visible ASCII characters). -
idempotency.key_reusedThis Idempotency-Key was already used for another request. -
idempotency.in_progressA request with this Idempotency-Key is still in progress. -
project.lockedRead-only project: your plan no longer covers it. Nothing runs, everything stays readable. -
project.not_configuredIncomplete project: declare its business model and create a campaign before launching a crawl. -
crawl.already_runningA crawl is already running for this team; one crawl runs at a time. -
crawl.already_finishedThis crawl has already finished. -
crawl.target_refusedThe campaign target is not a public address. -
crawl.no_baselineNo comparable crawl to compare with: a truncated crawl is never a baseline. -
recommendations.no_dataNo data source for this project: launch a crawl, or connect Search Console or your logs. -
export.crawl_not_finishedThis crawl has not finished: its report would be incomplete. -
export.not_readyThe export is not ready yet. -
export.expiredThe export has expired; request a new one. -
positions.not_configuredPosition tracking is not configured: choose the tracked market first. -
keywords.project_limitTracked keyword limit reached for this project. -
keywords.not_trackedThis keyword is not tracked: track it first. -
keywords.pausedThis keyword is paused: resume it before checking it. -
keywords.already_checked_todayThis keyword was already checked today; one immediate check per keyword per day. -
bad_requestMalformed request. -
conflictThe request conflicts with the current state of the resource. -
payload_too_largeRequest body too large. -
unsupported_media_typeUnsupported content type. -
internal_errorInternal error. It has been logged.
Plan refusals form a family: plan_limit followed by the plan key concerned, for instance plan_limit.projects.max. The response also carries entitlement and upgrade_to.