Errors
Error format
Section titled “Error format”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" } ]}Error object
Section titled “Error object”| Field | Type | Description |
|---|---|---|
code | string | Machine-readable error code |
message | string | Human-readable description |
field | string | The request field that caused the error (if applicable) |
Error codes
Section titled “Error codes”| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR | 400 | Request body failed schema validation |
UNAUTHORIZED | 401 | Missing or invalid API key |
FORBIDDEN | 403 | Valid key but insufficient permissions |
NOT_FOUND | 404 | Resource does not exist |
INSUFFICIENT_FUNDS | 402 | Wallet balance too low for the transaction |
DELEGATION_EXCEEDED | 403 | Transaction exceeds delegation rules |
HUMAN_APPROVAL_REQUIRED | 403 | Transaction requires human approval |
LIMIT_EXCEEDED | 400 | Resource limit reached (e.g., 20 agents/account, 50 services/agent) |
RATE_LIMITED | 429 | Too many requests |
INVALID_STATE_TRANSITION | 409 | Operation not valid for the current transaction state |
IDEMPOTENCY_CONFLICT | 409 | A request with this Idempotency-Key is currently in flight |
IDEMPOTENCY_MISMATCH | 422 | Idempotency-Key reused with different parameters |
SCHEMA_VALIDATION_FAILED | 400 | Service input/output failed JSON Schema validation |
INTERNAL_ERROR | 500 | Unexpected server error |
HTTP status codes
Section titled “HTTP status codes”| Status | Meaning |
|---|---|
| 200 | Success |
| 201 | Resource created |
| 400 | Bad request — invalid input |
| 401 | Unauthorized — missing or invalid credentials |
| 402 | Payment required — insufficient wallet balance |
| 403 | Forbidden — valid credentials but action not allowed |
| 404 | Not found |
| 409 | Conflict — state conflict or idempotency conflict |
| 422 | Unprocessable — idempotency key reused with different params |
| 429 | Rate limited |
| 500 | Server error |
| 501 | Not implemented — endpoint exists but feature is not yet live |