Skip to main content
Get a key. Instant, no review, 30 seconds. It 4x’s your rate limit (30 → 120 req/min) and puts your project on RAVN’s radar, worth having if you want a partnership or a rev-share deal down the line.
No key required to start if you just want to poke around: every endpoint works with no x-api-key header at all, so you can make your first call right now. GET /health is always public regardless of tier.

Calling from a browser

CORS is enabled on every endpoint, so a wallet widget, dapp frontend, or any other browser-side integration can call the API directly, with no server-side proxy required. x-request-id and ravn-version are exposed via Access-Control-Expose-Headers, so your client-side code can read them. Quote x-request-id if you ever report a bad quote to us; it is how we find your exact request.
Because your key travels to the browser in that setup, treat a client-side key as public. It only ever raises a rate limit and carries no spending authority (RAVN never takes custody, and every swap is still signed by the user’s own wallet), but rotate it like any other public credential, or keep it server-side and proxy if you would rather not expose it at all.
There are three tiers: To use a self-serve or enterprise key, pass it in the x-api-key header:
A key that doesn’t match either store returns 401 UNAUTHORIZED. Exceeding your tier’s limit returns 429 RATE_LIMITED, with a retryAfterSec value in details. RAVN charges 0 bps by default, on every route, for every tier, self-serve or enterprise. Full route table, quote fee object, and how this differs from optional x402 call fees: see Pricing.

Enterprise partnerships

Building something that needs a custom rate limit or a dedicated fee arrangement, or just want to work closely with the RAVN team? DM @ravnexchange on X or reach out via ravn.exchange; include a word on what you’re building so we can set your limits.