Quote USDC → stock token (one leg per chain the ticker lists, better first)
POST/quote/buy
Requires ownership_proof for each wallet provided. Returns one best leg per
chain the ticker lists (up to five today: sol, eth, robinhood, base, arbitrum): the
signable quote legs (one per chain). Cache the returned quote_id;
every signed leg is submitted together at /trade/submit.
Set quote_only: true for a non-executable price preview (the wallet need
not be funded; quote_id, expires_at, and signable_payloads are omitted).
502 provider_unavailable also fires when a priority:"speed" cross-chain leg's
sol-origin deposit fails to compile (an RPC blockhash read failure): the whole quote
is refused, not just that cell; retry.
Request
Responses
- 200
- 400
- 401
- 403
- 410
- 422
- 429
- 502
- 503
OK
Invalid request body, slippage out of range, unknown ticker, zero amount, or (pinned execution: "user_operation") a wallet not delegated to Modular Account v2.
Ownership-proof failure.
A wallet on the request was flagged by sanctions screening. Permanent; do not retry with the same wallet.
Quote stale (upstream price moved past expiry mid-build).
No fillable routes returned by the planner, or a basket listing whose issuer-published price is unusable.
Sliding window exceeded: per-IP or per-(IP, wallet), plus a per-organisation bucket (shared across all of your keys) whenever a valid X-API-Key is presented. Retry-After header carries delta-seconds.
Upstream provider failed or rate-limited us.
screening_unavailable: sanctions screening could not be completed and the request was
rejected (fail-closed). Transient; back off and retry.
integrator_fee_misconfigured (with an X-API-Key): your configured fee schedule no longer
fits a venue Treasures routes through. A Treasures-side configuration issue that retrying
soon won't clear; contact Treasures, or send integrator_fee_bps: 0 to quote without your fee.