---
title: "Search Kalshi markets"
method: GET
path: "/v1/kalshi/search"
tags: ["Kalshi"]
---

# Search Kalshi markets

`GET /v1/kalshi/search`

## Request

- Base URL: `https://api.scrapeatlas.com`
- URL: `https://api.scrapeatlas.com/v1/kalshi/search`
- Auth: API key in header `x-api-key`

Search Kalshi events by keyword, as kalshi.com search does. Each result is an event with its series, category, volume, trending flags and its markets with current Yes bid, ask and last price. Omit query to list the full ranked catalog. Page with cursor. Each successful request costs 1 account credit, including partial results. Failed requests cost 0 credits.

## Query parameters

- `query` string
- `cursor` string
- `limit` string

## Response `200`

Inspect the response status and failure or coverage fields.

- union
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `success` true, required
    - `status` 'success' | 'partial', required
    - `sourceUrl` string, uri, required
    - `fetchedAt` string, date-time, required
    - `coverage` object, required
      - `source` 'public_api', required
      - `complete` boolean, required
      - `warnings` string[], required
      - `order` 'newest_first' | 'oldest_first' | 'ranked' | 'relevance' | 'source_order', required
      - `window` object
        - `since` string, date-time
        - `until` string, date-time
    - `results` object[], required
      - `event_ticker` string, required
      - `series_ticker` string, required
      - `event_title` string
      - `event_subtitle` string
      - `series_title` string
      - `category` string
      - `type` string
      - `tags` string[]
      - `is_trending` boolean
      - `is_new` boolean
      - `is_closing` boolean
      - `is_price_delta` boolean
      - `total_volume` integer
      - `total_series_volume` integer
      - `recent_volume` integer
      - `active_market_count` integer
      - `total_market_count` integer
      - `fee_type` string
      - `fee_multiplier` number
      - `search_score` integer
      - `milestone_id` string
      - `product_metadata` object
      - `markets` object[]
        - `ticker` string, required
        - `title` string
        - `yes_subtitle` string
        - `no_subtitle` string
        - `market_id` string
        - `result` string
        - `open_ts` string
        - `close_ts` string
        - `expected_expiration_ts` string
        - `yes_bid` integer
        - `yes_ask` integer
        - `last_price` integer
        - `previous_price` integer
        - `price_delta` integer
        - `volume` integer
        - `yes_bid_dollars` string
        - `yes_ask_dollars` string
        - `last_price_dollars` string
        - `previous_price_dollars` string
        - `score` integer
        - `structured_target_id` string
        - `custom_strike` object
        - `icon_url_light_mode` string
        - `icon_url_dark_mode` string
        - `image_url_light_mode` string
        - `image_url_dark_mode` string
    - `nextCursor` string, nullable, required
  - object
    - `requestId` string, uuid, required
    - `accounting` object, required
      - `upstreamRequests` integer, required
      - `responseBytes` integer, required
      - `durationMs` number, required
    - `success` false, required
    - `status` 'failed' | 'challenged', required
    - `failure` object, required
      - `code` 'invalid_request' | 'unauthorized' | 'not_found' | 'upstream_challenged' | 'upstream_rate_limited' | 'upstream_error' | 'unsupported_page' | 'response_too_large' | 'unsafe_redirect' | 'request_limit' | 'timeout' | 'busy' | 'payload_too_complex', required
      - `message` string, required

## Other responses

- `400`: Request could not complete; inspect error or failure.code.
- `401`: Request could not complete; inspect error or failure.code.
- `402`: Request could not complete; inspect error or failure.code.
- `403`: Request could not complete; inspect error or failure.code.
- `404`: Request could not complete; inspect error or failure.code.
- `408`: Request could not complete; inspect error or failure.code.
- `413`: Request could not complete; inspect error or failure.code.
- `429`: Request could not complete; inspect error or failure.code.
- `500`: Request could not complete; inspect error or failure.code.
- `502`: Request could not complete; inspect error or failure.code.
- `503`: Request could not complete; inspect error or failure.code.
- `504`: Request could not complete; inspect error or failure.code.

---

[API](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api.md) · [All operations](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrapeatlas/apis/scrapeatlas-api/revisions/9ba049316894?raw)
