Create a quote
Locks a rate for a currency pair and amount, returning a quote id valid until expiresAt.
Authorizations
ES256-signed JWT bearer token, single-use, 60-second TTL. See Authentication for how to mint one.
ES256 signature over the request, bound to the bearer JWT. Required on every request. See Authentication → Request signing.
Headers
Client-generated unique key to make a write operation safely retryable. UUID recommended. See Idempotency.
1 - 255^[a-zA-Z0-9_-]{1,255}$"550e8400-e29b-41d4-a716-446655440000"
Optional, client-supplied correlation ID for this request. Echoed verbatim on the response when supplied; the response omits it when the request did not supply one. Distinct from X-Trace-Id (server-generated, always present). See Metadata & tracing.
"my-req-abc-123"
Environment selector, matching the API key's bound environment. Defaults to SANDBOX when omitted. See Environments. When present, the value must be SANDBOX or LIVE, matched without regard to case. Any other value, including an empty one, returns 400 INVALID_APP_MODE; details.received echoes the value you sent.
SANDBOX, LIVE "SANDBOX"
Body
- Buy
- Sell
Locks a rate for a currency pair against one anchored side of the trade. The client supplies exactly one of buyAmount (the exact amount they want to receive) or sellAmount (the exact amount they want to spend); the server computes the unspecified side at the quoted rate. Unknown fields are rejected with 400 VALIDATION_BODY_FAILED.
Currency to buy.
^[A-Z0-9]{2,15}$"USDC"
Currency to sell.
^[A-Z0-9]{2,15}$"USDC"
Positive decimal amount; must be greater than zero.
^[0-9]+(\.[0-9]{1,16})?$"1000.00"
Positive decimal amount; must be greater than zero.
^[0-9]+(\.[0-9]{1,16})?$"1000.00"
Requested quote expiry validity in seconds.
3, 15, 30, 45, 60 3
Settlement window for the resulting trade. Defaults to T0 when omitted.
IMMEDIATE, T0, T1, T2 "T0"
Response
Quote created.
A time-limited foreign exchange quote that can be used to create a trade.