> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API access and conventions

> Base URL, authentication, and request conventions for the Eco API

Base URL: `https://api.eco.com`. Use the v1 API to discover supported assets, request quotes, fund intents, track their status, and create Circle Gateway deposit addresses.

Integrate a transfer in four stages:

1. [`GET /v1/chains`](/api-reference/v1/chains) and [`GET /v1/tokens`](/api-reference/v1/tokens) to discover supported assets. Refresh cached discovery data periodically.
2. [`POST /v1/quotes`](/api-reference/v1/quotes) to price a transfer. The response includes the exact transaction to send.
3. Fund the quote: send `execution.transaction` from the funder, or post a signed authorization to a [submit endpoint](/api-reference/v1/submit-permit3).
4. [`GET /v1/intents/status`](/api-reference/v1/intent-status) to track the delivery intent. On multi-intent routes, source-leg fulfillment is not final delivery.

## Authentication

| Endpoint | API key |
| - | - |
| `POST /v1/quotes` | **Required** |
| `GET /v1/chains`, `GET /v1/tokens` | **Required** |
| `GET /v1/intents/status` | **Required** |
| `POST /v1/intents/submit/permit3`, `/permit2`, `/erc-3009` | **Required** |
| All `/v1/circle-gateway/…` endpoints | Optional |

The key is sent as an `x-api-key` header and belongs on a server, never in a browser or mobile app. Partner pricing and features are tied to the key. [Contact Eco](mailto:contact@eco.com) to get one. Key errors are listed in [Errors and retries](/api-reference/errors).

On 2026-09-30 (UTC), keyless requests to chains, tokens, and intent status still succeeded in a read-only check. The documented integration policy requires a v1 key for those operations; do not depend on that observed access behavior.

## Conventions

* Requests are JSON with `Content-Type: application/json`. Unknown or misplaced keys are rejected with `400`.
* Amounts are base-unit decimal strings (`"1000000"` is 1 USDC). Arithmetic belongs in `bigint`.
* `slippage` is a decimal fraction from `0.0001` to `1`; `0.005` means 0.5%.
* v1 quote and status timestamps are Unix seconds. Legacy deposit records can contain ISO 8601 timestamps.
* Quote, fee, step, and transaction discriminators use `type`.
* A quote can contain more than one intent. `steps[]` tells you the route shape; [Intent types](/resources/intent-types) explains how to interpret those shapes.
* IDs carry a type prefix (`quote:`, `gasless:`, `intent:`). Status filters `quoteId` and `jobId` take the bare UUID.
* Page size (`limit`) is 1 to 50, default 20.
* Circle Gateway deposit-address create and lookup keep a `{ data: … }` envelope and their own error format.
* Every quote is signed. See [Quote verification](/api-reference/quote-verification).
* Endpoint examples use mainnet token and contract addresses with placeholder wallets, hashes, signatures, and IDs. They are not executable quotes or authorizations.

## Rate limits and retries

No requests-per-second quota is published. Handle `429` with backoff and honor `Retry-After` when present. Preserve signed submit payloads so that uncertain responses can be retried without creating a new authorization. See [Errors and retries](/api-reference/errors).

## Next steps

* [Integrate the Routes API](/get-started/integrate-routes-api)
* [Create a Circle Gateway deposit](/programmable-addresses/circle-gateway-deposits)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.