Skip to main content
v1 reference
The API reference documents https://api.eco.com/v1: GET /v1/chains, GET /v1/tokens, POST /v1/quotes, the gasless submit endpoints for Permit3, Permit2 and ERC-3009, GET /v1/intents/status, and the five /v1/circle-gateway/* deposit-address endpoints. The OpenAPI document is generated from schemas 0.9.0 and checked against the live gateway. See API access and conventions.
Wire format
Production speaks the 0.9.0 request and response shapes: the quote discriminator is type (exact-in, exact-out, custom), the funder sits under source.funder, dappId is required, the destination carries amountOut and minAmountOut, and steps[].intents lists every intent in the route with its role. Retired field names (swapType, root funder, encodedRoute) fail with 400. POST /v1/quotes answers 422 chain-not-supported for an unsupported chain.
Authentication
Every /v1 endpoint takes an x-api-key header except the /v1/circle-gateway/* endpoints, which stay open because Circle’s relay sends no key. A missing key on a keyed endpoint answers 403; an unknown or revoked key answers 401 invalid-api-key. See Errors and retries.
Quote signatures
Every quote carries an EIP-712 signature by the chain’s published quoteSigner over Quote(string id, bytes32[] intentHashes, uint64 expiresAt). See Quote verification.
Open quoting service
The keyless exact-input quote on quotes.eco.com is documented as the Open quoting service, a separate legacy service with its own request and response format.
Circle Gateway deposits
Circle Gateway deposits moved to quoted per-intent vaults on api.eco.com, with a quote deadline per address and EIP-2612 Permit added as a funding method alongside ERC-3009 and direct transfer. The public paths are now /v1/circle-gateway/deposit-addresses, /submit/erc-3009, /submit/erc-2612, /{vaultAddress} and /status. See Funding methods.