Foreign Exchange overview
Use the Foreign Exchange API to discover supported currencies, retrieve rates and quotes, and create, approve, reject, or cancel FX orders.
Discover supported currencies or browse the operations in this category.
Review rates, quotes, and OTC order workflows.
How it works
The FX API has three layers, from informational to transactional:
- Rates —
GET /v1/fx/supported-currencieslists tradable pairs (fiat by default; addinclude_crypto=truefor crypto pairs, cached for one hour), andGET /v1/fx/ratesreturns live rates across enabled providers. - Quotes —
POST /v1/fx/quotereturns a rate quote with aquote_idand expiry. Pass thequote_idwhen submitting a transfer to lock in the quoted rate. - OTC orders — for larger conversions, create an order with
POST /v1/fx/orders. Orders start inwaiting_approvaland only execute after a second user approves them (four-eyes principle). Amarketorder executes at the current rate once approved; alimitorder waits until the rate reachestarget_rate, then executes once approved.destination_typecontrols where converted funds settle: an internalaccount, a cryptowallet, or a saved settlement instruction.
Endpoints
Rates and quotes
| Endpoint | Description |
|---|---|
GET /v1/fx/supported-currencies |
List supported currency pairs from all enabled providers |
GET /v1/fx/rates |
Live exchange rates for multiple pairs |
POST /v1/fx/quote |
Create a rate quote with a quote_id and expiry |
OTC orders
| Endpoint | Description |
|---|---|
POST /v1/fx/orders |
Create a market or limit OTC order (starts in waiting_approval) |
GET /v1/fx/orders |
List orders, most recent first, with status/type/side/date filters |
GET /v1/fx/orders/pending-approvals |
List orders waiting on an approve or reject decision |
GET /v1/fx/orders/{order_id} |
Retrieve a single order |
POST /v1/fx/orders/{order_id}/cancel |
Cancel an order that hasn't executed yet |
List filters that match nothing (including unknown status values or unsupported currency codes) don't error — they return 200 with an empty result array.
Authentication
All requests use https://api.gravv.xyz/v1/ and authenticate with the Api-Key header. Creating quotes, creating orders, and cancelling orders require an Idempotency-Key header — requests without one are rejected.
Was this page helpful?