Kalshi é uma exchange regulamentada federalmente onde os usuários podem negociar diretamente sobre os resultados de eventos futuros — prediction markets. A robusta API da Kalshi e a integração com o Zoen permitem que agentes e fluxos de trabalho acessem de forma programática todos os aspectos da plataforma, cobrindo desde pesquisa e analytics até negociação automatizada e monitoramento.
Com a integração da Kalshi no Zoen, você pode:
- Market & Event Data: Pesquisar, filtrar e recuperar dados em tempo real e históricos de markets e eventos; obter detalhes granulares sobre status de market, series, agrupamentos de eventos e muito mais.
- Account & Balance Management: Acessar saldos de conta, fundos disponíveis e monitorar posições abertas em tempo real.
- Order & Trade Management: Colocar novas ordens, cancelar existentes, visualizar ordens abertas, recuperar um orderbook ao vivo e acessar históricos completos de trades.
- Execution Analysis: Obter trades recentes, fills históricos e dados de candlestick para backtesting ou pesquisa de estrutura de mercado.
- Monitoring: Verificar status em nível de exchange ou series, receber atualizações em tempo real sobre mudanças de market ou trading halts, e automatizar respostas.
- Automation Ready: Construir agentes e dashboards automatizados de ponta a ponta que consomem, analisam e negociam sobre probabilidades de eventos do mundo real.
Ao usar essas ferramentas e endpoints unificados, você pode incorporar de forma fluida as prediction markets da Kalshi, capacidades de trading ao vivo e dados profundos de eventos nas suas aplicações, dashboards e fluxos de trabalho com IA — habilitando tomada de decisão sofisticada e automatizada vinculada a resultados do mundo real.
Integrate Kalshi prediction markets into the workflow. Can get markets, market, events, event, balance, positions, orders, orderbook, trades, candlesticks, fills, series, exchange status, and place/cancel/amend trades.
Retrieve a list of prediction markets from Kalshi with all filtering options (V2 - full API response)
| Parameter | Type | Required | Description |
|---|
status | string | No | Filter by market status: "unopened", "open", "closed", or "settled" |
seriesTicker | string | No | Filter by series ticker (e.g., "KXBTC", "INX", "FED-RATE") |
eventTicker | string | No | Filter by event ticker (e.g., "KXBTC-24DEC31", "INX-25JAN03") |
minCreatedTs | number | No | Minimum created timestamp in Unix seconds (e.g., 1704067200) |
maxCreatedTs | number | No | Maximum created timestamp in Unix seconds (e.g., 1704153600) |
minUpdatedTs | number | No | Minimum updated timestamp in Unix seconds (e.g., 1704067200) |
minCloseTs | number | No | Minimum close timestamp in Unix seconds (e.g., 1704067200) |
maxCloseTs | number | No | Maximum close timestamp in Unix seconds (e.g., 1704153600) |
minSettledTs | number | No | Minimum settled timestamp in Unix seconds (e.g., 1704067200) |
maxSettledTs | number | No | Maximum settled timestamp in Unix seconds (e.g., 1704153600) |
tickers | string | No | Comma-separated list of tickers (e.g., "KXBTC-24DEC31,INX-25JAN03") |
mveFilter | string | No | Multivariate event filter: "only" or "exclude" |
limit | string | No | Number of results to return (1-1000, default: 100) |
cursor | string | No | Pagination cursor from previous response for fetching next page |
| Parameter | Type | Description |
|---|
markets | array | Array of market objects with all API fields |
↳ ticker | string | Unique market ticker identifier |
↳ event_ticker | string | Parent event ticker |
↳ market_type | string | Market type (binary, etc.) |
↳ title | string | Market title/question |
↳ subtitle | string | Market subtitle |
↳ yes_sub_title | string | Yes outcome subtitle |
↳ no_sub_title | string | No outcome subtitle |
↳ open_time | string | Market open time (ISO 8601) |
↳ close_time | string | Market close time (ISO 8601) |
↳ expiration_time | string | Contract expiration time |
↳ status | string | Market status (open, closed, settled, etc.) |
↳ yes_bid | number | Current best yes bid price in cents |
↳ yes_ask | number | Current best yes ask price in cents |
↳ no_bid | number | Current best no bid price in cents |
↳ no_ask | number | Current best no ask price in cents |
↳ last_price | number | Last trade price in cents |
↳ previous_yes_bid | number | Previous yes bid |
↳ previous_yes_ask | number | Previous yes ask |
↳ previous_price | number | Previous last price |
↳ volume | number | Total volume (contracts traded) |
↳ volume_24h | number | 24-hour trading volume |
↳ liquidity | number | Market liquidity measure |
↳ open_interest | number | Open interest (outstanding contracts) |
↳ result | string | Settlement result (yes, no, null) |
↳ cap_strike | number | Cap strike for ranged markets |
↳ floor_strike | number | Floor strike for ranged markets |
↳ category | string | Market category |
cursor | string | Pagination cursor for fetching more results |
Retrieve details of a specific prediction market by ticker (V2 - full API response)
| Parameter | Type | Required | Description |
|---|
ticker | string | Yes | Market ticker identifier (e.g., "KXBTC-24DEC31", "INX-25JAN03-T4485.99") |
| Parameter | Type | Description |
|---|
market | object | Market object with all API fields |
↳ ticker | string | Market ticker |
↳ event_ticker | string | Event ticker |
↳ market_type | string | Market type |
↳ title | string | Market title |
↳ subtitle | string | Market subtitle |
↳ yes_sub_title | string | Yes outcome subtitle |
↳ no_sub_title | string | No outcome subtitle |
↳ open_time | string | Market open time |
↳ close_time | string | Market close time |
↳ expected_expiration_time | string | Expected expiration time |
↳ expiration_time | string | Expiration time |
↳ latest_expiration_time | string | Latest expiration time |
↳ settlement_timer_seconds | number | Settlement timer in seconds |
↳ status | string | Market status |
↳ response_price_units | string | Response price units |
↳ notional_value | number | Notional value |
↳ tick_size | number | Tick size |
↳ yes_bid | number | Current yes bid price |
↳ yes_ask | number | Current yes ask price |
↳ no_bid | number | Current no bid price |
↳ no_ask | number | Current no ask price |
↳ last_price | number | Last trade price |
↳ previous_yes_bid | number | Previous yes bid |
↳ previous_yes_ask | number | Previous yes ask |
↳ previous_price | number | Previous price |
↳ volume | number | Total volume |
↳ volume_24h | number | 24-hour volume |
↳ liquidity | number | Market liquidity |
↳ open_interest | number | Open interest |
↳ result | string | Market result |
↳ cap_strike | number | Cap strike |
↳ floor_strike | number | Floor strike |
↳ can_close_early | boolean | Can close early |
↳ expiration_value | string | Expiration value |
↳ category | string | Market category |
↳ risk_limit_cents | number | Risk limit in cents |
↳ strike_type | string | Strike type |
↳ rules_primary | string | Primary rules |
↳ rules_secondary | string | Secondary rules |
↳ settlement_source_url | string | Settlement source URL |
↳ custom_strike | object | Custom strike object |
↳ underlying | string | Underlying asset |
↳ settlement_value | number | Settlement value |
↳ cfd_contract_size | number | CFD contract size |
↳ yes_fee_fp | number | Yes fee (fixed-point) |
↳ no_fee_fp | number | No fee (fixed-point) |
↳ last_price_fp | number | Last price (fixed-point) |
↳ yes_bid_fp | number | Yes bid (fixed-point) |
↳ yes_ask_fp | number | Yes ask (fixed-point) |
↳ no_bid_fp | number | No bid (fixed-point) |
↳ no_ask_fp | number | No ask (fixed-point) |
Retrieve a list of events from Kalshi with optional filtering (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
status | string | No | Filter by event status: "open", "closed", or "settled" |
seriesTicker | string | No | Filter by series ticker (e.g., "KXBTC", "INX", "FED-RATE") |
withNestedMarkets | string | No | Include nested markets in response: "true" or "false" |
withMilestones | string | No | Include milestones in response: "true" or "false" |
minCloseTs | number | No | Minimum close timestamp in Unix seconds (e.g., 1704067200) |
limit | string | No | Number of results to return (1-200, default: 200) |
cursor | string | No | Pagination cursor from previous response for fetching next page |
| Parameter | Type | Description |
|---|
events | array | Array of event objects |
↳ event_ticker | string | Unique event ticker identifier |
↳ series_ticker | string | Parent series ticker |
↳ title | string | Event title |
↳ sub_title | string | Event subtitle |
↳ mutually_exclusive | boolean | Whether markets are mutually exclusive |
↳ category | string | Event category |
↳ strike_date | string | Strike/settlement date |
↳ status | string | Event status |
milestones | array | Array of milestone objects (if requested) |
↳ id | string | Milestone ID |
↳ category | string | Milestone category |
↳ type | string | Milestone type |
↳ title | string | Milestone title |
↳ start_date | string | Milestone start date (ISO 8601) |
↳ end_date | string | Milestone end date (ISO 8601) |
↳ notification_message | string | Notification message |
↳ primary_event_tickers | array | Primary event tickers |
↳ related_event_tickers | array | Related event tickers |
↳ last_updated_ts | string | Last updated time (ISO 8601) |
cursor | string | Pagination cursor for fetching more results |
Retrieve details of a specific event by ticker (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
eventTicker | string | Yes | Event ticker identifier (e.g., "KXBTC-24DEC31", "INX-25JAN03") |
withNestedMarkets | string | No | Include nested markets in response (true/false) |
| Parameter | Type | Description |
|---|
event | object | Event object with full details matching Kalshi API response |
↳ event_ticker | string | Event ticker |
↳ series_ticker | string | Series ticker |
↳ title | string | Event title |
↳ sub_title | string | Event subtitle |
↳ mutually_exclusive | boolean | Mutually exclusive markets |
↳ category | string | Event category |
↳ collateral_return_type | string | Collateral return type |
↳ strike_date | string | Strike date |
↳ strike_period | string | Strike period |
↳ available_on_brokers | boolean | Available on brokers |
↳ product_metadata | object | Product metadata |
↳ markets | array | Nested markets (if requested) |
Retrieve your account balance and portfolio value from Kalshi (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
| Parameter | Type | Description |
|---|
balance | number | Account balance in cents |
portfolio_value | number | Portfolio value in cents |
updated_ts | number | Unix timestamp of last update (seconds) |
Retrieve your open positions from Kalshi (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
ticker | string | No | Filter by market ticker (e.g., "KXBTC-24DEC31") |
eventTicker | string | No | Filter by event ticker, max 10 comma-separated (e.g., "KXBTC-24DEC31,INX-25JAN03") |
countFilter | string | No | Restrict to positions with non-zero values for the given fields (comma-separated): "position", "total_traded" |
subaccount | string | No | Subaccount identifier to get positions for |
limit | string | No | Number of results to return (1-1000, default: 100) |
cursor | string | No | Pagination cursor from previous response for fetching next page |
| Parameter | Type | Description |
|---|
market_positions | array | Array of market position objects |
↳ ticker | string | Market ticker |
↳ event_ticker | string | Event ticker |
↳ event_title | string | Event title |
↳ market_title | string | Market title |
↳ position | number | Net position (positive=yes, negative=no) |
↳ market_exposure | number | Maximum potential loss in cents |
↳ realized_pnl | number | Realized profit/loss in cents |
↳ total_traded | number | Total contracts traded |
↳ resting_orders_count | number | Number of resting orders |
↳ fees_paid | number | Total fees paid in cents |
event_positions | array | Array of event position objects |
↳ event_ticker | string | Event ticker |
↳ event_exposure | number | Event-level exposure in cents |
↳ realized_pnl | number | Realized P&L in cents |
↳ total_cost | number | Total cost basis in cents |
cursor | string | Pagination cursor for fetching more results |
Retrieve your orders from Kalshi with optional filtering (V2 with full API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
ticker | string | No | Filter by market ticker (e.g., "KXBTC-24DEC31") |
eventTicker | string | No | Filter by event ticker, max 10 comma-separated (e.g., "KXBTC-24DEC31,INX-25JAN03") |
status | string | No | Filter by order status: "resting", "canceled", or "executed" |
minTs | string | No | Minimum timestamp filter (Unix timestamp, e.g., "1704067200") |
maxTs | string | No | Maximum timestamp filter (Unix timestamp, e.g., "1704153600") |
subaccount | string | No | Subaccount identifier to filter orders |
limit | string | No | Number of results to return (1-1000, default: 100) |
cursor | string | No | Pagination cursor from previous response for fetching next page |
| Parameter | Type | Description |
|---|
orders | array | Array of order objects with full API response fields |
↳ order_id | string | Unique order identifier |
↳ user_id | string | User ID |
↳ client_order_id | string | Client-provided order ID |
↳ ticker | string | Market ticker |
↳ side | string | Order side (yes/no) |
↳ action | string | Order action (buy/sell) |
↳ type | string | Order type (limit/market) |
↳ status | string | Order status (resting, canceled, executed) |
↳ yes_price | number | Yes price in cents |
↳ no_price | number | No price in cents |
↳ fill_count | number | Number of contracts filled |
↳ remaining_count | number | Remaining contracts to fill |
↳ initial_count | number | Initial order size |
↳ taker_fees | number | Taker fees paid in cents |
↳ maker_fees | number | Maker fees paid in cents |
↳ created_time | string | Order creation time (ISO 8601) |
↳ expiration_time | string | Order expiration time |
↳ last_update_time | string | Last order update time |
cursor | string | Pagination cursor for fetching more results |
Retrieve details of a specific order by ID from Kalshi (V2 with full API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
orderId | string | Yes | Order ID to retrieve (e.g., "abc123-def456-ghi789") |
| Parameter | Type | Description |
|---|
order | object | Order object with full API response fields |
↳ order_id | string | Order ID |
↳ user_id | string | User ID |
↳ client_order_id | string | Client order ID |
↳ ticker | string | Market ticker |
↳ side | string | Order side (yes/no) |
↳ action | string | Action (buy/sell) |
↳ type | string | Order type (limit/market) |
↳ status | string | Order status (resting/canceled/executed) |
↳ yes_price | number | Yes price in cents |
↳ no_price | number | No price in cents |
↳ yes_price_dollars | string | Yes price in dollars |
↳ no_price_dollars | string | No price in dollars |
↳ fill_count | number | Filled contract count |
↳ fill_count_fp | string | Filled count (fixed-point) |
↳ remaining_count | number | Remaining contracts |
↳ remaining_count_fp | string | Remaining count (fixed-point) |
↳ initial_count | number | Initial contract count |
↳ initial_count_fp | string | Initial count (fixed-point) |
↳ taker_fees | number | Taker fees in cents |
↳ maker_fees | number | Maker fees in cents |
↳ taker_fees_dollars | string | Taker fees in dollars |
↳ maker_fees_dollars | string | Maker fees in dollars |
↳ taker_fill_cost | number | Taker fill cost in cents |
↳ maker_fill_cost | number | Maker fill cost in cents |
↳ taker_fill_cost_dollars | string | Taker fill cost in dollars |
↳ maker_fill_cost_dollars | string | Maker fill cost in dollars |
↳ queue_position | number | Queue position (deprecated) |
↳ expiration_time | string | Order expiration time |
↳ created_time | string | Order creation time |
↳ last_update_time | string | Last update time |
↳ self_trade_prevention_type | string | Self-trade prevention type |
↳ order_group_id | string | Order group ID |
↳ cancel_order_on_pause | boolean | Cancel on market pause |
Retrieve the orderbook (yes and no bids) for a specific market (V2 - includes depth and fp fields)
| Parameter | Type | Required | Description |
|---|
ticker | string | Yes | Market ticker identifier (e.g., "KXBTC-24DEC31", "INX-25JAN03-T4485.99") |
depth | number | No | Number of price levels to return (e.g., 10, 20). Default: all levels |
| Parameter | Type | Description |
|---|
orderbook | object | Orderbook with yes/no bids (legacy integer counts) |
↳ yes | array | Yes side bids as tuples [price_cents, count] |
↳ no | array | No side bids as tuples [price_cents, count] |
↳ yes_dollars | array | Yes side bids as tuples [dollars_string, count] |
↳ no_dollars | array | No side bids as tuples [dollars_string, count] |
orderbook_fp | object | Orderbook with fixed-point counts (preferred) |
↳ yes_dollars | array | Yes side bids as tuples [dollars_string, fp_count_string] |
↳ no_dollars | array | No side bids as tuples [dollars_string, fp_count_string] |
Retrieve recent trades with additional filtering options (V2 - includes trade_id and count_fp)
| Parameter | Type | Required | Description |
|---|
ticker | string | No | Filter by market ticker (e.g., "KXBTC-24DEC31") |
minTs | number | No | Minimum timestamp in Unix seconds (e.g., 1704067200) |
maxTs | number | No | Maximum timestamp in Unix seconds (e.g., 1704153600) |
limit | string | No | Number of results to return (1-1000, default: 100) |
cursor | string | No | Pagination cursor from previous response for fetching next page |
| Parameter | Type | Description |
|---|
trades | array | Array of trade objects with trade_id and count_fp |
↳ ticker | string | Market ticker |
↳ yes_price | number | Trade price for yes in cents |
↳ no_price | number | Trade price for no in cents |
↳ count | number | Number of contracts traded |
↳ taker_side | string | Taker side (yes/no) |
↳ created_time | string | Trade time (ISO 8601) |
cursor | string | Pagination cursor for fetching more results |
Retrieve OHLC candlestick data for a specific market (V2 - full API response)
| Parameter | Type | Required | Description |
|---|
seriesTicker | string | Yes | Series ticker identifier (e.g., "KXBTC", "INX", "FED-RATE") |
ticker | string | Yes | Market ticker identifier (e.g., "KXBTC-24DEC31", "INX-25JAN03-T4485.99") |
startTs | number | Yes | Start timestamp in Unix seconds (e.g., 1704067200) |
endTs | number | Yes | End timestamp in Unix seconds (e.g., 1704153600) |
periodInterval | number | Yes | Period interval: 1 (1 minute), 60 (1 hour), or 1440 (1 day) |
| Parameter | Type | Description |
|---|
ticker | string | Market ticker |
candlesticks | array | Array of OHLC candlestick data with nested bid/ask/price objects |
Retrieve OHLC candlestick data aggregated across all markets in an event (V2 - full API response)
| Parameter | Type | Required | Description |
|---|
seriesTicker | string | Yes | Series ticker identifier (e.g., "KXBTC", "INX", "FED-RATE") |
eventTicker | string | Yes | Event ticker identifier (e.g., "KXBTC-24DEC31", "INX-25JAN03") |
startTs | number | Yes | Start timestamp in Unix seconds (e.g., 1704067200) |
endTs | number | Yes | End timestamp in Unix seconds (e.g., 1704153600) |
periodInterval | number | Yes | Period interval: 1 (1 minute), 60 (1 hour), or 1440 (1 day) |
| Parameter | Type | Description |
|---|
market_tickers | array | Market tickers included in the aggregated candlesticks |
adjusted_end_ts | number | Adjusted end timestamp used for the candlestick range (Unix seconds) |
market_candlesticks | array | Array of event-level aggregated OHLC candlestick data with nested bid/ask/price |
Retrieve your portfolio's fills/trades from Kalshi (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
ticker | string | No | Filter by market ticker (e.g., "KXBTC-24DEC31") |
orderId | string | No | Filter by order ID (e.g., "abc123-def456-ghi789") |
minTs | number | No | Minimum timestamp in Unix seconds (e.g., 1704067200) |
maxTs | number | No | Maximum timestamp in Unix seconds (e.g., 1704153600) |
subaccount | string | No | Subaccount identifier to get fills for |
limit | string | No | Number of results to return (1-1000, default: 100) |
cursor | string | No | Pagination cursor from previous response for fetching next page |
| Parameter | Type | Description |
|---|
fills | array | Array of fill/trade objects with all API fields |
↳ trade_id | string | Unique trade identifier |
↳ order_id | string | Associated order ID |
↳ ticker | string | Market ticker |
↳ side | string | Trade side (yes/no) |
↳ action | string | Trade action (buy/sell) |
↳ count | number | Number of contracts |
↳ yes_price | number | Yes price in cents |
↳ no_price | number | No price in cents |
↳ is_taker | boolean | Whether this was a taker trade |
↳ created_time | string | Trade execution time (ISO 8601) |
cursor | string | Pagination cursor for fetching more results |
Retrieve your portfolio settlement history from Kalshi (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
ticker | string | No | Filter by market ticker (e.g., "KXBTC-24DEC31") |
eventTicker | string | No | Filter by event ticker (e.g., "KXBTC-24DEC31") |
minTs | number | No | Minimum settled timestamp in Unix seconds (e.g., 1704067200) |
maxTs | number | No | Maximum settled timestamp in Unix seconds (e.g., 1704153600) |
subaccount | string | No | Subaccount number (0 for primary, 1-63 for subaccounts) |
limit | string | No | Number of results to return (1-1000, default: 100) |
cursor | string | No | Pagination cursor from previous response for fetching next page |
| Parameter | Type | Description |
|---|
settlements | array | Array of settlement objects with all API fields |
↳ ticker | string | Market ticker |
↳ event_ticker | string | Event ticker |
↳ market_result | string | Settlement outcome (yes, no, scalar) |
↳ yes_count_fp | string | Yes contracts owned (fixed-point) |
↳ yes_total_cost_dollars | string | Yes cost basis in dollars |
↳ no_count_fp | string | No contracts owned (fixed-point) |
↳ no_total_cost_dollars | string | No cost basis in dollars |
↳ revenue | number | Payout in cents |
↳ settled_time | string | Settlement timestamp (ISO 8601) |
↳ fee_cost | string | Fees in fixed-point dollars |
↳ value | number | Single yes contract payout in cents |
cursor | string | Pagination cursor for fetching more results |
Retrieve details of a specific market series by ticker (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
seriesTicker | string | Yes | Series ticker identifier (e.g., "KXBTC", "INX", "FED-RATE") |
includeVolume | string | No | Include volume data in response (true/false) |
| Parameter | Type | Description |
|---|
series | object | Series object with full details matching Kalshi API response |
↳ ticker | string | Series ticker |
↳ title | string | Series title |
↳ frequency | string | Event frequency |
↳ category | string | Series category |
↳ tags | array | Series tags |
↳ settlement_sources | array | Settlement sources |
↳ contract_url | string | Contract URL |
↳ contract_terms_url | string | Contract terms URL |
↳ fee_type | string | Fee type |
↳ fee_multiplier | number | Fee multiplier |
↳ additional_prohibitions | array | Additional prohibitions |
↳ product_metadata | object | Product metadata |
↳ volume | number | Series volume |
↳ volume_fp | number | Volume (fixed-point) |
Retrieve a list of market series from Kalshi with optional filtering (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
category | string | No | Filter by category (e.g., "Economics", "Politics", "Crypto") |
tags | string | No | Filter by comma-separated tags |
includeProductMetadata | string | No | Include product metadata in response (true/false) |
includeVolume | string | No | Include volume data in response (true/false) |
minUpdatedTs | number | No | Minimum updated timestamp in Unix seconds (e.g., 1704067200) |
| Parameter | Type | Description |
|---|
series | array | Array of series objects with all API fields |
↳ ticker | string | Unique series ticker |
↳ title | string | Series title |
↳ frequency | string | Event frequency (daily, weekly, etc.) |
↳ category | string | Series category |
↳ tags | array | Series tags |
↳ contract_url | string | Contract rules URL |
Retrieve the current status of the Kalshi exchange (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
exchange_active | boolean | Whether the exchange is active |
trading_active | boolean | Whether trading is active |
exchange_estimated_resume_time | string | Estimated time when exchange will resume (if inactive) |
Retrieve the Kalshi exchange trading schedule and maintenance windows (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
schedule | object | Exchange schedule (all times in ET) |
↳ standard_hours | array | Weekly schedules with per-day open/close trading sessions |
↳ maintenance_windows | array | Scheduled maintenance windows with start_datetime and end_datetime |
Retrieve exchange-wide announcements from Kalshi (V2 - exact API response)
| Parameter | Type | Required | Description |
|---|
| Parameter | Type | Description |
|---|
announcements | array | Array of exchange announcement objects |
↳ type | string | Announcement severity (info, warning, error) |
↳ message | string | Announcement message |
↳ delivery_time | string | Delivery time (ISO 8601) |
↳ status | string | Announcement status (active, inactive) |
Create a new order on a Kalshi prediction market (V2 with full API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
ticker | string | Yes | Market ticker identifier (e.g., "KXBTC-24DEC31", "INX-25JAN03-T4485.99") |
side | string | Yes | Side of the order: "yes" or "no" |
action | string | Yes | Action type: "buy" or "sell" |
count | string | No | Number of contracts to trade (e.g., "10", "100"). Provide count or countFp |
type | string | No | Order type: "limit" or "market" (default: "limit") |
yesPrice | string | No | Yes price in cents (1-99) |
noPrice | string | No | No price in cents (1-99) |
yesPriceDollars | string | No | Yes price in dollars (e.g., "0.56") |
noPriceDollars | string | No | No price in dollars (e.g., "0.56") |
clientOrderId | string | No | Custom order identifier |
expirationTs | string | No | Unix timestamp for order expiration |
timeInForce | string | No | Time in force: 'fill_or_kill', 'good_till_canceled', 'immediate_or_cancel' |
buyMaxCost | string | No | Maximum cost in cents (auto-enables fill_or_kill) |
postOnly | string | No | Set to 'true' for maker-only orders |
reduceOnly | string | No | Set to 'true' for position reduction only |
selfTradePreventionType | string | No | Self-trade prevention: 'taker_at_cross' or 'maker' |
orderGroupId | string | No | Associated order group ID |
countFp | string | No | Count in fixed-point for fractional contracts |
cancelOrderOnPause | string | No | Set to 'true' to cancel order on market pause |
subaccount | string | No | Subaccount to use for the order |
| Parameter | Type | Description |
|---|
order | object | The created order object with full API response fields |
↳ order_id | string | Order ID |
↳ user_id | string | User ID |
↳ client_order_id | string | Client order ID |
↳ ticker | string | Market ticker |
↳ side | string | Order side (yes/no) |
↳ action | string | Action (buy/sell) |
↳ type | string | Order type (limit/market) |
↳ status | string | Order status (resting/canceled/executed) |
↳ yes_price | number | Yes price in cents |
↳ no_price | number | No price in cents |
↳ yes_price_dollars | string | Yes price in dollars |
↳ no_price_dollars | string | No price in dollars |
↳ fill_count | number | Filled contract count |
↳ fill_count_fp | string | Filled count (fixed-point) |
↳ remaining_count | number | Remaining contracts |
↳ remaining_count_fp | string | Remaining count (fixed-point) |
↳ initial_count | number | Initial contract count |
↳ initial_count_fp | string | Initial count (fixed-point) |
↳ taker_fees | number | Taker fees in cents |
↳ maker_fees | number | Maker fees in cents |
↳ taker_fees_dollars | string | Taker fees in dollars |
↳ maker_fees_dollars | string | Maker fees in dollars |
↳ taker_fill_cost | number | Taker fill cost in cents |
↳ maker_fill_cost | number | Maker fill cost in cents |
↳ taker_fill_cost_dollars | string | Taker fill cost in dollars |
↳ maker_fill_cost_dollars | string | Maker fill cost in dollars |
↳ queue_position | number | Queue position (deprecated) |
↳ expiration_time | string | Order expiration time |
↳ created_time | string | Order creation time |
↳ last_update_time | string | Last update time |
↳ self_trade_prevention_type | string | Self-trade prevention type |
↳ order_group_id | string | Order group ID |
↳ cancel_order_on_pause | boolean | Cancel on market pause |
Cancel an existing order on Kalshi (V2 with full API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
orderId | string | Yes | Order ID to cancel (e.g., "abc123-def456-ghi789") |
| Parameter | Type | Description |
|---|
order | object | The canceled order object with full API response fields |
↳ order_id | string | Order ID |
↳ user_id | string | User ID |
↳ client_order_id | string | Client order ID |
↳ ticker | string | Market ticker |
↳ side | string | Order side (yes/no) |
↳ action | string | Action (buy/sell) |
↳ type | string | Order type (limit/market) |
↳ status | string | Order status (resting/canceled/executed) |
↳ yes_price | number | Yes price in cents |
↳ no_price | number | No price in cents |
↳ yes_price_dollars | string | Yes price in dollars |
↳ no_price_dollars | string | No price in dollars |
↳ fill_count | number | Filled contract count |
↳ fill_count_fp | string | Filled count (fixed-point) |
↳ remaining_count | number | Remaining contracts |
↳ remaining_count_fp | string | Remaining count (fixed-point) |
↳ initial_count | number | Initial contract count |
↳ initial_count_fp | string | Initial count (fixed-point) |
↳ taker_fees | number | Taker fees in cents |
↳ maker_fees | number | Maker fees in cents |
↳ taker_fees_dollars | string | Taker fees in dollars |
↳ maker_fees_dollars | string | Maker fees in dollars |
↳ taker_fill_cost | number | Taker fill cost in cents |
↳ maker_fill_cost | number | Maker fill cost in cents |
↳ taker_fill_cost_dollars | string | Taker fill cost in dollars |
↳ maker_fill_cost_dollars | string | Maker fill cost in dollars |
↳ queue_position | number | Queue position (deprecated) |
↳ expiration_time | string | Order expiration time |
↳ created_time | string | Order creation time |
↳ last_update_time | string | Last update time |
↳ self_trade_prevention_type | string | Self-trade prevention type |
↳ order_group_id | string | Order group ID |
↳ cancel_order_on_pause | boolean | Cancel on market pause |
reduced_by | number | Number of contracts canceled |
reduced_by_fp | string | Number of contracts canceled in fixed-point format |
Modify the price or quantity of an existing order on Kalshi (V2 with full API response)
| Parameter | Type | Required | Description |
|---|
keyId | string | Yes | Your Kalshi API Key ID |
privateKey | string | Yes | Your RSA Private Key (PEM format) |
orderId | string | Yes | Order ID to amend (e.g., "abc123-def456-ghi789") |
ticker | string | Yes | Market ticker identifier (e.g., "KXBTC-24DEC31", "INX-25JAN03-T4485.99") |
side | string | Yes | Side of the order: "yes" or "no" |
action | string | Yes | Action type: "buy" or "sell" |
clientOrderId | string | No | Original client-specified order ID |
updatedClientOrderId | string | No | New client-specified order ID after amendment |
count | string | No | Updated quantity for the order (e.g., "10", "100") |
yesPrice | string | No | Updated yes price in cents (1-99) |
noPrice | string | No | Updated no price in cents (1-99) |
yesPriceDollars | string | No | Updated yes price in dollars (e.g., "0.56") |
noPriceDollars | string | No | Updated no price in dollars (e.g., "0.56") |
countFp | string | No | Count in fixed-point for fractional contracts |
| Parameter | Type | Description |
|---|
old_order | object | The original order object before amendment |
↳ order_id | string | Order ID |
↳ user_id | string | User ID |
↳ ticker | string | Market ticker |
↳ event_ticker | string | Event ticker |
↳ status | string | Order status |
↳ side | string | Order side (yes/no) |
↳ type | string | Order type (limit/market) |
↳ yes_price | number | Yes price in cents |
↳ no_price | number | No price in cents |
↳ action | string | Action (buy/sell) |
↳ count | number | Number of contracts |
↳ remaining_count | number | Remaining contracts |
↳ created_time | string | Order creation time |
↳ expiration_time | string | Order expiration time |
↳ order_group_id | string | Order group ID |
↳ client_order_id | string | Client order ID |
↳ place_count | number | Place count |
↳ decrease_count | number | Decrease count |
↳ queue_position | number | Queue position |
↳ maker_fill_count | number | Maker fill count |
↳ taker_fill_count | number | Taker fill count |
↳ maker_fees | number | Maker fees |
↳ taker_fees | number | Taker fees |
↳ last_update_time | string | Last update time |
↳ take_profit_order_id | string | Take profit order ID |
↳ stop_loss_order_id | string | Stop loss order ID |
↳ amend_count | number | Amend count |
↳ amend_taker_fill_count | number | Amend taker fill count |
order | object | The amended order object with full API response fields |
↳ order_id | string | Order ID |
↳ user_id | string | User ID |
↳ ticker | string | Market ticker |
↳ event_ticker | string | Event ticker |
↳ status | string | Order status |
↳ side | string | Order side (yes/no) |
↳ type | string | Order type (limit/market) |
↳ yes_price | number | Yes price in cents |
↳ no_price | number | No price in cents |
↳ action | string | Action (buy/sell) |
↳ count | number | Number of contracts |
↳ remaining_count | number | Remaining contracts |
↳ created_time | string | Order creation time |
↳ expiration_time | string | Order expiration time |
↳ order_group_id | string | Order group ID |
↳ client_order_id | string | Client order ID |
↳ place_count | number | Place count |
↳ decrease_count | number | Decrease count |
↳ queue_position | number | Queue position |
↳ maker_fill_count | number | Maker fill count |
↳ taker_fill_count | number | Taker fill count |
↳ maker_fees | number | Maker fees |
↳ taker_fees | number | Taker fees |
↳ last_update_time | string | Last update time |
↳ take_profit_order_id | string | Take profit order ID |
↳ stop_loss_order_id | string | Stop loss order ID |
↳ amend_count | number | Amend count |
↳ amend_taker_fill_count | number | Amend taker fill count |