# Across Bridge API
> Live cross-chain bridge data from Across, one of the largest intent-based bridges, which moves USDC, ETH, WBTC and other assets between Ethereum and its rollups (Arbitrum, Base, Optimism, Polygon, zkSync, Linea, Blast, Scroll and more) using a relayer network and a single unified liquidity pool. The quote endpoint prices a bridge transfer — the relayer capital fee, gas fee, LP fee, total fee, the amount received and the estimated fill time. The routes endpoint lists every supported bridge route (origin chain, destination chain, token). The limits endpoint returns the min and max bridgeable amount for a route. The chains endpoint lists supported chains. Read live from Across, nothing stored. This is Across's own cross-chain bridge fee, route and fill-time layer — distinct from DEX, lending, staking and price feeds.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/across-api/..."
```

## Pricing
- **Free** (Free) — 2,400 calls/Mo, 3 req/s
- **Starter** ($10/Mo) — 62,000 calls/Mo, 15 req/s
- **Pro** ($28/Mo) — 330,000 calls/Mo, 40 req/s
- **Scale** ($63/Mo) — 2,050,000 calls/Mo, 120 req/s

## Endpoints

### Quote

#### `GET /v1/quote` — Price a bridge transfer — fees, output, fill time

**Parameters:**
- `token` (query, required, string) — Token symbol Example: `USDC`
- `from` (query, required, string) — Origin chain Example: `ethereum`
- `to` (query, required, string) — Destination chain Example: `arbitrum`
- `amount` (query, required, string) — Amount to bridge Example: `1000`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/across-api/v1/quote?token=USDC&from=ethereum&to=arbitrum&amount=1000"
```

**Response:**
```json
{
    "data": {
        "token": "USDC",
        "amount": 1000,
        "lp_fee": null,
        "source": "Across",
        "to_chain": "Arbitrum",
        "total_fee": 0.104668,
        "from_chain": "Ethereum",
        "max_deposit": 727210.913536,
        "min_deposit": 0.500056,
        "output_amount": 999.895332,
        "total_fee_pct": 0.010467,
        "relayer_gas_fee": null,
        "is_amount_too_low": false,
        "max_deposit_instant": 98927.978056,
        "relayer_capital_fee": null,
        "estimated_fill_time_sec": 2
    },
    "meta": {
        "timestamp": "2026-06-10T22:57:03.501Z",
        "request_id": "c9fba07a-946d-4eee-8857-5afa5c2db19e"
    },
    "status": "ok",
    "message": "Quote retrieved successfully",
    "success": true
}
```

### Routes

#### `GET /v1/routes` — Supported bridge routes

**Parameters:**
- `from` (query, optional, string) — Origin chain Example: `ethereum`
- `to` (query, optional, string) — Destination chain Example: `arbitrum`
- `token` (query, optional, string) — Token symbol Example: `USDC`
- `limit` (query, optional, string) — Max results (1-500) Example: `100`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/across-api/v1/routes?from=ethereum&to=arbitrum&token=USDC&limit=100"
```

**Response:**
```json
{
    "data": {
        "count": 3,
        "routes": [
            {
                "token": "USDC",
                "to_chain": "Arbitrum",
                "to_token": "USDC",
                "is_native": false,
                "from_chain": "Ethereum",
                "to_chain_id": 42161,
                "from_chain_id": 1
            },
            {
                "token": "USDC",
                "to_chain": "Arbitrum",
                "to_token": "USDC.e",
                "is_native": false,
                "from_chain": "Ethereum",
                "to_chain_id": 42161,
                "from_chain_id": 1
            },
            {
                "token": "USDC",
                "to_chain": "Arbitrum",
                "to_token": "USDC",
                "is_native": false,
                "from_chain": "Ethereum",
                "to_chain_id": 42161,
                "from_chain_id": 1
            }
        ],
        "source": "Across",
        "total_matched": 3
    },
    "meta": {
        "timestamp": "2026-06-10T22:57:03.605Z",
        "request_id": "c6ad564f-b80e-46fd-817e-c3f43ccf4cd3"
    },
    "status": "ok",
    "message": "Routes retrieved successfully",
    "success": true
}
```

### Limits

#### `GET /v1/limits` — Min/max bridgeable amount for a route

**Parameters:**
- `token` (query, required, string) — Token symbol Example: `USDC`
- `from` (query, required, string) — Origin chain Example: `ethereum`
- `to` (query, required, string) — Destination chain Example: `base`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/across-api/v1/limits?token=USDC&from=ethereum&to=base"
```

**Response:**
```json
{
    "data": {
        "token": "USDC",
        "source": "Across",
        "to_chain": "Base",
        "from_chain": "Ethereum",
        "max_deposit": 630982.227784,
        "min_deposit": 0.500056,
        "max_deposit_instant": 2699.292303,
        "max_deposit_short_delay": 630982.227784
    },
    "meta": {
        "timestamp": "2026-06-10T22:57:03.866Z",
        "request_id": "db748eb9-8a5e-4159-b79f-73375130fc61"
    },
    "status": "ok",
    "message": "Limits retrieved successfully",
    "success": true
}
```

### Chains

#### `GET /v1/chains` — All supported chains

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/across-api/v1/chains"
```

**Response:**
```json
{
    "data": {
        "count": 24,
        "chains": [
            {
                "name": "Ethereum",
                "chain_id": 1
            },
            {
                "name": "Optimism",
                "chain_id": 10
            },
            {
                "name": "BNB Chain",
                "chain_id": 56
            },
            {
                "name": "Unichain",
                "chain_id": 130
            },
            {
                "name": "Polygon",
                "chain_id": 137
            },
            {
                "name": "Chain 143",
                "chain_id": 143
            },
            {
                "name": "Chain 232",
                "chain_id": 232
            },
            {
                "name": "zkSync Era",
                "chain_id": 324
            },
            {
                "name": "World Chain",
                "chain_id": 480
            },
            {
                "name": "Chain 999",
                "chain_id": 999
            },
            {
                "name": "Lisk",
                "chain_id": 1135
            },
            {
                "name": "Soneium",
                "chain_id": 1868
            },
            {
                "name": "Chain 4217",
                "chain_id": 4217
            },
            {
                "name": "Chain 4326",
                "chain_id": 4326
            },
            {
                "name": "Base",
                "chain_id": 8453
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/across-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "source": "Across API (across.to/api, live)",
        "service": "across-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/quote": "Price a bridge transfer — fees, output amount, fill time (token=USDC, from=ethereum, to=arbitrum, amount=1000).",
            "GET /v1/chains": "All supported chains.",
            "GET /v1/limits": "Min/max bridgeable amount for a route (token=USDC, from=ethereum, to=arbitrum).",
            "GET /v1/routes": "Supported bridge routes (from=ethereum, to=arbitrum, token=USDC, limit=100)."
        },
        "description": "Live cross-chain bridge data from Across, one of the largest intent-based bridges, which moves USDC, ETH, WBTC and other assets between Ethereum and its rollups (Arbitrum, Base, Optimism, Polygon, zkSync, Linea, Blast, Scroll …) using a relayer network and a single unified liquidity pool. The routes endpoint lists every supported bridge route; the quote endpoint prices a bridge transfer — relayer capital fee, gas fee, LP fee, total fee, amount received and estimated fill time; the limits endpoint returns the min and max bridgeable amount for a route; the chains endpoint lists supported chains. Live, no key, nothing stored. Distinct from DEX, lending, staking and price feeds — this is Across's own cross-chain bridge fee, route and fill-time layer.",
        "route_count": 1494,
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/across-api
OpenAPI spec: https://www.oanor.com/api/across-api/openapi.json
