Route / developers

One API. Your providers. Your policy.

Build with Route.

Compare routes, execute wallet-authorized payments and track verified delivery across supported networks.

Your backend sends Route the assets and amount. Route compares available paths against your policy, prepares the selected payment and submits the exact transaction signed by your wallet. Your app uses one integration across supported providers.

API base URLhttps://route.click/v1

01 / Connect

Configure access

  1. In the dashboard, select your workspace and project, then create an API key with a named policy.
  2. Choose Mainnet or Testnet and enable the providers your policy may use. NEAR and SwapKit offer Route's connection or your own key. Garden is paused and unavailable for new routing.
  3. Store the Route key on your backend. For quoting, enable catalog:read, quotes:read and quotes:write.

Configure access explains policies, provider setup, scopes and limits. Mainnet eligible standard comparisons cost 1 credit; add credits in Billing before a new mainnet request. View pricing. Testnet is free.

02 / First request

Compare a route

The examples below use a mainnet key saved as ROUTE_API_KEY. First discover the exact source and destination asset IDs:

curl --fail-with-body 'https://route.click/v1/assets' \
  -H "Authorization: Bearer $ROUTE_API_KEY" \
  -H 'Route-Network: mainnet'

Choose two returned IDs and an amount in source-asset units. Generate and save a UUID for this comparison, then send it as Idempotency-Key:

curl --fail-with-body 'https://route.click/v1/quotes' \
  -H "Authorization: Bearer $ROUTE_API_KEY" \
  -H 'Route-Network: mainnet' \
  -H 'Content-Type: application/json' \
  -H "Idempotency-Key: $ROUTE_QUOTE_REQUEST_ID" \
  --data '{
    "sourceAssetId": "SOURCE_ID_FROM_CATALOG",
    "destinationAssetId": "DESTINATION_ID_FROM_CATALOG",
    "amount": "10"
  }'

The response contains candidates, fees, timing evidence and selection results. Use executionSelection.candidateId for the best eligible route with released execution support. If only source gas needs wallet confirmation, preparationSelection can identify a preparation candidate. It is not yet permission to sign or a complete cost recommendation.

A successful comparison may have no eligible selection. Show its blockers instead of guessing. Compare routes explains the response and API reference lists every operation.

After a timeout, retry identical input with the same saved key. A fresh comparison needs a new UUID. You can also use the Node.js quote example with the Route client.

03 / Execute

Complete a payment

The runnable starter sends 1–10 native test USDC from Ethereum Sepolia to Stellar testnet through CCTP. It handles token approval when needed, signing, submission, managed destination minting and restart recovery.

Run the complete starter →

For your production flow, check assets and wallet compatibility first. Then follow Execute and Track and recover. Mainnet support is determined per asset and direction; the testnet example does not limit Route to Stellar.

Your app owns authorization.

Route never needs a wallet private key. A quote, a token approval and a signed transaction are separate steps. A saved transaction hash is not proof of broadcast or recipient delivery.

Links from earlier guides

This section is now in Execute.

This section is now in Check compatibility.

This section is now in Compare routes.

This section is now in Compare routes.

This section is now in Execute.

This section is now in Configure access.

This section is now in Execute.

This section is now in Track and recover.

This section is now in Complete payment starter.

This section is now in API reference.