Skip to main content
API referenceMarketplace

Market Data Endpoints

Public endpoints — no authentication required.

All Models

GET/api/markets

All models with best prices, seller count, and volume.

Returns: model name, best ask (input/output), number of active sellers, 24h volume, and ttft_p50_ms — the model's median time to first token over the trailing 24 hours, in milliseconds, across every provider and seller serving it (ttft_samples is the number of streamed requests behind it), uptime_pct — served requests over all attempts across those providers, same window — cache_hit_rate_pct — the share of the model's input tokens that were prompt-cache reads — and tps_p50, the model's median output tokens per second while streaming (tps_samples beside it). Each is null, not 0, when there is not enough data; render a null as unavailable.

Discounts on offer right now, each a percentage to two decimals against the model's reference price: best_live_discount_pct is the deepest across the model's live offers, median_live_discount_pct the median taken per offer over the same offers, and best_trusted_offer_discount_pct the deepest among trusted-provider offers. A field is omitted when no qualifying offer has a reference price to compare against; treat that as unknown, never as 0. best_discount_pct is different: the deepest discount a fill actually got over 90 days.

Cached for 30 seconds; the figures are precomputed every 15 minutes.

Requestbash
curl https://api.surplusintelligence.ai/api/markets
Narrowing down/api/markets lists every model; /api/markets/:model opens one model's order book. The second is a zoom into the first.
Watching it happen/api/markets/feed is a live feed of settlements across ALL models — a sibling view, not a zoom into any one book.

Model Order Book

GET/api/markets/:model

Full order book for a specific model.

Returns: every offer with its price, capacity remaining, health status, provider, and volume. Sorted cheapest-first. Offers carry no seller identity: offers[].seller, the seller's wallet, has been removed.

depth carries the same live discounts as /api/markets (best_live_discount_pct, median_live_discount_pct, best_trusted_offer_discount_pct), over the offers available now. Each is null when no available offer has a reference price, never 0.

realized_7d is what buyers actually got: discount_pct, the request-weighted average discount over the 7 UTC days ending today, from requests eligible requests, with the week before as prior_discount_pct and prior_requests. discount_trend_7d is the best realized discount per 12 hours over the same 7 days (14 buckets, oldest first, each with requests and best_discount_pct), plus this week's best_discount_pct and last week's prior_best_discount_pct. Both objects are omitted until their precomputed figures exist; a null inside them means no figure for that period (no eligible requests, or not yet covered), not 0.

recent_fills[].route names the provider route that served each fill (for example Anthropic or Amazon Bedrock), or null when the serving offer is no longer live. recent_fills_as_of is when the fills were computed, in epoch ms; null means nothing has been published for the model yet, so an empty recent_fills is missing data rather than no trades.

Requestbash
curl https://api.surplusintelligence.ai/api/markets/claude-opus-4.6

Transaction Feed

GET/api/markets/feed

Live transaction feed. No caching (revalidate=0).

Returns: recent completions with timestamp, model, tokens, price paid, and latency.