Get Tradeprints
Changed onReturn the most recent trades for one or more markets. Markets whose trade history River has fully captured are served from River's own data; the rest are fetched from the exchange (concurrently, under a small semaphore so a long input list never fans out into a thundering herd) while a backfill of their history is queued. The result list preserves the input order. A failure on any single market becomes a not_found row with a message — the call as a whole does not 500.
Exchange lookup paths:
- Kalshi: GET /markets/trades?ticker=...&limit=...
- Polymarket: GET https://data-api.polymarket.com/v2/trades?condition=<condition_id>&limit=... (the NO leg is flipped into YES-price terms)
- Polymarket US: always River's own capture (no public API)
- Novig: GET /v3/catalog/markets/{id}/trades (signed; the print names the maker's outcome, so a NO-outcome print is a YES purchase at 1 - price and a YES-outcome print a YES sale)
Trades are sorted newest-first within each market. Prices are normalised to 0-1.
Use this together with the /v1/ws/tradeprints WebSocket: hit this endpoint to backfill the tape on page load, then dedup live WS events by exchange_trade_id.
Request
- Base URLhttps://api.rivermarkets.com (the document declares no server; this is the origin it was published from)
- URLhttps://api.rivermarkets.com/v1/tradeprints
- Authnone declared
Query parameters
River market IDs (repeat the param for each)
Max trades returned per market
Response
Successful Response
Changes
- breaking
the
/////response's property format changed fromdate-timeto no format for status
- breaking