Skip to content

Errors

All API responses use a consistent envelope. On error, the data field is null and the errors array contains one or more error objects.

{
"data": null,
"meta": {
"requestId": "01912345-6789-7abc-def0-123456789abc",
"timestamp": "2026-03-07T12:00:00.000Z"
},
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "email is required",
"field": "email"
}
]
}
FieldTypeDescription
codestringMachine-readable error code
messagestringHuman-readable description
fieldstringThe request field that caused the error (if applicable)
CodeHTTP StatusDescription
VALIDATION_ERROR400Request body failed schema validation
UNAUTHORIZED401Missing or invalid API key
FORBIDDEN403Valid key but insufficient permissions
NOT_FOUND404Resource does not exist
INSUFFICIENT_FUNDS402Wallet balance too low for the transaction
DELEGATION_EXCEEDED403Transaction exceeds delegation rules
HUMAN_APPROVAL_REQUIRED403Transaction requires human approval
LIMIT_EXCEEDED400Resource limit reached (e.g., 20 agents/account, 50 services/agent)
RATE_LIMITED429Too many requests
INVALID_STATE_TRANSITION409Operation not valid for the current transaction state
IDEMPOTENCY_CONFLICT409A request with this Idempotency-Key is currently in flight
IDEMPOTENCY_MISMATCH422Idempotency-Key reused with different parameters
SCHEMA_VALIDATION_FAILED400Service input/output failed JSON Schema validation
INTERNAL_ERROR500Unexpected server error
StatusMeaning
200Success
201Resource created
400Bad request — invalid input
401Unauthorized — missing or invalid credentials
402Payment required — insufficient wallet balance
403Forbidden — valid credentials but action not allowed
404Not found
409Conflict — state conflict or idempotency conflict
422Unprocessable — idempotency key reused with different params
429Rate limited
500Server error
501Not implemented — endpoint exists but feature is not yet live