Get markets orderbook
General
Get Markets
Returns the live protocol orderbook (all funded, available provider quotes across corridors × tokens × networks) plus network-wide aggregate statistics.
Public endpoint — no authentication required, CORS open. Responses are cached for ~10 s. Requests are per-IP rate limited.
Provider balances and success rates are intentionally public to support integrator tooling and the Paycrest Markets dashboard.
GET
Get markets orderbook
Returns the live protocol orderbook (every funded, available provider quote across corridors × tokens × networks) plus network-wide aggregate statistics. Use this endpoint to display live liquidity, rates, and protocol health without requiring authentication.
Response shape (
Qualifying offer filters:
Windowed success and median fields are
Public endpoint — no API key or HMAC signature required. CORS is open. Responses are cached for ~10 s and are per-IP rate limited.
Response shape (data)
| Field | Type | Description |
|---|---|---|
asOf | string (ISO 8601) | Timestamp when the response was generated |
aggregates | object | Network-wide aggregate statistics (see below) |
book | array | Provider quote rows forming the live orderbook |
Book row fields
Each element ofbook is a single provider quote for one side on one network:
| Field | Type | Description |
|---|---|---|
providerId | string | Provider identifier |
side | string | sell = offramp (crypto → fiat); buy = onramp (fiat → crypto) |
token | string | Token symbol, e.g. USDT, USDC |
fiat | string | Fiat currency code, e.g. NGN, KES |
network | string | Network identifier, e.g. base, ethereum |
rate | string | Provider’s effective rate (fiat per crypto for sell; crypto per fiat for buy) |
rateType | string | fixed or floating |
min | string | Minimum order amount for this corridor |
max | string | Maximum order amount for this corridor |
balance | string | Available liquidity: fiat amount for sell rows, token amount for buy rows |
balanceCurrency | string | Currency of balance — fiat code for sell, token symbol for buy |
balanceUsd | string | Balance normalised to USD |
settled | integer | Total settled orders for this provider in this corridor |
successPercent | string | null | Success rate as a percentage string (null when no settled or refunded history) |
balance is a shared pool repeated across a provider’s networks for the same fiat (sell) or token (buy). De-duplicate by providerId + fiat (sell) or providerId + token (buy) when summing total depth to avoid double-counting.is_available = true, funded (positive balance), enabled fiat/token, non-testnet network. All book rows are public regardless of a provider’s visibility setting—visibility only affects the narrower position benchmark pool on the Get Market Rate endpoint.
Aggregates fields
| Field | Type | Description |
|---|---|---|
settledVolumeUsd | windowed | USD volume of settled orders — 24h, 7d, 30d, all (strings) |
settledTxns | windowed | Count of settled transactions — 24h, 7d, 30d, all (integers) |
networkSuccessPercent | windowed | Network success rate (settled / (settled + refunded)) — 24h, 7d, 30d (strings or null) |
medianDeliverySecs | windowed | Median order delivery time in seconds — 24h, 7d, 30d (integers or null) |
activeProviders | windowed | Distinct providers with ≥1 settled order — 24h, 7d, 30d, all (integers) |
activeSenders | windowed | Distinct senders with ≥1 settled order — 24h, 7d, 30d, all (integers) |
liveLiquidityUsd | string | Total available USD-denominated liquidity across all book rows |
corridors | integer | Distinct token/fiat pairs in the current book |
tokens | integer | Distinct tokens in the current book |
networks | integer | Distinct networks in the current book |
null for a window when no terminal orders exist in that period.
Example
Errors
| HTTP | Cause |
|---|---|
| 429 | Per-IP rate limit exceeded |
| 500 | Internal error |