Everything here is scoped to one partner and requires a session token in an authorization: Bearer header, except the two sign-in methods.

Sessions

RequestLoginCode

Emails a six-digit code to email. Empty response. Repeat requests inside a minute are rejected rather than sending a second email.
string
required
Address to send the code to.
string
required
Cloudflare Turnstile token from the sign-in widget. Single-use; verified server-side before any code is sent.

VerifyLoginCode

string
required
Address the code was sent to.
string
required
The six-digit code. Valid for 10 minutes and 5 attempts, after which it is discarded.
bool
Extends the session from 1 day to 180 days.
string
Session token. Send as authorization: Bearer <token>.
string
Expiry timestamp.

Logout

Invalidates the calling session immediately.

ListPartnerSessions

Every live session on the account, most recently active first.
PartnerSessionInfo[]
Each with id, ips, user_agent, created_at, expires_at, last_used_at, and current. ips lists every address the session has been used from, each with ip, a best-effort location, and last_seen. current marks the session making the call.
bool
Whether the calling session is old enough to revoke others; see RevokePartnerSession.

RevokePartnerSession

Takes a session id and invalidates it immediately. The calling session must be at least 6 hours old, so a freshly stolen token cannot immediately evict the account’s other sessions; a younger session gets PERMISSION_DENIED. The calling session cannot revoke itself; use Logout for that.

Usage

GetPartnerApiStats

Time-bucketed request and rate limit metrics for your API keys, powering the panel’s Usage tab.
int64
Window ending now. Defaults to one day; at most 30 days.
int64
Bucket width. Defaults to five minutes; at least 60 seconds, and the range may span at most 500 buckets.
RequestSeries[]
One series per (key_id, method, status) with request counts per bucket. status is the lowercase gRPC code name: ok, resource_exhausted, invalid_argument, and so on.
PointsSeries[]
One series per key_id with rate limit points consumed per bucket.

API keys

GetPartner

string
Partner email.
PartnerApiKey[]
Existing keys, each with id, key, name, tier, points_per_min, disabled, and created_at. points_per_min is the key’s rate limit budget; unset means the deployment default.
int64
Cap on active keys.

CreatePartnerApiKey

Takes a name and returns the created key, including its secret value. Name keys after the surface that uses them: the name comes back on attributed orders.

RevokePartnerApiKey

Takes an id. Requests using that key then fail with api key disabled, within a few seconds of the change.

Attributed orders

ListPartnerOrders

Orders originated by your keys, newest first.
int64
Page size. Defaults to 20, clamped to 100.
string
Cursor from the previous page.
PartnerOrder[]
Each carries quote_hash, state, src_chain, dst_chain, deposit_token, deposit_amount, deposit_symbol, deposit_decimals, referrer_fee, api_key_name, and created_at.
string
Absent on the last page.

Referrals

GetPartnerReferrals

Claimable balances, grouped.
PartnerReferralGroup[]
Each carries referrer, chain, chain_id, token, token_symbol, decimals, amount, and the count of orders behind it.
string
Absent on the last page.

ClaimPartnerReferrer

string
required
Referrer address to claim for.
string
required
Chain the balance accrued on.
string
required
Token the balance is denominated in.
Marks the covered orders claimed, totals them, and returns a signed Voucher. The voucher can only pay the referrer address embedded in it.

ListPartnerVouchers

Every voucher issued to you with its redemption status, kept current from on-chain VoucherRedeemed events. Takes no arguments.

BuildVoucherRedemption

string
required
Voucher to redeem.
string
required
Address that will pay the transaction fee. It does not have to be the referrer.
string
Prepared transaction, base64 encoded. On Solana it already includes the ed25519 verification instruction the program requires.
EVM vouchers can instead be redeemed by calling redeemVoucher directly with the fields from the voucher; the calldata field on the voucher carries a ready-to-send payload.

Funding

A funding balance pays the relay gas for quotes requested with sponsor_fees, so the cost comes out of the partner’s prepaid balance instead of the user’s output. Deposits are made on one designated chain through the router’s fundPartner entry point; debits happen per sponsored order. See SubmitGaslessOrder.

GetPartnerFunding

Takes no arguments.
string
Total balance across funding tokens, USD micros.
string
The funding chain. Deposits and balances live here.
uint64
Its EVM chain id. Optional.
string
Router contract that fundPartner is called on.
FundingToken[]
Tokens accepted for funding, each with chain, chain_id, address, symbol, and decimals.
PartnerFundingBalance[]
Current balance per token: token, amount in base units, and usd_micros.

BuildPartnerFunding

string
required
One of the accepted funding tokens.
string
required
Amount to deposit, base units.
Registers a funding id and returns the transaction to send: router_address, ready calldata for fundPartner, and value (non-zero for a native deposit). The deposit is credited once the indexer sees the PartnerFunding event carrying that id.

ListPartnerFundingActivity

Takes an optional limit, defaulting to 20 and clamped to 100. Returns entries newest first, each with a kind of deposit or debit, the delta, token, created_at, and a status of pending or credited. Deposits carry their funding_id and tx_hash; debits carry the quote_hash of the sponsored order.

Errors