River Markets Prices API
Get historical price data and candlesticks from exchanges.
Get historical price data and candlesticks from exchanges.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/river-markets-prices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: River Markets Prices API
description: '# Getting Started
River Markets provides users with a unified prime brokerage interface for prediction markets, including
- Liquidity aggregation
- Order routing
- Market and data search
This API guide will help you get up and running quickly.'
contact:
name: River Markets
url: https://rivermarkets.com/
license:
name: Proprietary
version: 1.0.0
servers:
- url: https://api.rivermarkets.com
security:
- SignedRequestKeyId: []
SignedRequestTimestamp: []
SignedRequestSignature: []
- BearerAuth: []
tags:
- name: Prices
description: Get historical price data and candlesticks from exchanges.
paths:
/v1/prices/{river_id}/volume:
get:
tags:
- Prices
summary: Get Volume
description: 'Traded volume over a recent window, summed from our captured trade prints
(all exchanges write to `trade_prints`). 1 contract traded = $1 of volume.
Summed from the raw hypertable rather than the OHLC continuous aggregates
so the most recent minutes are always included.'
operationId: get_volume_v1_prices__river_id__volume_get
parameters:
- name: river_id
in: path
required: true
schema:
type: integer
description: River market ID
title: River Id
description: River market ID
- name: window
in: query
required: false
schema:
enum:
- 15m
- 1h
- 24h
type: string
description: Lookback window
default: 1h
title: Window
description: Lookback window
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/VolumeResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/prices/volume:
get:
tags:
- Prices
summary: Get Volume Batch
description: 'Batch variant of the windowed-volume endpoint for grid views (multibook):
one grouped scan of `trade_prints` instead of a request per market.
Markets with no prints in the window come back with volume 0.'
operationId: get_volume_batch_v1_prices_volume_get
parameters:
- name: river_ids
in: query
required: true
schema:
type: string
description: Comma-separated list of river IDs
title: River Ids
description: Comma-separated list of river IDs
- name: window
in: query
required: false
schema:
enum:
- 15m
- 1h
- 24h
type: string
description: Lookback window
default: 1h
title: Window
description: Lookback window
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/BatchVolumeResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/prices/{river_id}:
get:
tags:
- Prices
summary: Get Prices
description: 'Get price data for a market.
Returns either candlestick OHLC data or simple price history based on the `type` parameter.
The endpoint automatically determines the exchange and fetches data accordingly.
- **Kalshi**: Returns real OHLC candlestick data with volume
- **Polymarket**: Returns price history (candlesticks will have synthetic OHLC where all values equal the price)
All prices are normalized to 0-1 range.'
operationId: get_prices_v1_prices__river_id__get
parameters:
- name: river_id
in: path
required: true
schema:
type: integer
description: River market ID
title: River Id
description: River market ID
- name: type
in: query
required: false
schema:
enum:
- candlesticks
- history
type: string
description: Response type
default: candlesticks
title: Type
description: Response type
- name: interval
in: query
required: false
schema:
enum:
- 1d
- 1w
- 1m
- max
type: string
description: Time range
default: 1d
title: Interval
description: Time range
- name: fidelity
in: query
required: false
schema:
type: integer
maximum: 120
minimum: 1
description: Minutes per data point (for Polymarket history)
default: 60
title: Fidelity
description: Minutes per data point (for Polymarket history)
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PriceResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
PricePoint:
properties:
timestamp:
type: integer
title: Timestamp
price:
type: number
title: Price
type: object
required:
- timestamp
- price
title: PricePoint
description: Simple price point for history type.
BatchVolumeResponse:
properties:
window:
type: string
enum:
- 15m
- 1h
- 24h
title: Window
volumes:
items:
$ref: '#/components/schemas/BatchVolumeEntry'
type: array
title: Volumes
as_of:
type: integer
title: As Of
type: object
required:
- window
- volumes
- as_of
title: BatchVolumeResponse
description: Windowed traded volume for a batch of markets (multibook grids).
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
BatchVolumeEntry:
properties:
river_id:
type: integer
title: River Id
volume:
type: number
title: Volume
type: object
required:
- river_id
- volume
title: BatchVolumeEntry
PriceCandlestick:
properties:
timestamp:
type: integer
title: Timestamp
open:
type: number
title: Open
high:
type: number
title: High
low:
type: number
title: Low
close:
type: number
title: Close
volume:
anyOf:
- type: integer
- type: 'null'
title: Volume
type: object
required:
- timestamp
- open
- high
- low
- close
title: PriceCandlestick
description: Candlestick format for all exchanges.
PriceResponse:
properties:
river_id:
type: integer
title: River Id
exchange:
type: string
title: Exchange
type:
type: string
enum:
- candlesticks
- history
title: Type
has_ohlc:
type: boolean
title: Has Ohlc
default: false
candlesticks:
anyOf:
- items:
$ref: '#/components/schemas/PriceCandlestick'
type: array
- type: 'null'
title: Candlesticks
history:
anyOf:
- items:
$ref: '#/components/schemas/PricePoint'
type: array
- type: 'null'
title: History
type: object
required:
- river_id
- exchange
- type
title: PriceResponse
description: Response for price queries.
VolumeResponse:
properties:
river_id:
type: integer
title: River Id
window:
type: string
enum:
- 15m
- 1h
- 24h
title: Window
volume:
type: number
title: Volume
as_of:
type: integer
title: As Of
type: object
required:
- river_id
- window
- volume
- as_of
title: VolumeResponse
description: Traded volume over a recent window, summed from captured trade prints.
securitySchemes:
SignedRequestKeyId:
type: apiKey
in: header
name: X-River-Key-Id
description: UUID of your API key (from Settings → API Keys).
SignedRequestTimestamp:
type: apiKey
in: header
name: X-River-Timestamp
description: Current unix seconds. Must be within 30s of server time.
SignedRequestSignature:
type: apiKey
in: header
name: X-River-Signature
description: 'Base64 Ed25519 signature over the canonical request: METHOD\nPATH\nSORTED_QUERY\nTIMESTAMP\nSHA256(body) hex. See /api-reference/authentication for the full recipe.'
BearerAuth:
type: http
scheme: bearer
description: JWT bearer token for web client authentication.