For integrators

Everything you need to ship, and nothing to ask permission for first. The base URL is https://app.ravn.exchange/api/v1.

17Chains15 EVM + BTC + SOL20Routing venuesRaced in parallel20/20Healthy nowAll systems operational0Fees for usersPermanently

Start in one call

No key, no account, no proxy. Paste this into a terminal and it answers.

terminalno key
curl -X POST https://app.ravn.exchange/api/v1/quote \
  -H 'content-type: application/json' \
  -d '{"inputChainId":8453,"outputChainId":42161,
       "inputToken":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
       "outputToken":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
       "inputAmount":"100000000",
       "userAddress":"0xYourAddress"}'

We cap anonymous calls at 30 requests a minute per IP. A free key raises that and attributes usage to your project. Self-serve, issued instantly, no review. GET /health is always public.

Three calls, end to end

Quote, execute, status. Market-maker routes add one signature call in the middle.

Pick your surface

SDKs

TypeScript, React and Python. All MIT. The core and Python clients have zero dependencies.

Install a package →

Earn on every swap

Your users pay us nothing, ever. Set your own fee, up to 100 bps (1%), on your key. We collect it, keep 40%, and pay you the rest.

This is your price, never something we add on top. Set nothing and your users pay nothing. The arithmetic and the per-venue split are on the pricing page.

Before you ship

Sandbox

Set sandbox: true on a quote and run the whole flow with no real funds and no metering, with the same requests and responses as live. Sandbox execute skips Chainflip and THORChain from Bitcoin.

Webhooks

Add a webhookUrl to your key and we push your service an event when a swap settles, refunds or fails.

Errors

Machine-readable codes on every failure, and a requestId on every response.

Health

GET /health is public and unauthenticated. Point your own monitoring straight at it.