Skip to main content

Error envelope

Earn, Trade and Borrow return the same JSON envelope for errors.
Branch on statusCode and, where present, details.code. Do not parse message text.

Rate limits

Requests are limited per API key. Every response on a keyed route carries: A 429 has message: "Rate limit exceeded". Limits depend on your plan; see Rate limits.

Retry guidance

Never resubmit a signed transaction blindly. On Earn, call GET /v1/transactions/{transactionId} first; a different signed transaction or hash on a terminal transaction returns 412. On Trade and Borrow, a transaction can be submitted once and any second submit returns 400, so poll GET /v1/actions/{id} instead.
Reads and idempotent lookups are safe to retry. Creating actions is not idempotent: a retried POST /v1/actions/enter can create a second action, so list actions for the address first.

Endpoint-specific Earn errors

For RWA checks before you build an action, use Get KYC status. Geo-blocking is described in Geo-blocking.

Trade and Borrow validation

Trade and Borrow report invalid request bodies as 400 with validation.message listing each failed constraint. Check the request body against the operation’s schema before retrying.