Across Docs

API Reference

One API for moving money across chains.

The Across API moves money across chains through four calls: discover what is possible, price it, execute it, track it. The execute call is needed only when the quote asks for it with a submit_execution action.

Base URL

Every Across API endpoint is served from one host, under /v1:

# production
https://api.across.to

# staging
https://api.staging.across.to

Endpoints under Deprecated APIs are the older API and are served from a different host, shown on each of those operations.

Authentication

Create a production API key in the integrator portal. For a staging key, contact Across. Send the key as a Bearer token with every request.

Authorization: Bearer YOUR_API_KEY

Your first call

GET /v1/capabilities is the simplest authenticated call, so it is the fastest way to check your key works.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://api.across.to/v1/capabilities?originChainId=42161&destinationChainId=8453&include=tokens"
const BASE = "https://api.across.to";

const res = await fetch(
  `${BASE}/v1/capabilities?originChainId=42161&destinationChainId=8453&include=tokens`,
  { headers: { Authorization: `Bearer ${process.env.ACROSS_API_KEY}` } },
);
const capabilities = await res.json();
import os, requests

BASE = "https://api.across.to"

response = requests.get(
    f"{BASE}/v1/capabilities",
    params={
        "originChainId": "42161",
        "destinationChainId": "8453",
        "include": "tokens",
    },
    headers={"Authorization": f"Bearer {os.environ['ACROSS_API_KEY']}"},
)
const base = "https://api.across.to"

req, _ := http.NewRequest("GET",
    base+"/v1/capabilities?originChainId=42161&destinationChainId=8453&include=tokens",
    nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("ACROSS_API_KEY"))
resp, _ := http.DefaultClient.Do(req)

The four calls

CallPurpose
1GET /v1/capabilitiesWhat can move between two chains right now, and why anything unavailable is unavailable
2POST /v1/quotesPrice one exact transfer. Returns the ordered actions required to execute it
3POST /v1/quotes/{orderId}/executionsSubmit the results of the returned actions, only when they end with submit_execution
4GET /v1/transfers/{orderId}Follow the order to a settled outcome

Walk the whole flow in the Quickstart.

On this page