---
title: "Get markets orderbook"
method: GET
path: "/markets"
tags: ["General"]
---

# Get markets orderbook

`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.

## Response `200`

Markets orderbook and aggregates

- object
  - `status` string
  - `message` string
  - `data` object — Public markets orderbook and network-wide aggregates.
    - `asOf` string, date-time — Timestamp when the response was generated (ISO 8601 UTC).
    - `aggregates` MarketsAggregates — Network-wide stats block included in the markets response.
      - `settledVolumeUsd` MarketsWindowedVolume — A USD/amount metric broken down across time windows.
        - `24h` string — Value over the past 24 hours.
        - `7d` string — Value over the past 7 days.
        - `30d` string — Value over the past 30 days.
        - `all` string — All-time value.
      - `settledTxns` MarketsWindowedCount — An integer count metric broken down across time windows.
        - `24h` integer — Count over the past 24 hours.
        - `7d` integer — Count over the past 7 days.
        - `30d` integer — Count over the past 30 days.
        - `all` integer — All-time count.
      - `networkSuccessPercent` MarketsWindowedSuccess — Success-percentage metric across 24h/7d/30d windows. Null for a window when no terminal orders exist in that window.
        - `24h` string, nullable — Network success rate over the past 24 hours (null if no terminal orders).
        - `7d` string, nullable — Network success rate over the past 7 days (null if no terminal orders).
        - `30d` string, nullable — Network success rate over the past 30 days (null if no terminal orders).
      - `medianDeliverySecs` MarketsWindowedMedian — Median delivery time in seconds across windows. Null for a window when no data exists.
        - `24h` integer, nullable — Median delivery seconds over the past 24 hours.
        - `7d` integer, nullable — Median delivery seconds over the past 7 days.
        - `30d` integer, nullable — Median delivery seconds over the past 30 days.
      - `activeProviders` MarketsWindowedCount — An integer count metric broken down across time windows.
        - `24h` integer — Count over the past 24 hours.
        - `7d` integer — Count over the past 7 days.
        - `30d` integer — Count over the past 30 days.
        - `all` integer — All-time count.
      - `activeSenders` MarketsWindowedCount — An integer count metric broken down across time windows.
        - `24h` integer — Count over the past 24 hours.
        - `7d` integer — Count over the past 7 days.
        - `30d` integer — Count over the past 30 days.
        - `all` integer — All-time count.
      - `liveLiquidityUsd` string — Total available USD-denominated liquidity across all book rows.
      - `corridors` integer — Number of distinct token/fiat pairs currently in the book.
      - `tokens` integer — Number of distinct tokens currently in the book.
      - `networks` integer — Number of distinct networks currently in the book.
    - `book` MarketOffer[] — Array of provider quote rows forming the live orderbook.
      - `providerId` string — Provider identifier.
      - `side` 'sell' | 'buy' — `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 exchange rate for this row (fiat per crypto for sell; crypto per fiat for buy).
      - `rateType` 'fixed' | 'floating' — Whether the rate is fixed or floating.
      - `min` string — Minimum order amount accepted by this provider for this corridor.
      - `max` string — Maximum order amount accepted by this provider for this corridor.
      - `balance` string — Provider's available liquidity for this side. For **sell** this is in fiat (`balanceCurrency` = fiat code); for **buy** this is in token (`balanceCurrency` = token symbol). The balance is the shared pool repeated across a provider's networks for the same fiat/token— de-duplicate by `providerId + fiat` (sell) or `providerId + token` (buy) when summing depth.
      - `balanceCurrency` string — Currency of `balance` — fiat code for sell rows, token symbol for buy rows.
      - `balanceUsd` string — Balance normalised to USD.
      - `settled` integer — Total number of settled orders for this provider in this corridor.
      - `successPercent` string, nullable — Provider's success rate (settled / (settled + refunded)) as a percentage string. `null` when there is no settled or refunded history.

## Other responses

- `429` — Too many requests (per-IP rate limit exceeded)

---

[API](https://skmtc.net/paycrest/apis/paycrest-aggregator-api.md) · [All operations](https://skmtc.net/paycrest/apis/paycrest-aggregator-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paycrest/paycrest-aggregator-api/versions/f20903971a91/schema)
