API Reference

Complete API reference for the Across Protocol.

The Across API provides programmatic access to crosschain bridging and swap functionality. Use these endpoints to get quotes, check limits, query deposit status, and more.

Server URLs

EnvironmentBase URL
Productionhttps://app.across.to/api

Authentication

All API requests require a Bearer token passed via the Authorization header, and an integratorId query parameter.

Don't have an API key yet? Get your API key and Integrator ID in under a minute.

Using API Keys

Pass your API key as a Bearer token in the Authorization header on every request.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://app.across.to/api/swap/approval?originChainId=42161&destinationChainId=8453&inputToken=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&outputToken=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&amount=10000000&tradeType=minOutput&depositor=0xYourAddress&integratorId=0xdead"
const res = await fetch(
  "https://app.across.to/api/swap/approval?originChainId=42161&destinationChainId=8453&inputToken=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&outputToken=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&amount=10000000&tradeType=minOutput&depositor=0xYourAddress&integratorId=0xdead",
  {
    headers: { Authorization: "Bearer YOUR_API_KEY" },
  }
);
import requests

response = requests.get(
    "https://app.across.to/api/swap/approval",
    params={
        "originChainId": "42161",
        "destinationChainId": "8453",
        "inputToken": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
        "outputToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "amount": "10000000",
        "tradeType": "minOutput",
        "depositor": "0xYourAddress",
        "integratorId": "0xdead",
    },
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
req, _ := http.NewRequest("GET",
    "https://app.across.to/api/swap/approval?originChainId=42161&destinationChainId=8453&inputToken=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&outputToken=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&amount=10000000&tradeType=minOutput&depositor=0xYourAddress&integratorId=0xdead",
    nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
resp, _ := http.DefaultClient.Do(req)
let res = reqwest::Client::new()
    .get("https://app.across.to/api/swap/approval?originChainId=42161&destinationChainId=8453&inputToken=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&outputToken=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&amount=10000000&tradeType=minOutput&depositor=0xYourAddress&integratorId=0xdead")
    .header("Authorization", "Bearer YOUR_API_KEY")
    .send()
    .await?;
uri = URI("https://app.across.to/api/swap/approval?originChainId=42161&destinationChainId=8453&inputToken=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&outputToken=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&amount=10000000&tradeType=minOutput&depositor=0xYourAddress&integratorId=0xdead")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }

Endpoints

Browse the individual endpoint pages in the sidebar for full parameter details, response schemas, and code samples.

On this page