Skip to main content
GET
/
v1
/
markets
/
search
Search Markets
curl --request GET \
  --url https://api.rivermarkets.com/v1/markets/search \
  --header 'x-api-key: <api-key>'
{
  "query": "<string>",
  "results": [
    {
      "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>",
      "status": "active",
      "ticker": "<string>",
      "token_id_yes": "<string>",
      "token_id_no": "<string>",
      "slug": "<string>",
      "expiration_datetime": "2023-11-07T05:31:56Z",
      "neg_risk_id": "<string>",
      "condition_id": "<string>",
      "description": "<string>",
      "category": "Other",
      "rank": 123
    }
  ],
  "total": 123
}

Authorizations

x-api-key
string
header
required

API key for programmatic access. Generate one at app.rivermarkets.com under Settings → API Keys.

Query Parameters

q
string | null

Search query

Minimum string length: 1
exchange_name
string | null

Filter by exchange name (KALSHI, POLYMARKET)

category
string | null

Filter by canonical category (Sports, Crypto, Politics, Finance, Entertainment, Science & Tech, Weather, World Affairs, Health, Social, Other)

status
enum<string> | null

Filter by instrument status Instrument status derived in mv_instruments 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
expiration_date_start
string<date-time> | null

Start of expiration date range (inclusive, ISO 8601)

expiration_date_end
string<date-time> | null

End of expiration date range (exclusive, ISO 8601)

limit
integer
default:20

Maximum number of results

Required range: 1 <= x <= 1000
offset
integer
default:0

Offset for pagination

Required range: x >= 0

Response

Successful Response

Schema for market search response.

query
string
required
results
MarketSearchResult · object[]
required
total
integer
required