API errors
A request that cannot be completed returns an HTTP status of 400 or higher and a JSON body. Branch on the status code first, then on the error or code value when the response carries one, and treat any value you do not recognise as a failure of that status class.
Every error body carries a request id. Log it with the failed call and quote it when you contact support.
Error body
Noxtica KYC / KYB / KYM API
| Field | Type | Always returned | Description |
|---|
error | string | Yes | |
requestId | string | Yes | |
Noxtica Pulse customer, sign-in and device API
| Field | Type | Always returned | Description |
|---|
code | string | Yes | Stable machine-readable identifier. |
error | string | Yes | |
message | string | No | |
requestId | string | No | |
Noxtica Server API (/v1)
| Field | Type | Always returned | Description |
|---|
error | string | Yes | Machine-readable error string; route-specific values are listed on each operation. |
requestId | string | Yes | Correlation id for this call; quote it when you contact support. |
Identity verification API: errors
Codes named in the responses of the Identity verification API operations.
| Status | Code | Returned by |
|---|
400 | consent_required | kycSessionVerificationIdEmail |
400 | email_verification_unavailable | kycSessionMint |
400 | idempotency_key_invalid | kycSessionSubmit |
400 | Invalid sessionId | kycSessionStatus |
400 | invalid_case_id | kymTransactionsReport |
400 | invalid_email | kycSessionVerificationIdEmail, kycSessionEmailSend |
400 | invalid_hosted_options | kycSessionMint |
400 | invalid_id_type | kycSessionMint |
400 | invalid_or_expired | kycEmailVerificationConfirm |
400 | invalid_request | kycVerify, kycAddressDocumentCrossMatch, kycVerifyBatchSubmit, kycEvidenceHandleMint, and 10 more |
400 | payload_invalid | kycSessionSubmit |
400 | return_url_not_allowed | kycSessionMint |
401 | invalid_api_key | kycVerify, kycAddressDocumentCrossMatch, kycVerifyBatchSubmit, kycVerifyBatchStatus, and 10 more |
401 | invalid_session | kycSessionCancel, kycSessionEmailSend, kycSessionEmailStatus |
402 | spend_cap_reached | kycVerify |
403 | age_gender_estimation_not_enabled | kycSessionMint |
403 | API key does not have write:identity scope | kycVerify, kycAddressDocumentCrossMatch, kycVerifyBatchSubmit, kycVerifyBatchStatus, and 8 more |
403 | invalid_request | kycEvidenceFinalize, kycSessionView, kycSessionProgress, kycSessionSubmit, and 2 more |
403 | kyc_legal_basis_receipt_required | kycSessionMint |
403 | origin_not_allowed | kycSessionCancel, kycSessionVerificationIdEmail, kycSessionEmailSend, kycSessionEmailStatus, and 2 more |
404 | invalid_request | kymTransactionsReport |
404 | not_found | kycVerificationIdStatus |
404 | V1 endpoint not found | kycVerify, kycAddressDocumentCrossMatch, kycVerifyBatchSubmit, kycVerifyBatchStatus, and 19 more |
409 | already_verified | kycSessionEmailSend |
409 | email_verification_not_enabled | kycSessionEmailSend, kycSessionEmailStatus |
409 | email_verification_required | kycSessionSubmit |
409 | example-code | kycVerify |
409 | idempotency_conflict | kycVerify |
409 | invalid_request | kycAddressDocumentCrossMatch, kycSessionProgress, kycSessionSubmit |
409 | session_expiring | kycSessionEmailSend |
409 | session_not_cancellable | kycSessionCancel |
409 | session_not_editable | kycSessionEmailSend |
409 | session_not_submittable | kycSessionSubmit |
409 | verification_id_unavailable | kycSessionVerificationIdEmail |
409 | verify_gate_consumed | kycSessionSubmit |
410 | kyc_session_cancelled | kycSessionView, kycSessionProgress, kycSessionSubmit, kycSessionVerificationIdEmail, and 4 more |
410 | kyc_session_expired | kycSessionCancel |
410 | session_cancelled | kycSessionView, kycSessionProgress, kycSessionCancel, kycSessionSubmit, and 5 more |
410 | session_expired | kycSessionCancel |
413 | body_too_large | kycVerify, kycAddressDocumentCrossMatch, kycVerifyBatchSubmit, kycEvidenceHandleMint, and 4 more |
415 | invalid_request | kycVerifyBatchSubmit, kycSessionMint |
429 | cooldown | kycSessionEmailSend |
429 | invalid_request | kycSessionSubmit |
429 | Rate limit exceeded | kycVerify, kycAddressDocumentCrossMatch, kycVerifyBatchSubmit, kycEvidenceHandleMint, and 14 more |
429 | rate_limited | kycSessionVerificationIdEmail, kycVerificationIdStatus |
429 | send_limit_reached | kycSessionEmailSend |
429 | session_rate_limited | kycSessionSubmit |
500 | server_misconfigured | kycSessionMint, kycSessionStatus |
502 | email_send_failed | kycSessionVerificationIdEmail, kycSessionEmailSend |
503 | email_unavailable | kycSessionVerificationIdEmail |
503 | hosted_verify_not_configured | kycSessionSubmit, kycSessionEmailSend |
503 | invalid_request | kycVerify, kycAddressDocumentCrossMatch, kycVerifyBatchSubmit, kycEvidenceHandleMint, and 8 more |
503 | kyc_legal_basis_receipt_unavailable | kycSessionSubmit |
503 | nonce_mint_unavailable | kycSessionSubmit |
503 | session_backend_unavailable | kycSessionEmailSend, kycSessionEmailStatus |
503 | submit_internal_error | kycSessionSubmit |
503 | temporarily_unavailable | kycEmailVerificationConfirm, kycVerificationIdStatus |
503 | write_failed | kymTransactionsReport |
Risk scoring and agent trust API: errors
Codes named in the responses of the Risk scoring and agent trust API operations.
| Status | Code | Returned by |
|---|
400 | Invalid body | v1VerifyReputation, postAgentVerify, postIpReputation, postScore |
400 | invalid_request | v1MintCrawlVoucher |
401 | invalid_api_key | v1VerifyReputation, v1MintCrawlVoucher, getAgentPassport, postAgentPassport, and 3 more |
402 | invalid_request | v1MintCrawlVoucher |
403 | API key does not have read:device scope | v1VerifyReputation, v1MintCrawlVoucher, postAgentVerify, postIpReputation, and 1 more |
403 | feature disabled | getAgentPassport, postAgentPassport |
404 | Not found | getAgentPassport, postAgentPassport |
404 | V1 endpoint not found | v1VerifyReputation |
413 | body_too_large | v1MintCrawlVoucher, postAgentVerify |
413 | invalid_request | postAgentPassport |
415 | invalid_request | v1MintCrawlVoucher, postAgentVerify |
429 | Rate limit exceeded | v1VerifyReputation, v1MintCrawlVoucher, getAgentPassport, postAgentPassport, and 3 more |
500 | Internal server error | v1VerifyReputation, v1MintCrawlVoucher, postAgentVerify, postIpReputation, and 1 more |
500 | invalid_request | getAgentPassport, postAgentPassport |
503 | invalid_request | v1MintCrawlVoucher, getAgentPassport, postAgentPassport |
Protected actions API: errors
Codes named in the responses of the Protected actions API operations.
Device intelligence API: errors
Codes named in the responses of the Device intelligence API operations.
| Status | Code | Returned by |
|---|
400 | invalid_request | v1GetDevice, v1ListDevices, v1ListAccountDevices, v1ListEvents, and 11 more |
401 | invalid_api_key | v1GetDevice, v1ListDevices, v1ListAccountDevices, v1ListEvents, and 14 more |
403 | API key does not have read:device scope | v1GetDevice, v1ListDevices, v1ListAccountDevices, v1ListEvents, and 13 more |
403 | invalid_request | v1GetSealedResultsKey |
404 | Device not found | v1GetDevice |
404 | invalid_request | v1GenerateFingerprintBatch, v1GenerateSingleFingerprint, v1GetBehavioralSubject, v1EraseBehavioralSubject, and 1 more |
404 | sealed_key_version_unavailable | v1GetSealedResultsKey |
404 | sealed-results key version unavailable | v1GetSealedResultsKey |
413 | body_too_large | v1WriteLabel, v1GenerateFingerprintBatch, v1GenerateSingleFingerprint |
415 | invalid_request | v1WriteLabel, v1GenerateFingerprintBatch, v1GenerateSingleFingerprint |
429 | Rate limit exceeded | v1GetDevice, v1ListDevices, v1ListAccountDevices, v1ListEvents, and 12 more |
500 | Internal server error | v1GetDevice, v1ListEvents, v1ListVisits, v1ExportFingerprints, and 12 more |
500 | invalid_request | v1ListDevices, v1ListAccountDevices |
500 | server_misconfigured | v1GetSealedResultsKey |
502 | invalid_request | v1EraseBehavioralSubject |
Mobile and device identity API: errors
Codes named in the responses of the Mobile and device identity API operations.
| Status | Code | Returned by |
|---|
400 | device_delegation_invalid_subject_id | deviceDelegationCreate |
400 | invalid_request | postAttestAndroid, postAttestIos, postAttestVerify, postAttestChallenge, and 14 more |
400 | offline_capture_nonce_invalid | offlineCaptureBundleAdmit |
400 | offline_capture_verdict_claim_rejected | offlineCaptureBundleAdmit |
401 | invalid_api_key | postAttestAndroid, postAttestIos, postAttestVerify, postAttestChallenge, and 18 more |
403 | API key does not have read:device scope | postAttestAndroid, postAttestIos, postAttestVerify, postAttestChallenge, and 15 more |
403 | API key does not have write:identity:trusted-subject scope | walletSuspend |
403 | invalid_request | offlineNoncePoolMint, offlineCaptureBundleAdmit |
403 | kyc_legal_basis_receipt_required | offlineNoncePoolMint, offlineCaptureBundleAdmit |
404 | invalid_request | deviceDelegationRevoke |
404 | V1 endpoint not found | postAttestAndroid, postAttestIos, postPasskeyChallenge, postPasskeyRegister, and 13 more |
409 | invalid_request | offlineCaptureBundleAdmit |
409 | offline_capture_idempotency_conflict | offlineCaptureBundleAdmit |
409 | offline_capture_nonce_replayed | offlineCaptureBundleAdmit |
410 | invalid_request | offlineCaptureBundleAdmit |
410 | offline_capture_bundle_expired | offlineCaptureBundleAdmit |
413 | body_too_large | postAttestAndroid, postAttestIos, postAttestVerify, postAttestChallenge, and 8 more |
413 | invalid_request | postAppConfig, postHandoffMint, postHandoffConsume, offlineCaptureBundleAdmit |
415 | invalid_request | postAttestAndroid, postAttestIos, postAttestVerify, postAttestChallenge, and 7 more |
429 | Rate limit exceeded | postAttestAndroid, postAttestIos, postAttestVerify, postAttestChallenge, and 18 more |
500 | Internal server error | postAttestAndroid, postAttestIos, postAppConfig, postPasskeyChallenge, and 4 more |
503 | device_delegation_storage_unavailable | deviceDelegationCreate, deviceDelegationList, deviceDelegationRevoke |
503 | invalid_request | postAttestAndroid, postAttestIos, deviceDelegationCreate, deviceDelegationList, and 3 more |
503 | kyc_first_party_provenance_unavailable | offlineNoncePoolMint, offlineCaptureBundleAdmit |
503 | offline_capture_storage_unavailable | offlineNoncePoolMint, offlineCaptureBundleAdmit |
503 | registry_write_failed | recoveryOpenCase, recoveryGetCase, recoveryOpenAppeal, recoveryGetAppeal |
Telemetry ingestion API: errors
Codes named in the responses of the Telemetry ingestion API operations.
Observability query API: errors
Codes named in the responses of the Observability query API operations.
| Status | Code | Returned by |
|---|
400 | invalid_request | v1ApmListProjects, v1ApmListProjectEnvironments, v1ApmGetEnvironmentPolicy, v1ApmUpdateEnvironmentPolicy, and 10 more |
400 | schema_invalid | codingAgentListFindings |
401 | coding_agent_auth_invalid | codingAgentListFindings, codingAgentGetTrace, codingAgentGetErrorGroup |
401 | coding_agent_auth_missing | codingAgentListFindings, codingAgentGetTrace, codingAgentGetErrorGroup |
401 | Unauthorized | v1ApmListProjects, v1ApmListProjectEnvironments, v1ApmGetEnvironmentPolicy, v1ApmUpdateEnvironmentPolicy, and 10 more |
403 | API key does not have read:apm scope | v1ApmListProjects, v1ApmListProjectEnvironments, v1ApmGetEnvironmentPolicy, v1ApmUpdateEnvironmentPolicy, and 10 more |
403 | coding_agent_scope_denied | codingAgentGetTrace, codingAgentGetErrorGroup |
404 | coding_agent_error_group_not_found | codingAgentGetErrorGroup |
404 | resource_not_found | v1ApmListProjectEnvironments, v1ApmGetEnvironmentPolicy, v1ApmUpdateEnvironmentPolicy, v1ApmSearchTraces, and 9 more |
409 | capture_unavailable | v1ApmUpdateEnvironmentPolicy |
429 | coding_agent_rate_limited | codingAgentListFindings, codingAgentGetTrace, codingAgentGetErrorGroup |
429 | Rate limit exceeded | v1ApmListProjects, v1ApmListProjectEnvironments, v1ApmGetEnvironmentPolicy, v1ApmSearchTraces, and 8 more |
500 | internal_error | v1ApmSearchTraces, v1ApmGetTrace |
502 | coding_agent_query_failed | codingAgentListFindings, codingAgentGetTrace, codingAgentGetErrorGroup |
503 | coding_agent_authority_unavailable | codingAgentListFindings, codingAgentGetTrace, codingAgentGetErrorGroup |
503 | coding_agent_bq_unavailable | codingAgentListFindings, codingAgentGetTrace, codingAgentGetErrorGroup |
MCP server: errors
Codes named in the responses of the MCP server operations.
Pulse tenant API: errors
Codes named in the responses of the Pulse tenant API operations.
| Status | Code | Returned by |
|---|
400 | invalid_cursor | pulseTenantListDecisions |
400 | invalid_parameter | pulseTenantCreateLinkCode, pulseTenantGetLink, pulseTenantUnlink |
400 | invalid_request | pulseTenantListDecisions, pulseTenantReverseDecision |
400 | invalid_subject | pulseTenantSubjectStatus, pulseTenantGetLink, pulseTenantUnlink |
401 | invalid_api_key | pulseTenantSubjectStatus, pulseTenantListDecisions, pulseTenantGetDecision, pulseTenantReverseDecision, and 3 more |
401 | missing_api_key | pulseTenantSubjectStatus, pulseTenantListDecisions, pulseTenantGetDecision, pulseTenantReverseDecision, and 3 more |
403 | insufficient_scope | pulseTenantSubjectStatus, pulseTenantListDecisions, pulseTenantGetDecision, pulseTenantReverseDecision, and 3 more |
403 | scope_not_granted | pulseTenantListDecisions |
403 | tenant_not_armed | pulseTenantSubjectStatus, pulseTenantListDecisions, pulseTenantGetDecision, pulseTenantReverseDecision, and 3 more |
404 | application_not_found | pulseTenantCreateLinkCode |
404 | decision_not_found | pulseTenantGetDecision, pulseTenantReverseDecision |
404 | subject_not_found | pulseTenantSubjectStatus, pulseTenantListDecisions, pulseTenantGetLink, pulseTenantUnlink |
409 | ambiguous_subject | pulseTenantSubjectStatus, pulseTenantGetLink, pulseTenantUnlink |
409 | external_user_already_linked | pulseTenantCreateLinkCode |
409 | hint_not_active | pulseTenantReverseDecision |
429 | rate_limited | pulseTenantCreateLinkCode |
429 | too_many_outstanding_codes | pulseTenantCreateLinkCode |
503 | rate_limiter_unavailable | pulseTenantSubjectStatus, pulseTenantCreateLinkCode, pulseTenantGetLink, pulseTenantUnlink |
503 | tenant_auth_unavailable | pulseTenantSubjectStatus, pulseTenantCreateLinkCode, pulseTenantGetLink, pulseTenantUnlink |
Health and public key endpoints: errors
Codes named in the responses of the Health and public key endpoints operations.
This page is generated from the Noxtica OpenAPI specification release v0.4.0: kyc.yaml version 1.2.0-2026-10-27 (SHA-256 c91a695cfde0), mcp.yaml version 0.1.0-2026-10-27 (SHA-256 1a4875efa736), pulse.yaml version 0.9.0-2026-10-27 (SHA-256 95196a58bb5b), v1.yaml version 1.3.0-2026-10-27 (SHA-256 3fd15257a022). Do not edit it by hand.