BixelDocs

Errors

Every problem code the API answers, and what to do about each.

Errors are application/problem+json (RFC 9457) with a stable code, a human detail, usually a hint with the fix in-band, and a docs_url. If your integration switches on anything, switch on code.

{
  "type": "https://api.bixel.com/problems/key_required",
  "title": "API key required",
  "status": 401,
  "code": "key_required",
  "detail": "Change-event values require a free API key.",
  "hint": "Sign in and mint a free key at https://bixel.com/account/ — the open tier needs none.",
  "docs_url": "https://bixel.com/docs/api"
}

The codes

CodeStatusWhat happenedWhat to do
company_not_found404No company matches the identifierResolve names via GET /v1/search?q= — identifiers are apex domains
invalid_identifier400Not a valid domain or slugUse the apex domain, e.g. /v1/companies/pinecone.io
category_not_found404No category matches the slugList slugs via GET /v1/categories
missing_parameter400A required query parameter is absentThe detail names it
invalid_parameter400A parameter failed validationThe detail carries the accepted values
invalid_cursor400The pagination cursor was alteredPass meta.next_cursor back exactly as received
key_required401A keyed capability was called keylessMint a free key at bixel.com/account — the open tier needs none
invalid_key401The key is unknown, revoked, or expiredCheck it, or mint a new one
rate_limited429A window is exhaustedHonor Retry-After; RateLimit-Policy shows both windows
upgrade_required403A Pro capability on a free credential (the 365-day trajectory window, full change-event depth)Upgrade at bixel.com/pricing; free keys keep current state + 90 days of history values
not_yet_available501A reserved parameter is specified but not served yetDrop the parameter; it will light up without a contract change
fact_not_found404The company has no current fact with that keyList keys via GET /v1/companies/{company}/facts
proof_not_available404The fact has no stored capture behind itExpected for fed-forward network signals; not an error to retry
proof_not_yet_anchored503The capture postdates the last anchored exportRetry after the next twice-weekly anchoring run (Retry-After is set)
proof_unavailable503The evidence store could not be reachedTransient; retry shortly

Reading 401 vs 403 on MCP

A keyless or dead-credential MCP request answers 401 with OAuth discovery metadata — that is the sign-in trigger, not a failure. A 403 upgrade_required means the credential authenticated fine and the account tier is the only thing standing; agents should relay the hint rather than retry.

On this page