Errors
| Code | Status | Title |
|---|---|---|
| invalid_json | 400 | Malformed JSON |
| invalid_parameter | 400 | Invalid parameter |
| invalid_request | 400 | Invalid request |
| invalid_cursor | 400 | Invalid cursor |
| unauthorized | 401 | Not authenticated |
| invalid_token | 401 | Invalid credential |
| insufficient_scope | 403 | Insufficient scope |
| integration_inactive | 403 | Inactive integration |
| forbidden | 403 | Access denied |
| audit_declaration_required | 403 | Administrator declaration missing |
| apply_not_allowed_in_test | 403 | Apply is not allowed in test |
| not_found | 404 | Not found |
| idempotency_conflict | 409 | Idempotency key reused |
| validation_token_mismatch | 409 | Different review |
| operation_not_ready | 409 | Operation not ready |
| operation_has_errors | 409 | The review has errors |
| source_policy_changed | 409 | Source policy changed |
| export_baseline_expired | 409 | Baseline export expired |
| operation_not_cancellable | 409 | The operation cannot be cancelled |
| operation_kind_unsupported | 409 | Command not applicable |
| export_not_ready | 409 | Export in progress |
| operation_rejected | 409 | Operation rejected |
| gone | 410 | Resource deleted |
| cursor_expired | 410 | Cursor expired |
| cursor_scope_changed | 410 | Scope changed |
| export_expired | 410 | Export expired |
| payload_too_large | 413 | Payload too large |
| unsupported_media_type | 415 | Unsupported media type |
| operation_limit_exceeded | 422 | Operation too large |
| source_limit_exceeded | 422 | Too many sources |
| source_not_found | 422 | Source not found |
| invalid_operation | 422 | Invalid operation |
| field_not_writable | 422 | Fields not writable |
| field_not_exportable | 422 | Fields not exportable |
| rate_limited | 429 | Too many requests |
| internal_error | 500 | Internal error |
| temporarily_unavailable | 503 | Service unavailable |
The token endpoint (/oauth/token) responds in the RFC 6749 format (error, error_description) rather than application/problem+json; its codes are invalid_request, invalid_client, unsupported_grant_type, invalid_scope, access_denied, rate_limited and temporarily_unavailable.
Integration administration
These codes are returned by the administration API used by the Integrations dialog of the application, with a user session. They are not part of the Data API, but their type also points to a page in this section.
| Code | Status | Title |
|---|---|---|
| invalid_body | 400 | Invalid body |
| unknown_field | 400 | Unknown field |
| invalid_field | 400 | Invalid field |
| invalid_access | 400 | Invalid access |
| invalid_field_groups | 400 | Invalid field groups |
| invalid_field_paths | 400 | Invalid field paths |
| duplicate_domain | 400 | Duplicate domain |
| domain_not_granted | 400 | Domain not granted |
| declaration_not_accepted | 400 | Declaration not accepted |
| empty_patch | 400 | Nothing to change |
| invalid_scopes | 400 | Invalid scopes |
| invalid_expiration | 400 | Invalid expiration |
| invalid_grace_period | 400 | Invalid grace period |
| invalid_if_match | 400 | Invalid If-Match |
| invalid_query | 400 | Invalid parameter |
| invalid_limit | 400 | Invalid limit |
| range_too_large | 400 | Range too large |
| invalid_url | 400 | Invalid URL |
| invalid_token_url | 400 | Invalid token URL |
| missing_scope_or_audience | 400 | Missing scope or audience |
| unknown_event_type | 400 | Unknown event type |
| invalid_event_options | 400 | Invalid event options |
| invalid_threshold_days | 400 | Invalid notice threshold |
| human_permission_required | 403 | Human permission required |
| cross_site_forbidden | 403 | Origin not allowed |
| conflict | 409 | Conflict |
| name_taken | 409 | Name taken |
| integration_revoked | 409 | Integration revoked |
| integration_limit_reached | 409 | Integration limit reached |
| client_limit_reached | 409 | Client limit reached |
| client_revoked | 409 | Client revoked |
| secret_limit_reached | 409 | Credential limit reached |
| endpoint_limit_reached | 409 | Destination limit reached |
| endpoint_inactive | 409 | Inactive destination |
| test_required | 409 | Test required |
| redelivery_active | 409 | Redelivery active |
| delivery_in_progress | 409 | Delivery in progress |
| out_of_window | 409 | Outside the redelivery window |
| invalid_state | 409 | Invalid state |
| auth_not_rotatable | 409 | Authentication not rotatable |
| rotation_conflict | 409 | Rotation conflict |
| url_change_conflict | 409 | URL change conflict |
| precondition_failed | 412 | Precondition failed |
| activation_requirements | 422 | Activation requirements |
| confirmation_required | 422 | Confirmation required |
| domain_not_available | 422 | Domain not available |
| write_not_available | 422 | Write not available |
| field_path_invalid | 422 | Invalid field path |
| field_group_missing | 422 | Field group missing |
| write_domain_invalid | 422 | Invalid write domain |
| precondition_required | 428 | Precondition required |
| test_in_progress | 429 | Test in progress |
| test_cooldown | 429 | Test cooldown |
| test_rate_limited | 429 | Tests rate limited |
| material_key_unavailable | 503 | Key unavailable |
| mtls_unavailable | 503 | mTLS unavailable |
| ledger_unavailable | 503 | Delivery ledger unavailable |
| jwks_busy | 503 | Service busy |