Skip to main content
GET
/
v1
/
markets
/
match
Match Market
curl --request GET \
  --url https://api.rivermarkets.com/v1/markets/match \
  --header 'X-River-Key-Id: <api-key>' \
  --header 'X-River-Signature: <api-key>' \
  --header 'X-River-Timestamp: <api-key>'
{
  "river_id": 123,
  "exchange_value": 123,
  "exchange_name": "<string>",
  "tick_size_price": 123,
  "tick_size_qty": 123,
  "minimum_order_size": 123,
  "neg_risk": true,
  "name": "<string>",
  "ticker": "<string>",
  "token_id_yes": "<string>",
  "token_id_no": "<string>",
  "slug": "<string>",
  "tick_structure": "uniform",
  "expiration_datetime": "<string>",
  "start_datetime": "<string>",
  "neg_risk_id": "<string>",
  "condition_id": "<string>",
  "subtitle": "<string>",
  "description": "<string>",
  "category": "Other",
  "subcategory": "<string>",
  "rank": 123,
  "event_ticker": "<string>",
  "event_title": "<string>",
  "volume": 123,
  "volume_24h": 123,
  "series_ticker": "<string>",
  "image": "<string>",
  "primary_entity_name": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.rivermarkets.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

X-River-Key-Id
string
header
required

UUID of your API key (from Settings → API Keys).

X-River-Timestamp
string
header
required

Current unix seconds. Must be within 30s of server time.

X-River-Signature
string
header
required

Base64 Ed25519 signature over the canonical request: METHOD\nPATH\nSORTED_QUERY\nTIMESTAMP\nSHA256(body) hex. See /api-reference/authentication for the full recipe.

Query Parameters

ticker
string | null

Exact Kalshi ticker (e.g. KXNBA-26-DET)

slug
string | null

Exact Polymarket slug (e.g. will-the-denver-nuggets-win-the-2026-nba-finals)

Response

Successful Response

Schema for a single market search result.

river_id
integer
required
exchange_value
integer
required
exchange_name
string
required
tick_size_price
number
required
tick_size_qty
number
required
minimum_order_size
number
required
neg_risk
boolean
required
name
string
required
status
enum<string>
required

Instrument status derived in instruments table from exchange-specific fields.

Kalshi: maps from kalshi_markets.status - 'active' -> ACTIVE - everything else (closed, determined, finalized, settled, amended, inactive, initialized) -> CLOSED

Polymarket: maps from polymarket_markets.closed and polymarket_markets.active booleans - closed=true -> CLOSED - active=true (and not closed) -> ACTIVE - else (active=false, closed=false) -> INACTIVE

Available options:
active,
closed,
inactive
ticker
string | null
token_id_yes
string | null
token_id_no
string | null
slug
string | null
tick_structure
string
default:uniform
expiration_datetime
string | null

Market expiration datetime (UTC)

start_datetime
string | null

Game/event start datetime (UTC). Populated for sports; null otherwise.

neg_risk_id
string | null
condition_id
string | null
subtitle
string | null
description
string | null
category
string
default:Other
subcategory
string | null
rank
number | null
event_ticker
string | null
event_title
string | null
volume
integer | null
volume_24h
integer | null
series_ticker
string | null
image
string | null
primary_entity_name
string | null

Resolved display name of the canonical structured-target entity (player, team, competitor, …) referenced by the market. NULL for markets without a structured target. Kalshi only — Polymarket has no equivalent concept.