# API Documentation - [Introduction](https://docs.kalshi.com/welcome/index.md): Welcome to the Kalshi API documentation - [API Environments and Endpoints](https://docs.kalshi.com/getting_started/api_environments.md): REST and WebSocket base URLs for production and demo - [Quick Start: Market Data](https://docs.kalshi.com/getting_started/quick_start_market_data.md): Learn how to access real-time market data without authentication - [Quick Start: Authenticated Requests](https://docs.kalshi.com/getting_started/quick_start_authenticated_requests.md): Three simple steps to make your first authenticated API request to Kalshi - [Quick Start: Create your first order](https://docs.kalshi.com/getting_started/quick_start_create_order.md): Learn how to find markets, place orders, check status, and cancel orders on Kalshi - [Quick Start: WebSockets](https://docs.kalshi.com/getting_started/quick_start_websockets.md): Learn how to establish and maintain a WebSocket connection to stream real-time market data - [Kalshi SDKs](https://docs.kalshi.com/sdks/overview.md): Official Python and TypeScript SDKs for the Kalshi API - [Making Your First Request](https://docs.kalshi.com/getting_started/making_your_first_request.md): Start trading with Kalshi API in under 5 minutes - [Test In The Demo Environment](https://docs.kalshi.com/getting_started/demo_env.md): Set up and test with Kalshi's demo environment - [API Keys](https://docs.kalshi.com/getting_started/api_keys.md): API Key usage - [Rate Limits and Tiers](https://docs.kalshi.com/getting_started/rate_limits.md): Token costs, tier budgets, and burst capacity for the Kalshi API - [Understanding Pagination](https://docs.kalshi.com/getting_started/pagination.md): Learn how to navigate through large datasets using cursor-based pagination - [Orderbook Responses](https://docs.kalshi.com/getting_started/orderbook_responses.md): Understanding Kalshi orderbook structure and binary prediction market mechanics - [Order direction (outcome_side and book_side)](https://docs.kalshi.com/getting_started/order_direction.md): How direction is expressed on Order, Fill, and Trade responses, and how to migrate from the legacy action/side fields. - [Order Groups](https://docs.kalshi.com/getting_started/order_groups.md): Automatic order cancellation based on rolling contract limits - [Subaccounts](https://docs.kalshi.com/getting_started/subaccounts.md): Isolate balances and positions within a single Direct account - [Fixed-Point Representation](https://docs.kalshi.com/getting_started/fixed_point_migration.md): Fixed-point prices, price level structures, and fractional contract quantities. - [Fee Rounding](https://docs.kalshi.com/getting_started/fee_rounding.md): How trade fees and balances are rounded. - [Historical Data](https://docs.kalshi.com/getting_started/historical_data.md): Accessing historical exchange data via the Kalshi API. - [Targets & Milestones](https://docs.kalshi.com/getting_started/targets_and_milestones.md): Using milestones and structured targets in the Trade API - [Market Lifecycle](https://docs.kalshi.com/getting_started/market_lifecycle.md): How markets move from creation to settlement - [Maintenance and Pauses](https://docs.kalshi.com/getting_started/maintenance_and_pauses.md): Scheduled maintenance windows, trading pauses, and exchange pauses - [Market Settlement](https://docs.kalshi.com/getting_started/market_settlement.md): How market outcomes are determined and positions are resolved - [Request for Quote (RFQ)](https://docs.kalshi.com/getting_started/rfqs.md): How the Kalshi RFQ system works - [Exchange Sharding](https://docs.kalshi.com/getting_started/exchange_sharding.md): Exchange sharding in the Predictions API - [Kalshi Glossary](https://docs.kalshi.com/getting_started/terms.md): Core terminology used in the Kalshi exchange - [Get Exchange Status](https://docs.kalshi.com/api-reference/exchange/get-exchange-status.md): Endpoint for getting the exchange status. - [Get Series Fee Changes](https://docs.kalshi.com/api-reference/exchange/get-series-fee-changes.md) - [Get Exchange Schedule](https://docs.kalshi.com/api-reference/exchange/get-exchange-schedule.md): Endpoint for getting the exchange schedule. - [Get User Data Timestamp](https://docs.kalshi.com/api-reference/exchange/get-user-data-timestamp.md): There is typically a short delay before exchange events are reflected in the API endpoints. Whenever possible, combine API responses to PUT/POST/DELETE requests with WebSocket data to obtain the most accurate view of the exchange state. This endpoint provides an approximate indication of when the da… - [Get Market Candlesticks](https://docs.kalshi.com/api-reference/market/get-market-candlesticks.md): Time period length of each candlestick in minutes. Valid values: 1 (1 minute), 60 (1 hour), 1440 (1 day). Candlesticks for markets that settled before the historical cutoff are only available via `GET /historical/markets/{ticker}/candlesticks`. See [Historical Data](https://docs.kalshi.com/getting_s… - [Get Trades](https://docs.kalshi.com/api-reference/market/get-trades.md): Endpoint for getting all trades for all markets. A trade represents a completed transaction between two users on a specific market. Each trade includes the market ticker, price, quantity, and timestamp information. Block trades are included in the response by default and identified by the `is_block_… - [Get Market Orderbook](https://docs.kalshi.com/api-reference/market/get-market-orderbook.md): Endpoint for getting the current order book for a specific market. The order book shows all active bid orders for both yes and no sides of a binary market. It returns yes bids and no bids only (no asks are returned). This is because in binary markets, a bid for yes at price X is equivalent to an as… - [Get Multiple Market Orderbooks](https://docs.kalshi.com/api-reference/market/get-multiple-market-orderbooks.md): Endpoint for getting the current order books for multiple markets in a single request. The order book shows all active bid orders for both yes and no sides of a binary market. It returns yes bids and no bids only (no asks are returned). This is because in binary markets, a bid for yes at price X is… - [Get Series](https://docs.kalshi.com/api-reference/market/get-series.md): Endpoint for getting data about a specific series by its ticker. A series represents a template for recurring events that follow the same format and rules (e.g., "Monthly Jobs Report", "Weekly Initial Jobless Claims", "Daily Weather in NYC"). Series define the structure, settlement sources, and met… - [Get Series List](https://docs.kalshi.com/api-reference/market/get-series-list.md): Endpoint for getting data about multiple series with specified filters. A series represents a template for recurring events that follow the same format and rules (e.g., "Monthly Jobs Report", "Weekly Initial Jobless Claims", "Daily Weather in NYC"). This endpoint allows you to browse and discover a… - [Get Markets](https://docs.kalshi.com/api-reference/market/get-markets.md): Filter by market status. Possible values: `unopened`, `open`, `closed`, `settled`. Leave empty to return markets with any status. - Only one `status` filter may be supplied at a time. - Timestamp filters will be mutually exclusive from other timestamp filters and certain status filters. - [Get Market](https://docs.kalshi.com/api-reference/market/get-market.md): Endpoint for getting data about a specific market by its ticker. A market represents a specific binary outcome within an event that users can trade on (e.g., "Will candidate X win?"). Markets have yes/no positions, current prices, volume, and settlement rules. - [Batch Get Market Candlesticks](https://docs.kalshi.com/api-reference/market/batch-get-market-candlesticks.md): Endpoint for retrieving candlestick data for multiple markets. - [Get Event Candlesticks](https://docs.kalshi.com/api-reference/events/get-event-candlesticks.md): End-point for returning aggregated data across all markets corresponding to an event. - [Get Events](https://docs.kalshi.com/api-reference/events/get-events.md): Get all events. This endpoint excludes multivariate events. To retrieve multivariate events, use the GET /events/multivariate endpoint. All events are accessible through this endpoint, even if their associated markets are older than the historical cutoff. - [Get Multivariate Events](https://docs.kalshi.com/api-reference/events/get-multivariate-events.md): Retrieve multivariate (combo) events. These are dynamically created events from multivariate event collections. Supports filtering by series and collection ticker. - [Get Event Fee Changes](https://docs.kalshi.com/api-reference/events/get-event-fee-changes.md): Event fees are an override layered on top of the parent series' fee structure. If `fee_type_override` and `fee_multiplier_override` are null, that indicates the override is cleared. - [Get Event](https://docs.kalshi.com/api-reference/events/get-event.md): Endpoint for getting data about an event by its ticker. An event represents a real-world occurrence that can be traded on, such as an election, sports game, or economic indicator release. Events contain one or more markets where users can place trades on different outcomes. All events are accessible… - [Get Event Metadata](https://docs.kalshi.com/api-reference/events/get-event-metadata.md): Endpoint for getting metadata about an event by its ticker. Returns only the metadata information for an event. - [Get Event Forecast Percentile History](https://docs.kalshi.com/api-reference/events/get-event-forecast-percentile-history.md): Endpoint for getting the historical raw and formatted forecast numbers for an event at specific percentiles. - [Get Orders](https://docs.kalshi.com/api-reference/orders/get-orders.md): Restricts the response to orders that have a certain status: resting, canceled, or executed. Orders that have been canceled or fully executed before the historical cutoff are only available via `GET /historical/orders`. Resting orders will always be available through this endpoint. See [Historical D… - [Get Order](https://docs.kalshi.com/api-reference/orders/get-order.md): Endpoint for getting a single order. - [Get Queue Positions for Orders](https://docs.kalshi.com/api-reference/orders/get-queue-positions-for-orders.md): Endpoint for getting queue positions for all resting orders. Queue position represents the number of contracts that need to be matched before an order receives a partial or full match, determined using price-time priority. - [Get Order Queue Position](https://docs.kalshi.com/api-reference/orders/get-order-queue-position.md): Endpoint for getting an order's queue position in the order book. This represents the amount of orders that need to be matched before this order receives a partial or full match. Queue position is determined using a price-time priority. - [Create Order (V2)](https://docs.kalshi.com/api-reference/orders/create-order-v2.md): Endpoint for submitting event-market orders using the V2 request/response shape (single-book `bid`/`ask` side and fixed-point dollar prices). The legacy `/portfolio/orders` endpoint will be deprecated no earlier than May 6, 2026 — clients should migrate to this path. - [Cancel All Orders](https://docs.kalshi.com/api-reference/orders/cancel-all-orders.md): Cancels all resting event-market orders for the authenticated Direct member across every exchange shard. If `subaccount` is omitted, matching orders may come from any subaccount. If it is provided, only orders for that subaccount are eligible. Newly placed orders may also be cancelled during the min… - [Batch Create Orders (V2)](https://docs.kalshi.com/api-reference/orders/batch-create-orders-v2.md): Endpoint for submitting a batch of event-market orders using the V2 request/response shape. The maximum batch size scales with your tier's write budget — see [Rate Limits and Tiers](/getting_started/rate_limits). - [Batch Cancel Orders (V2)](https://docs.kalshi.com/api-reference/orders/batch-cancel-orders-v2.md): Endpoint for cancelling a batch of event-market orders using the V2 response shape. To auto-route a cancellation, provide its `market_ticker` and omit `exchange_index` or set it to `-1`. The maximum batch size scales with your tier's write budget — see [Rate Limits and Tiers](/getting_started/rate_l… - [Cancel Order (V2)](https://docs.kalshi.com/api-reference/orders/cancel-order-v2.md): Endpoint for cancelling event-market orders using the V2 response shape. To auto-route the cancellation, provide `market_ticker` and omit `exchange_index` or set it to `-1`. Returns `{order_id, client_order_id, reduced_by}` rather than a full order object. - [Amend Order (V2)](https://docs.kalshi.com/api-reference/orders/amend-order-v2.md): Endpoint for amending the price and/or max fillable count of an existing event-market order using the V2 request/response shape. The request `count` is the updated total/max fillable count, equal to already filled count plus desired resting remaining count. This behavior matches the v1 amend endpoin… - [Decrease Order (V2)](https://docs.kalshi.com/api-reference/orders/decrease-order-v2.md): Endpoint for decreasing the remaining count of an existing event-market order using the V2 request/response shape. Exactly one of `reduce_by` or `reduce_to` must be provided. - [Get Order Groups](https://docs.kalshi.com/api-reference/order-groups/get-order-groups.md): Retrieves all order groups for the authenticated user. - [Create Order Group](https://docs.kalshi.com/api-reference/order-groups/create-order-group.md): Creates a new order group with a contracts limit measured over a rolling 15-second window. Users can have up to 100,000 order groups at a time. When the limit is hit, all orders in the group are cancelled and no new orders can be placed until reset. - [Get Order Group](https://docs.kalshi.com/api-reference/order-groups/get-order-group.md): Retrieves details for a single order group including all order IDs and auto-cancel status. - [Delete Order Group](https://docs.kalshi.com/api-reference/order-groups/delete-order-group.md): Deletes an order group and cancels all orders within it. This permanently removes the group. - [Reset Order Group](https://docs.kalshi.com/api-reference/order-groups/reset-order-group.md): Resets the order group's matched contracts counter to zero, allowing new orders to be placed again after the limit was hit. - [Trigger Order Group](https://docs.kalshi.com/api-reference/order-groups/trigger-order-group.md): Triggers the order group, canceling all orders in the group and preventing new orders until the group is reset. - [Update Order Group Limit](https://docs.kalshi.com/api-reference/order-groups/update-order-group-limit.md): Updates the order group contracts limit (rolling 15-second window). If the updated limit would immediately trigger the group, all orders in the group are canceled and the group is triggered. - [Get Balance](https://docs.kalshi.com/api-reference/portfolio/get-balance.md): Returns the balance and portfolio value for a member. Both values include all exchange indexes unless `exchange_index` is provided. Pass `subaccount` to use a subaccount instead of the primary account. This endpoint also accepts API keys with the 'read::portfolio_balance' scope. - [Intra Account Transfer](https://docs.kalshi.com/api-reference/portfolio/intra-account-transfer.md): Transfers funds within the same account. - [Get Intra Account Transfers](https://docs.kalshi.com/api-reference/portfolio/get-intra-account-transfers.md): Endpoint for fetching intra-exchange account transfer history. - [Get Intra Account Transfer](https://docs.kalshi.com/api-reference/portfolio/get-intra-account-transfer.md): Endpoint for getting a single intra-account transfer by id. - [Create Subaccount](https://docs.kalshi.com/api-reference/portfolio/create-subaccount.md): Creates a new subaccount for the authenticated user. This endpoint is available to all users on the Advanced API tier and above. Subaccounts are numbered sequentially starting from 1. Maximum 63 numbered subaccounts per user (64 including the primary account). - [Transfer Between Subaccounts](https://docs.kalshi.com/api-reference/portfolio/transfer-between-subaccounts.md): Transfers funds between the authenticated user's subaccounts. Use 0 for the primary account, or 1-63 for numbered subaccounts. Set exchange_index to apply the transfer on a specific exchange shard (defaults to 0). - [Get All Subaccount Balances](https://docs.kalshi.com/api-reference/portfolio/get-all-subaccount-balances.md): Gets balances for all subaccounts including the primary account. - [Get Subaccount Transfers](https://docs.kalshi.com/api-reference/portfolio/get-subaccount-transfers.md): Gets a paginated list of all transfers between subaccounts for the authenticated user. - [Get Subaccount Netting](https://docs.kalshi.com/api-reference/portfolio/get-subaccount-netting.md): Gets the netting enabled settings for all subaccounts. - [Update Subaccount Netting](https://docs.kalshi.com/api-reference/portfolio/update-subaccount-netting.md): Updates the netting enabled setting for a specific subaccount. Use 0 for the primary account, or 1-63 for numbered subaccounts. - [Get Positions](https://docs.kalshi.com/api-reference/portfolio/get-positions.md): Restricts the positions to those with any of following fields with non-zero values, as a comma separated list. The following values are accepted: position, total_traded - [Get Settlements](https://docs.kalshi.com/api-reference/portfolio/get-settlements.md): Endpoint for getting the member's settlements historical track. - [Get Deposits](https://docs.kalshi.com/api-reference/portfolio/get-deposits.md): Endpoint for getting the member's deposit history. - [Get Withdrawals](https://docs.kalshi.com/api-reference/portfolio/get-withdrawals.md): Endpoint for getting the member's withdrawal history. - [Get Total Resting Order Value](https://docs.kalshi.com/api-reference/portfolio/get-total-resting-order-value.md): Endpoint for getting the total value, in cents, of resting orders. This endpoint is only intended for use by FCM members (rare). Note: If you're uncertain about this endpoint, it likely does not apply to you. - [Get Fills](https://docs.kalshi.com/api-reference/portfolio/get-fills.md): Endpoint for getting all fills for the member. A fill is when a trade you have is matched. Fills that occurred before the historical cutoff are only available via `GET /historical/fills`. See [Historical Data](https://docs.kalshi.com/getting_started/historical_data) for details. - [Get Target Balance Allocation](https://docs.kalshi.com/api-reference/portfolio/get-target-balance-allocation.md): Retrieves the caller's target balance allocation across exchange indexes. - [Set Target Balance Allocation](https://docs.kalshi.com/api-reference/portfolio/set-target-balance-allocation.md): Replaces the caller's target balance allocation across exchange indexes. Percentages must total 100. Passing an empty allocations array disables automatic rebalancing. - [Get Communications ID](https://docs.kalshi.com/api-reference/communications/get-communications-id.md): Endpoint for getting the communications ID of the logged-in user. - [Get Block Trade Proposals](https://docs.kalshi.com/api-reference/communications/get-block-trade-proposals.md): Endpoint for getting block trade proposals visible to the authenticated user. - [Propose Block Trade](https://docs.kalshi.com/api-reference/communications/propose-block-trade.md): Endpoint for creating a block trade proposal. - [Accept Block Trade Proposal](https://docs.kalshi.com/api-reference/communications/accept-block-trade-proposal.md): Endpoint for accepting a block trade proposal. - [Get RFQs](https://docs.kalshi.com/api-reference/communications/get-rfqs.md): List RFQs. Pass pagination cursors back unchanged. A malformed cursor or invalid creator_user_id UUID returns HTTP 400. Use user_filter=self to filter by the authenticated user. - [Create RFQ](https://docs.kalshi.com/api-reference/communications/create-rfq.md): Endpoint for creating a new RFQ. You can have a maximum of 100 open RFQs at a time. - [Get RFQ](https://docs.kalshi.com/api-reference/communications/get-rfq.md): Endpoint for getting a single RFQ by id - [Delete RFQ](https://docs.kalshi.com/api-reference/communications/delete-rfq.md): Endpoint for deleting an RFQ by ID - [Get RFQ Quote](https://docs.kalshi.com/api-reference/communications/get-rfq-quote.md): Endpoint for getting a particular quote scoped to its RFQ. - [Delete RFQ Quote](https://docs.kalshi.com/api-reference/communications/delete-rfq-quote.md): Endpoint for deleting a quote scoped to its RFQ, which means it can no longer be accepted. - [Accept RFQ Quote](https://docs.kalshi.com/api-reference/communications/accept-rfq-quote.md): Endpoint for accepting a quote scoped to its RFQ. This will require the quoter to confirm. - [Confirm RFQ Quote](https://docs.kalshi.com/api-reference/communications/confirm-rfq-quote.md): Endpoint for confirming a quote scoped to its RFQ. This will start a timer for order execution. - [Get Quotes](https://docs.kalshi.com/api-reference/communications/get-quotes.md): List quotes. The rfq_id filter requires an RFQ UUID. Pass pagination cursors back unchanged; malformed RFQ IDs or cursors return HTTP 400. - [Create Quote](https://docs.kalshi.com/api-reference/communications/create-quote.md): Endpoint for creating a quote in response to an RFQ - [Get Quote](https://docs.kalshi.com/api-reference/communications/get-quote.md): DEPRECATED: Use GET /communications/rfqs/{rfq_id}/quotes/{quote_id} instead. Endpoint for getting a particular quote. - [Delete Quote](https://docs.kalshi.com/api-reference/communications/delete-quote.md): DEPRECATED: Use DELETE /communications/rfqs/{rfq_id}/quotes/{quote_id} instead. Endpoint for deleting a quote, which means it can no longer be accepted. - [Accept Quote](https://docs.kalshi.com/api-reference/communications/accept-quote.md): DEPRECATED: Use PUT /communications/rfqs/{rfq_id}/quotes/{quote_id}/accept instead. Endpoint for accepting a quote. This will require the quoter to confirm. - [Confirm Quote](https://docs.kalshi.com/api-reference/communications/confirm-quote.md): DEPRECATED: Use PUT /communications/rfqs/{rfq_id}/quotes/{quote_id}/confirm instead. Endpoint for confirming a quote. This will start a timer for order execution. - [Get API Keys](https://docs.kalshi.com/api-reference/api-keys/get-api-keys.md): Endpoint for retrieving all API keys associated with the authenticated user. API keys allow programmatic access to the platform without requiring username/password authentication. Each key has a unique identifier and name. - [Create API Key](https://docs.kalshi.com/api-reference/api-keys/create-api-key.md): Endpoint for creating a new API key with a user-provided public key. This endpoint allows users with Premier or Market Maker API usage levels to create API keys by providing their own RSA public key. The platform will use this public key to verify signatures on API requests. - [Generate API Key](https://docs.kalshi.com/api-reference/api-keys/generate-api-key.md): Endpoint for generating a new API key with an automatically created key pair. This endpoint generates both a public and private RSA key pair. The public key is stored on the platform, while the private key is returned to the user and must be stored securely. The private key cannot be retrieved agai… - [Delete API Key](https://docs.kalshi.com/api-reference/api-keys/delete-api-key.md): Endpoint for deleting an existing API key. This endpoint permanently deletes an API key. Once deleted, the key can no longer be used for authentication. This action cannot be undone. - [Get Account API Limits](https://docs.kalshi.com/api-reference/account/get-account-api-limits.md): Endpoint to retrieve the authenticated user's Predictions API usage tier and token-bucket limits. Public Predictions tiers include Basic, Advanced, Expert, Premier, Paragon, Prime, and Prestige. - [Upgrade Account API Usage Level](https://docs.kalshi.com/api-reference/account/upgrade-account-api-usage-level.md): Grants a permanent Advanced API usage-level grant. Currently only the Predictions exchange instance is supported. Criteria: at least 1 of the user's last 100 Predictions orders was created via API. Use Get Account API Limits to inspect the resulting usage tier and grants. - [Get Account API Usage Level Volume Progress](https://docs.kalshi.com/api-reference/account/get-account-api-usage-level-volume-progress.md): Returns the authenticated user's latest cron-computed trading volume progress toward volume-based API usage tiers for the predictions (event_contract) lane. Volume figures are reported as fixed-point contract counts. - [List Non-Default Endpoint Costs](https://docs.kalshi.com/api-reference/account/list-non-default-endpoint-costs.md): Lists API v2 endpoints whose configured token cost differs from the default cost. Endpoints that use the default cost are omitted. - [Get Tags for Series Categories](https://docs.kalshi.com/api-reference/search/get-tags-for-series-categories.md): Retrieve tags organized by series categories. - [Get Filters for Sports](https://docs.kalshi.com/api-reference/search/get-filters-for-sports.md): Retrieve available filters organized by sport. - [Get Live Data](https://docs.kalshi.com/api-reference/live-data/get-live-data.md): Get live data for a specific milestone. - [Get Live Data (with type)](https://docs.kalshi.com/api-reference/live-data/get-live-data-with-type.md): Get live data for a specific milestone. This is the legacy endpoint that requires a type path parameter. Prefer using `/live_data/milestone/{milestone_id}` instead. - [Get Multiple Live Data](https://docs.kalshi.com/api-reference/live-data/get-multiple-live-data.md): Get live data for multiple milestones - [Get Game Stats](https://docs.kalshi.com/api-reference/live-data/get-game-stats.md): Get play-by-play game statistics for a specific milestone. Supported sports: Pro Football, College Football, Pro Basketball, College Men's Basketball, College Women's Basketball, WNBA, Soccer, Pro Hockey, and Pro Baseball. Returns null for unsupported milestone types or milestones without a Sportrad… - [Get Event Live Data](https://docs.kalshi.com/api-reference/live-data/get-event-live-data.md): Get live data for an event by its event ticker. Serves event-keyed live data such as crypto price charts, commodity price timeseries, and weather observations. The `type` field in the response names the schema of the `details` object. - [Get Weather Index](https://docs.kalshi.com/api-reference/live-data/get-weather-index.md): Get the Kalshi-computed city temperature index: the canonical minute-resolution series behind hourly temperature markets. City-keyed and independent of any event — the series exists whenever the city's index is configured. Values are Fahrenheit rounded to 0.01. Minutes where the index quorum failed… - [Get Weather Index Calibrations](https://docs.kalshi.com/api-reference/live-data/get-weather-index-calibrations.md): Get a city's published weather-index configuration timeline: the launch configuration plus every weekly offset calibration and methodology update, ascending by effective time. Each record carries the station weights, station offsets (Celsius), and the city reference used to compute index values from… - [Get Structured Targets](https://docs.kalshi.com/api-reference/structured-targets/get-structured-targets.md): Page size (min: 1, max: 2000) - [Get Structured Target](https://docs.kalshi.com/api-reference/structured-targets/get-structured-target.md): Endpoint for getting data about a specific structured target by its ID. - [Get Milestone](https://docs.kalshi.com/api-reference/milestone/get-milestone.md): Endpoint for getting data about a specific milestone by its ID. - [Get Milestones](https://docs.kalshi.com/api-reference/milestone/get-milestones.md): Minimum start date to filter milestones. Format: RFC3339 timestamp - [Get Multivariate Event Collection](https://docs.kalshi.com/api-reference/multivariate/get-multivariate-event-collection.md): Endpoint for getting data about a multivariate event collection by its ticker. - [Create Market In Multivariate Event Collection](https://docs.kalshi.com/api-reference/multivariate/create-market-in-multivariate-event-collection.md): Endpoint for creating an individual market in a multivariate event collection. This endpoint must be hit at least once before trading or looking up a market. Users are limited to 5000 creations per week. - [Get Multivariate Event Collections](https://docs.kalshi.com/api-reference/multivariate/get-multivariate-event-collections.md): Endpoint for getting data about multivariate event collections. - [Get Incentives](https://docs.kalshi.com/api-reference/incentive-programs/get-incentives.md): List incentives with optional filters. Incentives are rewards programs for trading activity on specific markets. - [Get FCM Orders](https://docs.kalshi.com/api-reference/fcm/get-fcm-orders.md): Endpoint for FCM members to get orders for their subtraders. This endpoint requires FCM member access level. At least one of `subtrader_id` or `client_order_ids` is required; supplying both returns only the orders matching both filters. API keys bound to a single FCM subtrader may also call this end… - [List FCM Subtraders](https://docs.kalshi.com/api-reference/fcm/list-fcm-subtraders.md): Lists the authenticated FCM's event-contract subtraders, including accounts with no trades. Exchange metadata is asynchronous, so newly created accounts may not appear immediately. Trading block status includes firm-wide and Kalshi restrictions; fcm_trading_blocked identifies the FCM's own per-subtr… - [Create FCM Subtrader](https://docs.kalshi.com/api-reference/fcm/create-fcm-subtrader.md): Endpoint for FCM members to create a subtrader on the event-contract exchange. The subtrader is registered on every exchange shard that knows the FCM; a shard provisioned later registers it lazily on the subtrader's first order there. Re-creating an existing subtrader returns 409. - [Get FCM Subtrader Event Contract Daily Cap](https://docs.kalshi.com/api-reference/fcm/get-fcm-subtrader-event-contract-daily-cap.md): Returns the event-contract daily premium cap configured for an FCM member's subtrader, together with its live utilization. Executed utilization is the net premium deployed by fills today (sells and settlements credit back); resting and pending utilization reserve open and in-flight orders at their f… - [Update FCM Subtrader Event Contract Daily Cap](https://docs.kalshi.com/api-reference/fcm/update-fcm-subtrader-event-contract-daily-cap.md): Sets the event-contract daily premium cap for an FCM member's subtrader. The cap bounds the subtrader's net premium at risk per trading day. It is enforced on cap-reservation sessions — which every subtrader-bound API key uses — and is mandatory there: a subtrader with no cap cannot trade through it… - [Delete FCM Subtrader Event Contract Daily Cap](https://docs.kalshi.com/api-reference/fcm/delete-fcm-subtrader-event-contract-daily-cap.md): Removes the event-contract daily premium cap for an FCM member's subtrader. Removal closes the subtrader to new orders on cap-reservation sessions — every subtrader-bound API key — until a cap is set again. It does not stop orders your own unbound sessions submit on the subtrader's behalf; to stop t… - [Get FCM Positions](https://docs.kalshi.com/api-reference/fcm/get-fcm-positions.md): Endpoint for FCM members to get market positions filtered by subtrader ID. This endpoint requires FCM member access level and allows filtering positions by subtrader ID. API keys bound to a single FCM subtrader may also call this endpoint: `subtrader_id` may be omitted and defaults to the key's boun… - [Get Historical Cutoff Timestamps](https://docs.kalshi.com/api-reference/historical/get-historical-cutoff-timestamps.md): Returns the cutoff timestamps that define the boundary between **live** and **historical** data. - [Get Historical Market Candlesticks](https://docs.kalshi.com/api-reference/historical/get-historical-market-candlesticks.md): Endpoint for fetching historical candlestick data for markets that have been archived from the live data set. Time period length of each candlestick in minutes. Valid values: 1 (1 minute), 60 (1 hour), 1440 (1 day). - [Get Historical Fills](https://docs.kalshi.com/api-reference/historical/get-historical-fills.md): Endpoint for getting all historical fills for the member. A fill is when a trade you have is matched. - [Get Historical Orders](https://docs.kalshi.com/api-reference/historical/get-historical-orders.md): Endpoint for getting orders that have been archived to the historical database. - [Get Historical Positions](https://docs.kalshi.com/api-reference/historical/get-historical-positions.md): Endpoint for getting settled market positions that have been archived to the historical database. Positions whose markets were archived before `market_positions_last_updated_ts` on `GET /historical/cutoff` are available via this endpoint. Positions are archived per whole event: a settled event's pos… - [Get Historical Trades](https://docs.kalshi.com/api-reference/historical/get-historical-trades.md): Endpoint for getting all historical trades for all markets. Trades that were filled before the historical cutoff are available via this endpoint. Block trades are included by default and identified by the `is_block_trade` field; use the `is_block_trade` query parameter to filter by block / non-block… - [Get Historical Markets](https://docs.kalshi.com/api-reference/historical/get-historical-markets.md): Endpoint for getting markets that have been archived to the historical database. Filters are mutually exclusive. - [Get Historical Market](https://docs.kalshi.com/api-reference/historical/get-historical-market.md): Endpoint for getting data about a specific market by its ticker from the historical database. - [CF Benchmarks REST Passthrough](https://docs.kalshi.com/cfbenchmarks/rest-passthrough.md): Query CF Benchmarks REST data using your existing Kalshi API credentials - [WebSocket API](https://docs.kalshi.com/websockets.md): Trade API WebSocket endpoint and schema reference - [WebSocket Connection](https://docs.kalshi.com/websockets/websocket-connection.md): Main WebSocket connection endpoint. All communication happens through this single connection. Authentication is required to establish the connection; include API key headers during the WebSocket handshake. Some channels carry only public market data, but the connection itself still requires authenti… - [Connection Keep-Alive](https://docs.kalshi.com/websockets/connection-keep-alive.md): WebSocket control frames for connection management. - [Orderbook Updates](https://docs.kalshi.com/websockets/orderbook-updates.md): Real-time orderbook price level changes. Provides incremental updates to maintain a live orderbook. - [Market Ticker](https://docs.kalshi.com/websockets/market-ticker.md): Market price, volume, and open interest updates. - [CF Benchmarks Value Feed](https://docs.kalshi.com/websockets/cfbenchmarks-value.md): Real-time CF Benchmarks index value updates, each carrying the raw upstream frame plus trailing 60-second and quarter-hour final-minute averages. Requires authentication. - [CF Benchmarks 5Hz Value Feed](https://docs.kalshi.com/websockets/cfbenchmarks-value-5hz.md): Real-time CF Benchmarks index value updates at up to 5 updates per second, each carrying the raw upstream frame plus parsed value fields. Requires authentication. - [Pyth Value Feed](https://docs.kalshi.com/websockets/pyth-value.md): Real-time Pyth price updates for configured underlying tickers - [Public Trades](https://docs.kalshi.com/websockets/public-trades.md): Public trade notifications when trades occur. - [User Fills](https://docs.kalshi.com/websockets/user-fills.md): Your order fill notifications. Requires authentication. - [Market Positions](https://docs.kalshi.com/websockets/market-positions.md): Real-time updates of your positions in markets. Requires authentication. - [Market & Event Lifecycle](https://docs.kalshi.com/websockets/market-and-event-lifecycle.md): Market state changes and event creation notifications. - [Multivariate Market & Event Lifecycle](https://docs.kalshi.com/websockets/multivariate-market-and-event-lifecycle.md): Multivariate event (MVE) market state changes and event creation notifications. - [Communications](https://docs.kalshi.com/websockets/communications.md): Real-time Request for Quote (RFQ) and quote notifications. Requires authentication. - [Order Group Updates](https://docs.kalshi.com/websockets/order-group-updates.md): Real-time order group lifecycle and limit updates. Requires authentication. - [User Orders](https://docs.kalshi.com/websockets/user-orders.md): Real-time order created and updated notifications. Requires authentication. - [Common Components](https://docs.kalshi.com/fix/common-components.md): Standard header, trailer, and shared components across all FIX messages - [Connectivity](https://docs.kalshi.com/fix/connectivity.md): Endpoints, transport configuration, and rate limits for the Kalshi FIX API - [Authentication & Sessions](https://docs.kalshi.com/fix/authentication.md): API key creation, logon, session lifecycle, and message retransmission - [Order Entry](https://docs.kalshi.com/fix/order-entry.md): Submit, modify, and cancel orders through FIX messages - [Order Groups](https://docs.kalshi.com/fix/order-groups.md): Manage order groups for automatic position management - [Market Data](https://docs.kalshi.com/fix/market-data.md): Request order book snapshots and incremental updates through FIX - [RFQ](https://docs.kalshi.com/fix/rfq-messages.md): Request for Quote functionality for RFQ creators and market makers - [Drop Copy Session](https://docs.kalshi.com/fix/drop-copy.md): Recover missed execution reports and query historical order events - [Listener Sessions](https://docs.kalshi.com/fix/listener-sessions.md): Real-time read-only feed of execution reports from your trading session - [Market Settlement](https://docs.kalshi.com/fix/market-settlement.md): Settlement reports for market outcomes and position resolution - [Error Handling](https://docs.kalshi.com/fix/error-handling.md): Understanding and handling errors in the FIX protocol - [Subpenny Pricing](https://docs.kalshi.com/fix/subpenny-pricing.md): Dollar-based pricing format for subpenny precision - [Perps API](https://docs.kalshi.com/margin.md): Getting started with Kalshi's perpetual-futures (perps) trading API - [Price Banding](https://docs.kalshi.com/margin/price-banding.md): How price banding works for Kalshi margin markets - [Create Margin FCM Subtrader](https://docs.kalshi.com/margin-rest/fcm/create-margin-fcm-subtrader.md): Endpoint for FCM members to create a margin subtrader. - [Get FCM Subtrader Risk Controls](https://docs.kalshi.com/margin-rest/fcm/get-fcm-subtrader-risk-controls.md): Returns the initial margin caps configured for an FCM member's subtrader on the margined exchange. A cap with neither market_ticker nor asset_class applies across all markets; the remaining caps are scoped to a single market or a single asset class each. Every cap in scope for an order is enforced i… - [Update FCM Subtrader Risk Controls](https://docs.kalshi.com/margin-rest/fcm/update-fcm-subtrader-risk-controls.md): Sets the initial margin cap for an FCM member's subtrader on the margined exchange. - [Delete FCM Subtrader Risk Controls](https://docs.kalshi.com/margin-rest/fcm/delete-fcm-subtrader-risk-controls.md): Removes the initial margin cap for an FCM member's subtrader on the margined exchange. - [Get Perps Account API Limits](https://docs.kalshi.com/margin-rest/account/get-perps-account-api-limits.md): Endpoint to retrieve the Perps (margin) API tier limits associated with the authenticated user. - [Get Exchange Status](https://docs.kalshi.com/margin-rest/exchange/get-exchange-status.md): Endpoint for getting the margin exchange status. - [Get Enabled Status](https://docs.kalshi.com/margin-rest/exchange/get-enabled-status.md): Endpoint for checking if margin trading is enabled for the authenticated user. - [Get Risk Parameters](https://docs.kalshi.com/margin-rest/risk/get-risk-parameters.md): Returns system-wide margin risk parameters including liquidation thresholds and per-market initial margin multipliers. - [Get Notional Risk Limit](https://docs.kalshi.com/margin-rest/risk/get-notional-risk-limit.md): Endpoint for retrieving the notional value risk limit for the authenticated margin user. - [Get Risk](https://docs.kalshi.com/margin-rest/risk/get-risk.md): Endpoint for retrieving leverage and liquidation price data for the authenticated direct margin user. Returns account-level leverage plus per-position leverage and liquidation prices, grouped by subaccount and market. - [Get Orders](https://docs.kalshi.com/margin-rest/orders/get-orders.md): Endpoint for listing margin orders with optional filtering. - [Create Order](https://docs.kalshi.com/margin-rest/orders/create-order.md): Endpoint for submitting orders in a market. - [Cancel All Orders](https://docs.kalshi.com/margin-rest/orders/cancel-all-orders.md): Cancels all resting margin orders for the authenticated Direct member. If `subaccount` is omitted, matching orders may come from any subaccount. If it is provided, only orders for that subaccount are eligible. Newly placed orders may also be cancelled during the minute after the request. - [Get Order](https://docs.kalshi.com/margin-rest/orders/get-order.md): Endpoint for retrieving a specific margin order. - [Cancel Order](https://docs.kalshi.com/margin-rest/orders/cancel-order.md): Endpoint for canceling an order. Cancels all remaining resting contracts and returns the canceled order details. - [Decrease Order](https://docs.kalshi.com/margin-rest/orders/decrease-order.md): Endpoint for decreasing the number of contracts in an existing order. Exactly one of `reduce_by` or `reduce_to` must be provided. Canceling an order is equivalent to decreasing to zero. - [Amend Order](https://docs.kalshi.com/margin-rest/orders/amend-order.md): Endpoint for amending the price and/or max number of fillable contracts in an existing margin order. - [Get Markets](https://docs.kalshi.com/margin-rest/market/get-markets.md): Endpoint for listing available margin markets. - [Get Market](https://docs.kalshi.com/margin-rest/market/get-market.md): Endpoint for fetching a margin market with trading stats (price, volume, open interest). - [Get Market Orderbook](https://docs.kalshi.com/margin-rest/market/get-market-orderbook.md): Endpoint for getting the orderbook for a margin market. - [Get Market Candlesticks](https://docs.kalshi.com/margin-rest/market/get-market-candlesticks.md): Endpoint for fetching candlestick data for a margin market. - [Get Trades](https://docs.kalshi.com/margin-rest/market/get-trades.md): Endpoint for retrieving public margin trades for a given market ticker. Returns a paginated response. Use the cursor value from the previous response to get the next page. - [Get Fills](https://docs.kalshi.com/margin-rest/portfolio/get-fills.md): Endpoint for retrieving the authenticated user's margin fills. - [Get Positions](https://docs.kalshi.com/margin-rest/portfolio/get-positions.md): Endpoint for retrieving the authenticated user's margin positions. - [Get Balance](https://docs.kalshi.com/margin-rest/portfolio/get-balance.md): Endpoint for retrieving the balance breakdown for the authenticated direct margin user. Returns cash balance (aggregate and per-subaccount), position value, total balance, and maintenance margin requirement. - [Intra Account Transfer](https://docs.kalshi.com/margin-rest/portfolio/intra-account-transfer.md): Endpoint for transferring funds within the same account. - [Create Subaccount](https://docs.kalshi.com/margin-rest/portfolio/create-subaccount.md): Creates a new subaccount for the authenticated user in the margin exchange. Subaccounts are numbered sequentially starting from 1. Maximum 63 numbered subaccounts per user (64 including the primary account). - [Transfer Between Subaccounts](https://docs.kalshi.com/margin-rest/portfolio/transfer-between-subaccounts.md): Transfers funds between the authenticated user's margin subaccounts. Use 0 for the primary account, or 1-63 for numbered subaccounts. - [Get Fee Tiers](https://docs.kalshi.com/margin-rest/fees/get-fee-tiers.md): Endpoint for retrieving the effective margin fee rates for the authenticated direct margin user. Returns maps of margin market tickers to maker and taker fee rates as decimal fractions; no tier numbers are returned. Use Get Fee Tier Rates for the fee schedule itself. - [Get Fee Tier Rates](https://docs.kalshi.com/margin-rest/fees/get-fee-tier-rates.md): Returns the fee schedule that applies to the authenticated margin-enabled account, as tier numbers with maker and taker fee rates ordered from the entry tier upward. - [Get Funding History](https://docs.kalshi.com/margin-rest/funding/get-funding-history.md): Endpoint for retrieving the authenticated user's historical margin funding payments joined with funding rates for a specific market, or across all markets when ticker is empty, over an inclusive UTC date range. - [Get Historical Funding Rates](https://docs.kalshi.com/margin-rest/funding/get-historical-funding-rates.md): Endpoint for retrieving historical margin funding rates for a market, or across all markets when ticker is empty. - [Get Funding Rate Estimate](https://docs.kalshi.com/margin-rest/funding/get-funding-rate-estimate.md): Returns the estimated funding rate for the current, in-progress funding period. The value is a time-weighted average of the premium index computed over `[last_funding_time, now)`, so it continues to move as new data accumulates through the window and is only finalized at `next_funding_time`. - [Get Order Groups](https://docs.kalshi.com/margin-rest/order-groups/get-order-groups.md): Retrieves all order groups for the authenticated user on the margin exchange. - [Create Order Group](https://docs.kalshi.com/margin-rest/order-groups/create-order-group.md): Creates a new order group on the margin exchange with a contracts limit measured over a rolling window. When the limit is hit, all orders in the group are cancelled and no new orders can be placed until reset. - [Get Order Group](https://docs.kalshi.com/margin-rest/order-groups/get-order-group.md): Retrieves details for a single order group on the margin exchange including all order IDs and auto-cancel status. - [Delete Order Group](https://docs.kalshi.com/margin-rest/order-groups/delete-order-group.md): Deletes an order group on the margin exchange and cancels all orders within it. - [Reset Order Group](https://docs.kalshi.com/margin-rest/order-groups/reset-order-group.md): Resets the order group matched contracts counter to zero on the margin exchange, allowing new orders to be placed again after the limit was hit. - [Trigger Order Group](https://docs.kalshi.com/margin-rest/order-groups/trigger-order-group.md): Triggers the order group on the margin exchange, canceling all orders in the group and preventing new orders until the group is reset. - [Update Order Group Limit](https://docs.kalshi.com/margin-rest/order-groups/update-order-group-limit.md): Updates the order group contracts limit on the margin exchange. If the updated limit would immediately trigger the group, all orders in the group are canceled and the group is triggered. - [Get Isolated Exit Triggers](https://docs.kalshi.com/margin-rest/exit-triggers/get-isolated-exit-triggers.md): Endpoint for retrieving the live exit triggers on the isolated margin position for a market. - [Set Isolated Exit Trigger](https://docs.kalshi.com/margin-rest/exit-triggers/set-isolated-exit-trigger.md): Endpoint for setting a stop-loss / take-profit bracket or a trailing stop on the isolated margin position for a market. Requires an open position, closes it in full, and fires reduce-only orders. - [Cancel Isolated Exit Trigger](https://docs.kalshi.com/margin-rest/exit-triggers/cancel-isolated-exit-trigger.md): Endpoint for cancelling exit triggers on the isolated margin position for a market. Succeeds even when nothing is live. The position itself is unaffected. - [Get Cross Exit Triggers](https://docs.kalshi.com/margin-rest/exit-triggers/get-cross-exit-triggers.md): Endpoint for retrieving the live exit triggers on a non-isolated margin position. - [Set Cross Exit Trigger](https://docs.kalshi.com/margin-rest/exit-triggers/set-cross-exit-trigger.md): Endpoint for setting a stop-loss / take-profit bracket or a trailing stop on a non-isolated margin position. A position holds one trailing stop and up to 20 brackets, so long as their counts fit the position. Requires an open position unless `anchor_order_id` is supplied, and fires reduce-only order… - [Cancel Cross Exit Triggers](https://docs.kalshi.com/margin-rest/exit-triggers/cancel-cross-exit-triggers.md): Endpoint for cancelling exit triggers on a non-isolated margin position, including partial and order-anchored brackets. Succeeds even when nothing is live; use the `{trigger_id}` route to cancel a single bracket. - [Update Cross Exit Trigger](https://docs.kalshi.com/margin-rest/exit-triggers/update-cross-exit-trigger.md): Endpoint for updating one bracket's leg prices, leaving any others on the position untouched. At least one leg is required; cancel with `DELETE`. Trailing stops are not addressed by id — use the collection route with `kind=trailing`. - [Cancel Cross Exit Trigger by ID](https://docs.kalshi.com/margin-rest/exit-triggers/cancel-cross-exit-trigger-by-id.md): Endpoint for cancelling one bracket, leaving any others on the position live. Trailing stops are not addressed by id — use the collection route with `kind=trailing`. - [WebSocket Connection](https://docs.kalshi.com/margin-ws/websockets/websocket-connection.md): Main WebSocket connection endpoint. Authentication is required during the WebSocket handshake. - [Connection Keep-Alive](https://docs.kalshi.com/margin-ws/websockets/connection-keep-alive.md): Kalshi sends Ping frames every 10 seconds with body `heartbeat`. Clients should respond with Pong frames. - [Orderbook Updates](https://docs.kalshi.com/margin-ws/websockets/orderbook-updates.md): Real-time margin orderbook price-level changes. - [Market Ticker](https://docs.kalshi.com/margin-ws/websockets/market-ticker.md): Margin market updates are delivered on a single channel. `ticker` messages include price, top-of-book size, volume, open-interest, and optional reference/mark prices. - [Public Trades](https://docs.kalshi.com/margin-ws/websockets/public-trades.md): Public notifications for executed margin trades. - [User Fills](https://docs.kalshi.com/margin-ws/websockets/user-fills.md): Private fill notifications for the authenticated user on the margin exchange. - [User Orders](https://docs.kalshi.com/margin-ws/websockets/user-orders.md): Private order created/updated notifications for the authenticated user on the margin exchange. - [Order Group Updates](https://docs.kalshi.com/margin-ws/websockets/order-group-updates.md): Real-time order group lifecycle and limit updates. Requires authentication. - [Connectivity](https://docs.kalshi.com/fix-margin/connectivity.md): Endpoints, transport configuration, and rate limits for the Kalshi Margin FIX API - [Authentication & Sessions](https://docs.kalshi.com/fix-margin/authentication.md): API key creation, logon, session lifecycle, and message retransmission - [Order Entry](https://docs.kalshi.com/fix-margin/order-entry.md): Submit, modify, and cancel margin orders through FIX messages - [Order Groups](https://docs.kalshi.com/fix-margin/order-groups.md): Manage order groups for automatic position management - [Market Data](https://docs.kalshi.com/fix-margin/market-data.md): Request margin order book snapshots and incremental updates through FIX - [Drop Copy Session](https://docs.kalshi.com/fix-margin/drop-copy.md): Recover missed margin execution reports and query historical order events - [Listener Sessions](https://docs.kalshi.com/fix-margin/listener-sessions.md): Real-time read-only feed of margin execution reports from your trading session - [Error Handling](https://docs.kalshi.com/fix-margin/error-handling.md): Understanding and handling errors on margin FIX sessions - [API Changelog](https://docs.kalshi.com/changelog/index.md): Stay updated with API changes and version history ## OpenAPI Specs - [openapi](/openapi.yaml) - [perps_openapi](/perps_openapi.yaml) - [perps_scm_openapi](/perps_scm_openapi.yaml) ## AsyncAPI Specs - [asyncapi](/asyncapi.yaml) - [perps_asyncapi](/perps_asyncapi.yaml)