Errors are JSON with stable code values. Every response includes request_id for support.
Success envelope
{
"data": { … },
"request_id": "req_abc123"
}Error envelope
{
"error": "Human-readable message",
"code": "not_found",
"request_id": "req_abc123",
"issues": [{ "field": "greeting", "message": "…" }]
}issues appears on validation errors (code: "invalid").
Codes
unauthorizedforbidden_scoperead_onlynot_foundinvalididempotency_mismatchrate_limitedconflictinternal
401 unauthorized — missing or invalid key. 404 not_found — resource not in this shop. 429 rate_limited — see Rate limits.