Status / CodeMeaningRetry?
401UNAUTHORIZEDMeaningNo usable credentials: the `Authorization` header is missing, empty, or uses a scheme other than `ApiKey` without carrying an on8 key (for example a `Bearer` token that is not an on8 key).Retry?No, send `Authorization: ApiKey <your key>`.
401API_KEY_WRONG_SCHEMEMeaningAn on8 key arrived with the wrong scheme: as `Bearer`, or in the `X-API-Key` header. The message says which and names the format: "An API key was sent with the Bearer scheme. Send it as 'Authorization: ApiKey <key>'."Retry?No, send the same key as `Authorization: ApiKey <your key>`.
401INVALID_API_KEYMeaningAn `ApiKey` was sent but not recognised: it is wrong, revoked or expired.Retry?No, check the key or issue a new one in the portal.
403SCOPE_NOT_GRANTEDMeaningThe endpoint is not available to API keys (portal session only): "This endpoint is not available to API keys. Use a signed-in session, or call an endpoint that is available to API keys."Retry?No, use a signed-in session or a documented API endpoint.
403API_PERMISSION_DENIEDMeaningThe key's level on the endpoint's module is below the one required: "API key lacks Delete on module 'portal.ongoing-monitoring'." The message names the level and module; each endpoint in the API Reference lists both. The level that counts is the lower of the key's own and the current platform maximum for the module, so a lowered maximum also refuses an existing key.Retry?No, create a new key with that module at that level (permissions cannot be edited after creation).
400NO_PERMISSIONSMeaningKey creation granted no module a level above None: "Grant at least one module a level above None."Retry?No, pick at least one module.
400UNKNOWN_MODULEMeaningKey creation named a module that is not an API module: "Unknown or non-API module(s): <modules>."Retry?No, use the modules offered in the portal.
400PERMISSION_ABOVE_MAXIMUMMeaningKey creation asked for more than the platform maximum: "Requested level exceeds the platform maximum for: <module> (<requested> > <maximum>)."Retry?No, lower the level to the maximum shown in the portal.
403IP_NOT_ALLOWEDMeaningThe caller's IP is outside the key's allowlist (or inside its blocklist).Retry?No, update the list in the portal.
403PACKAGE_REQUIREDMeaningThe tenant has no active package or live demo: "An active package or demo is required for this module." Checked before every screening, batch and monitoring endpoint runs.Retry?No, activate a plan.
403NO_SUBSCRIPTIONMeaning"Tenant has no active subscription." The metered call found no active or trialing subscription to count against.Retry?No, activate a plan.
403FEATURE_NOT_INCLUDEDMeaning"Plan does not include '<feature>'.", e.g. `screenings_monthly` or `prekyc_monthly`. On an orchestrated screen one unlicensed module refuses the whole call.Retry?No, list only the modules your plan has, or upgrade.
403PLAN_REQUIREDMeaningThe endpoint needs a higher plan (for example entity neighbours on Enterprise).Retry?No, upgrade.
402QUOTA_EXCEEDEDMeaningThe monthly allowance for a feature is used up and overage is blocked: "Monthly quota for '<feature>' exhausted." (e.g. `screenings_monthly`), or on a demo "Demo query quota exhausted."Retry?No, wait for renewal or raise the plan.
400EMPTY_QUERYMeaningNo subject was supplied (name, BIC legs, IMO/MMSI/name, ISIN ...).Retry?No, fix the request.
400EMPTY_BATCHMeaningThe batch had no named subjects (or, on the synchronous batch, no subjects at all).Retry?No, fix the request.
400BATCH_TOO_LARGEMeaningA synchronous batch holds at most 100 subjects; a batch job at most 10,000.Retry?No, split, or use batch jobs.
400EMPTY_FILEMeaningA batch upload had no file in the multipart field named `file`, or the file was empty.Retry?No, send the file as multipart/form-data.
400UNSUPPORTED_FORMATMeaningA batch upload whose extension is not .csv, .xlsx, .xls or .json.Retry?No, convert the file.
422FILE_EXTENSION_MISMATCHMeaningA batch upload whose contents do not match its extension (a workbook named .csv, say). The extension picks the parser, so it has to be right.Retry?No, rename the file to its real type.
400PARSE_ERRORMeaningA batch upload that could not be read into rows, e.g. a CSV whose columns no separator could split.Retry?No, fix the file.
400INVALID_INPUTMeaningAn orchestrated screen whose entity has neither a name nor an identifier value.Retry?No, fix the request.
422 / 400VALIDATION_ERRORMeaningA field is missing or malformed. Request-shape failures answer 422 with an `error.details` array; service-level rule failures answer 400 with code and message only. On the screening endpoints a name or query longer than 512 characters is refused with 400 "The search query is limited to 512 characters." before anything is billed.Retry?No, fix the request.
422USE_DEDICATED_MODULEMeaningThe general search received a non-name input: an e-mail address, a phone number, a crypto wallet, an IMO or MMSI vessel number, an ISIN, a VAT/TIN number or a registration or tax number. Not metered.Retry?No, call the dedicated endpoint named in the message.
409DUPLICATE_SUBJECTMeaningThe subject is already under active monitoring; the message names the existing subject's id.Retry?No, use that id instead of enrolling again.
409INVALID_STATEMeaningA batch job re-queue on a job that is not `Failed` or `PartialFailure`.Retry?No, only a failed job can be re-queued.
415UNSUPPORTED_MEDIA_TYPEMeaningThe body was sent without `Content-Type: application/json`.Retry?No, add the header and send the body as JSON.
405METHOD_NOT_ALLOWEDMeaningThe path exists but does not accept this HTTP method. Most screening endpoints are POST, but not all: entity profile, neighbours, officers, institution lookup, place search and the reference lists are GET, as are the batch job and monitoring reads.Retry?No, use the method shown in the API Reference.
404NOT_FOUNDMeaningNo endpoint matches that method and path (usually a typo or a missing `/api/v1` prefix) - or the id in the path does not resolve: a batch job answers "Job not found.", a monitored subject "Resource not found". A deleted record, another tenant's, and one your caller cannot see all answer the same.Retry?No, check the path or the id.
429RATE_LIMIT_EXCEEDEDMeaningA fixed-window limit was hit: the /screening endpoints allow 120 requests per minute per tenant - one window shared by all of the tenant's API keys and portal users - and batch upload 60 per minute per user, or per tenant for API keys.Retry?Yes. Honour the Retry-After header; fall back to exponential backoff with jitter.
502SMARTSANCTION_UNAVAILABLEMeaningThe screening engine did not answer.Retry?Yes, backoff and retry; persistent failures are an incident.
503ADVERSE_MEDIA_DEEP_UNAVAILABLEMeaningThe deep adverse-media tier is not enabled for this deployment.Retry?No, call without `deep`.
500INTERNAL_SERVER_ERRORMeaningUnhandled failure; the body carries a `correlationId` to quote to support.Retry?Once, then contact support with the correlationId.