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
| Environment | Base URL |
|---|---|
| Production | https://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.
Swap API
GET/swap/approvalGet swap approval data
/swap/approvalBuild embedded crosschain actions
/swap/chainsGet supported chains
/swap/tokensGet supported tokens
/swap/sourcesGet supported sources