AiPSEO API

PublicErrorEnvelope

{
  "error": {
    "code": "RESOURCE_NOT_FOUND",
    "message": "The requested resource was not found.",
    "request_id": "req_example",
    "details": null
  }
}

The effective X-Request-ID is also returned as a response header on every control-plane response.

Stable codes

Code Typical meaning
AUTHENTICATION_REQUIREDMissing X-API-Key.
INVALID_API_KEYKey rejected.
INSUFFICIENT_SCOPEKey lacks required x-required-scopes.
VALIDATION_ERRORMalformed headers/body; bounded field details only.
RESOURCE_NOT_FOUNDMissing or cross-owner resource (no existence leak).
RESOURCE_CONFLICTConflicting resource state.
EXTERNAL_REFERENCE_CONFLICTExternal reference already in use for owner.
RESOURCE_VERSION_REQUIREDMissing If-Match-Version (HTTP 428).
RESOURCE_VERSION_CONFLICTStale version.
BINDING_TARGET_INACTIVEBinding target agent inactive.
IDEMPOTENCY_CONFLICTSame key, different fingerprint.
IDEMPOTENCY_IN_PROGRESSClaim held; respect Retry-After.
UNSUPPORTED_CAPABILITYCapability not available.
INTERNAL_ERRORSanitized failure.
RATE_LIMITEDReserved; not emitted by current slice.

Recovery notes

  • Do not retry version conflicts with a freshly fetched version unless a reviewed workflow confirms the mutation is still desired.
  • For IDEMPOTENCY_IN_PROGRESS, wait for Retry-After before retrying the same key.
  • Exact idempotent replays return Idempotency-Replayed: true without re-executing mutation logic.