CoinPaprika Market Transparency data guide What this is: live order-book observations for one coin's pairs with one quote currency across the exchanges CoinPaprika tracks; venue prices and depths are expressed in USD whatever the pair's quote; USDT/USDC pairs are converted upstream. Every venue row carries observed_at, the time its order book was fetched, and age_seconds, its age at captured_at. Nothing here is a fixture or a modelled estimate. Files: - https://coinpaprika.com/transparency.json is the full dataset (schema_version 1.0.0); https://coinpaprika.com/transparency/schema.json is its JSON Schema (draft 2020-12). - https://coinpaprika.com/transparency.csv is an alternate rendition with one row per venue (both depth spans as columns) and a header row. It holds the same venues as the JSON. - https://coinpaprika.com/transparency shows the same data as HTML; send Accept: text/markdown for a Markdown copy. - Bitcoin is the default coin. Add ?base= (a CoinPaprika coin id such as eth-ethereum, matching ^[a-z0-9-]{1,64}$) for another coin. - ?quote= selects the pair quote: USDT (default), USD, USDC. Pass the symbol in any case or the CoinPaprika id (usdt-tether, usd-us-dollars, usdc-usd-coin). quote is the symbol and quote_id the id in the JSON. - A malformed base or quote is answered with 400. An unknown coin, or both upstream sources down, is answered with 503, Cache-Control: no-store and a Retry-After header. Reference price: reference.price_usd is CoinPaprika's own USD price for the coin (source "coinpaprika_price"). Every deviation is measured from it: deviation_percent = (price_usd / reference.price_usd - 1) * 100 So 0.25 means the venue trades 0.25% above the reference, -0.25 means 0.25% below. Percent values use percentage units: 1.5 means 1.5%, not 0.015. Depth: depth["1"] is the USD value of resting orders within 1% of the mid price, depth["10"] within 10%; bid_usd is the buy side, ask_usd the sell side, combined_usd their sum (null unless both sides are known). total_depth_usd sums combined_usd over fresh and delayed venues, per span. price_range_percent is the spread between the highest and lowest price among fresh and delayed venues. Stale and excluded venues are listed but not counted in either. spread_percent is the venue's bid-ask spread as a percentage of its price; the upstream reports the spread in USD and the percentage is derived from it. Feed status (status, with status_reason saying why): - fresh: Order book observed at most 900 seconds (15 minutes) before captured_at. - delayed: Order book observed more than 900 and at most 21600 seconds (6 hours) before captured_at. - stale: Order book observed more than 21600 seconds before captured_at, flagged as old upstream (status_reason "data_old"), or of unknown age (status_reason "no_timestamp" or "future_timestamp"). Stale venues are listed but left out of price_range_percent and total_depth_usd. - excluded: Flagged by CoinPaprika as a price outlier (status_reason "outlier"), excluded from volume (status_reason "volume_excluded"), or priced more than 10% from the reference (status_reason "price_deviation"). Excluded venues are listed but left out of price_range_percent and total_depth_usd. status describes the order-book data feed only. It is not a rating of the venue's safety, solvency, custody or deposit status. Status reasons (status_reason; null when fresh): - outlier: CoinPaprika flagged the venue's price as an outlier. Status excluded. - volume_excluded: CoinPaprika excludes the venue's volume from its market totals. Status excluded. - price_deviation: The venue's price is more than 10% from the benchmark: the CoinPaprika reference price, or, when the reference is unavailable, the median price of the venues not flagged outlier or volume_excluded (checked only with at least 3 of them). Ranks above data_old and age. Status excluded. - data_old: The upstream flagged the order book itself as old. Status stale. - no_timestamp: The upstream gave no order-book time, so the book's age is unknown. Status stale. - future_timestamp: The order-book time is more than 60 seconds ahead of our clock, so its age is unknown. Status stale. - age: The book's age alone: more than 900 seconds makes it delayed, more than 21600 seconds stale. Scope: this resource contains only directly observable data (prices, order books and their age) and does not score exchanges. Exchange-level confidence scores are documented at https://coinpaprika.com/methodology. regulated is the upstream's flag for the exchange (true, false, or null when unknown); it is not a recommendation. Price history is not included. These resources hold the latest order-book observation per venue only; the per-exchange price chart is on https://coinpaprika.com/transparency. Missing data: a value the upstream cannot vouch for is null in JSON and an empty cell in CSV; it never means zero. sources.depth and sources.reference report each upstream separately: with depth unavailable the venue list is empty, with the reference unavailable every deviation_percent is null. If both are unavailable the JSON and CSV answer 503 with Cache-Control: no-store and Retry-After; retry after a minute. Numbers are written as plain decimals, never in exponent notation. Freshness and rates: captured_at is when this data set was assembled; each venue's observed_at is the real time of its order book. Order-book depth is cached server-side for up to 10 minutes, so observations can be about 10 minutes older than captured_at suggests (more for delayed or stale venues); use observed_at and age_seconds, not captured_at, to judge how current a venue's book is. Responses are cached for 60 seconds, so polling more than once a minute returns the same data; the depth cache itself refreshes about every 10 minutes. No authentication tokens, trading operations or live MCP service are provided by these resources.