AGG is currently in alpha. APIs, components, and docs may change.
Agg.market — Prediction Market Aggregator logo

Get live midpoints for multiple markets

Returns live orderbook midpoints for the requested venue market IDs.

GEThttps://api.agg.market/midpoints

Returns live orderbook midpoints for the requested venue market IDs. venueMarketIds accepts either a comma-separated string (?venueMarketIds=a,b,c) or repeated params (?venueMarketIds=a&venueMarketIds=b). Midpoint represents the Yes-side price (0-1). Direct GET callers should keep batches small enough to stay under CDN URL limits; AGG SDK/UI clients default to 75 IDs per request and merge multiple batches automatically. Pass bestPrice=true to also receive top-of-book bestBid/bestAsk on every entry, per-outcome row, and matched sibling, plus arbReturn — the live, quality-gated cross-venue arbitrage return for the market's cluster, computed fresh by the engine on this request. Prefer it over the arbReturn embedded in venue-event listings, which is synced by a background job and can be stale. Every entry carries marketStatus; resolved markets never serve a price — they return null prices plus a structured error (code: "market_resolved"), and unknown ids return code: "market_not_found", mirroring GET /orderbooks. Returns 503 if the orderbook engine is unavailable.

Loading code example
Loading code example

Authorizations

appIdstringheaderrequired

API key passed in the header.

Query Parameters

venueMarketIdsanyrequired
bestPriceboolean

Response

application/json

200

dataarray<object>required
data.venueMarketIdstringrequired
data.venuestringrequired
data.midpointnumberrequired
data.spreadnumberrequired
data.timestampnumberrequired
data.outcomesarray<object>required
data.matchedarray<object>required
data.markSource"local" | "local_merged" | "local_one_sided" | "sibling" | "local_boundary" | "none"
Allowed values: "local" | "local_merged" | "local_one_sided" | "sibling" | "local_boundary" | "none"
data.siblingVenueMarketIdstring
data.bestBidnumber
data.bestAsknumber
data.arbReturnnumber
data.marketStatus"open" | "closed" | "resolved" | "unopened" | "paused"
Allowed values: "open" | "closed" | "resolved" | "unopened" | "paused"
data.errorobject