Skip to main content
Two endpoints on the same resource: POST creates a key, PATCH updates the fee and payout addresses on a key you already have. See Get an API key for the hosted signup form, and Pricing for how the fee you set here turns into a payout.

Create a key: POST /v1/keys

string
required
Where you receive your key and any partnership follow-up.
string
required
string
required
A valid URL.
string
required
string
required
string
Optional.
string
Optional, one line on what you’re building.
string
Optional.
string[]
Optional.
string[]
Optional.
integer
Your swap fee in basis points, 0 to 100 (1%). Omit or send 0 to start at 0%; you can raise it later with PATCH. See Pricing for what you actually receive of whatever you set.
No API key required to call this endpoint; it’s how you get one. Rate-limited to 5 signups/min per IP.
string
Pass as the x-api-key header on every other v1 request.
string
integer
The fee now active on this key, 0 if omitted above.

Update a key: PATCH /v1/keys

Change the calling key’s own fee and/or register where its share of collected fees gets paid out. Authenticated by the same x-api-key header as every other endpoint; the key itself is your proof of ownership. At least one of feeBps or payoutAddresses is required.
integer
0 to 100 (1%). Self-serve keys only (see the note below).
object
One or more of evm, solana, thorchain (must match thor1…, 38 lowercase alphanumeric characters after the prefix). Registers where that ecosystem’s earned balance is sent. See Pricing for what happens if a balance accrues with no address on file.
Enterprise keys set feeBps a different way. Enterprise keys aren’t self-serve rows, so a feeBps update here returns 404 NOT_FOUND for one. Your fee on an enterprise key is set directly by RAVN as part of your arrangement (see Authentication). payoutAddresses still works on an enterprise key; only feeBps is restricted.
Returns 401 UNAUTHORIZED with no x-api-key header (there’s no anonymous key to update), 404 NOT_FOUND on a feeBps update for a non-self-serve key, and 400 INVALID_REQUEST if neither field is present or a value fails validation (an out-of-range feeBps, or a malformed thorchain address).