Skip to content

Errors

All error responses use a consistent envelope:

json
{
  "error": {
    "code": "validation_error",
    "message": "Human-readable explanation.",
    "request_id": "req_01J…",
    "details": []
  }
}

request_id is safe to send to Appraiser Flow support.

HTTP status map

StatusWhen
400Malformed JSON / bad headers
401Missing, invalid, revoked, or wrong-environment API key
403Scope missing or IP not on allowlist
404Resource not found in this tenant (also used for cross-tenant ids)
409Idempotency key reused with a different body
422Semantically invalid (incomplete address, inactive product)
429Rate limited — respect Retry-After if present
500/503Unexpected / temporary — retry with backoff

Notable error.code values

codeMeaning
invalid_api_keyBad or revoked bearer
insufficient_scopeKey lacks required scope
ip_not_allowedCaller IP not on key allowlist
rate_limitedToo many requests
validation_errorSchema/field validation failed
coverage_unavailableFirm does not cover area/product
product_inactiveProduct code not offered
address_incompleteSubject address missing required parts
idempotency_conflictSame key, different payload
unsupported_content_typeUpload type not allowed
not_foundUnknown id for this tenant

Retry guidance

SituationRetry?
429, 503Yes — exponential backoff + jitter
409 idempotency_conflictNo — fix payload or use a new Idempotency-Key
401/403No — fix credentials/scopes
422No — fix request body
Network timeout on POST createYes — same Idempotency-Key

API base for Try-it: https://staging-api.appraiserflow.ai