Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
machina-sports avatar

Kalshi

  • 809 installs
  • 201 repo stars
  • Updated August 5, 2026
  • machina-sports/sports-skills

Kalshi is a sports prediction-market agent skill that queries Kalshi event contracts, markets, trades, and candlestick data via the public API for developers who need CFTC-regulated market prices on sports outcomes.

About

Kalshi is a sports-skills agent integration for the US-regulated Kalshi prediction exchange, exposing events, series, markets, trades, and candlestick OHLC data through a public read API requiring no authentication. It covers football leagues including EPL, UCL, and La Liga, plus basketball, baseball, tennis, NFL, and hockey event contracts. Developers reach for Kalshi when building analytics on market-implied sports probabilities—not actual match scores or statistics, which belong to sport-specific data skills like football-data or nfl-data. Use it for Kalshi-specific markets, CFTC-regulated contracts, or candlestick price history on sports outcomes.

  • Public API access to football, basketball, baseball, tennis, NFL and hockey contracts
  • CLI commands for search_markets, get_todays_events and get_markets
  • Returns series tickers, OHLC history and open status without authentication

Kalshi by the numbers

  • 809 all-time installs (skills.sh)
  • +13 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #180 of 1,106 Finance & Trading skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/machina-sports/sports-skills --skill kalshi

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs809
repo stars201
Last updatedAugust 5, 2026
Repositorymachina-sports/sports-skills

How do you query Kalshi sports prediction market data?

Query Kalshi prediction markets, event contracts, and candlestick data for sports outcomes via public API.

Who is it for?

Developers building sports analytics on Kalshi prediction-market prices, event contracts, and candlestick history via the public API.

Skip if: Developers needing actual match scores, player statistics, or non-Kalshi sports data sources.

When should I use this skill?

The user asks about Kalshi markets, event contracts, CFTC prediction markets, or candlestick price history on sports outcomes.

What you get

Kalshi event listings, market contracts, trade data, and candlestick OHLC price history for sports outcomes.

  • market listings
  • trade data
  • candlestick OHLC history

Files

SKILL.mdMarkdownGitHub ↗

Kalshi — Prediction Markets

Before writing queries, consult references/api-reference.md for sport codes, series tickers, and command parameters.

Quick Start

Prefer the CLI — it avoids Python import path issues:

sports-skills kalshi search_markets --sport=nba
sports-skills kalshi get_todays_events --sport=nba
sports-skills kalshi get_sports_config
sports-skills kalshi get_markets --series_ticker=KXNBA --status=open

Python SDK (alternative):

from sports_skills import kalshi

kalshi.search_markets(sport='nba')
kalshi.search_markets(sport='nba', query='Lakers')
kalshi.get_todays_events(sport='nba')
kalshi.get_sports_config()
kalshi.get_markets(series_ticker="KXNBA", status="open")

CRITICAL: Before Any Query

CRITICAL: Before calling any market endpoint, verify:

  • The sport parameter is always passed to search_markets and get_todays_events for single-game markets.
  • Prices are on a 0-100 integer scale (20 = 20% implied probability) — do not treat as American odds.
  • status="open" is used when querying markets to exclude settled/closed markets.

Without the sport parameter:

WRONG: search_markets(query="Leeds")           → 0 results
RIGHT: search_markets(sport='epl', query='Leeds') → returns all Leeds markets

Important Notes

  • On Kalshi, "Football" = NFL. For football/soccer (EPL, La Liga, etc.), use sport codes: epl, ucl, laliga, bundesliga, seriea, ligue1, mls, worldcup.
  • Prices are probabilities. A last_price of 20 means 20% implied probability. Scale is 0-100 (not 0-1 like Polymarket).
  • Always use `status="open"` when querying markets, otherwise results include settled/closed markets.
  • Shared interface with Polymarket: search_markets(sport=...), get_todays_events(sport=...), and get_sports_config() work the same way on both platforms.

Workflows

Sport Market Search (Recommended)

1. search_markets --sport=nba — finds all open NBA markets. 2. Optionally add --query="Lakers" to filter by keyword. 3. Results include yes_bid, no_bid, volume for each market.

Today's Events

1. get_todays_events --sport=nba — open events with nested markets. 2. Present events with prices (price = implied probability, 0-100 scale).

Futures Market Check

1. get_markets --series_ticker=<ticker> --status=open 2. Sort by last_price descending. 3. Present top contenders with probability and volume.

Market Price History

1. Get market ticker from search_markets --sport=nba. 2. get_market_candlesticks --series_ticker=<s> --ticker=<t> --start_ts=<start> --end_ts=<end> --period_interval=60 3. Present OHLC with volume.

Commands

See references/api-reference.md for the full command list with parameters.

CommandDescription
get_sports_configAvailable sport codes and series tickers
get_todays_eventsToday's events for a sport with nested markets
search_marketsFind markets by sport and/or keyword
get_marketsMarket listing (raw API)
get_eventEvent details
get_marketMarket details
get_tradesRecent trades
get_market_candlesticksOHLC price history

Examples

Example 1: NBA market search User says: "What NBA markets are on Kalshi?" Actions: 1. Call search_markets(sport='nba') Result: All open NBA markets with yes/no prices and volume

Example 2: EPL game markets User says: "Show me Leeds vs Man City odds on Kalshi" Actions: 1. Call search_markets(sport='epl', query='Leeds') Result: Leeds EPL markets across all EPL series with prices and volume

Example 3: Today's EPL events User says: "What EPL games are available on Kalshi?" Actions: 1. Call get_todays_events(sport='epl') Result: Today's EPL events with nested markets

Example 4: Champions League futures User says: "Who will win the Champions League?" Actions: 1. Call search_markets(sport='ucl') or get_markets(series_ticker="KXUCL", status="open") 2. Sort by last_price descending (price = implied probability) Result: Top UCL contenders with yes_sub_title, last_price (%), and volume

Example 5: Market price history User says: "Show me the price history for this NBA game" Actions: 1. Get market ticker from search_markets(sport='nba') 2. Call get_market_candlesticks(series_ticker="KXNBA", ticker="...", start_ts=..., end_ts=..., period_interval=60) Result: OHLC price data with volume

Commands that DO NOT exist — never call these

  • ~~get_odds~~ — does not exist. Use search_markets or get_markets to find market prices.
  • ~~get_team_schedule~~ — does not exist. Kalshi has markets, not schedules. Use the sport-specific skill for schedules.
  • ~~get_scores~~ / ~~get_results~~ — does not exist. Kalshi is a prediction market. Use the sport-specific skill.

If a command is not listed in references/api-reference.md, it does not exist.

Troubleshooting

Error: search_markets returns 0 results Cause: The sport parameter is missing — without it, search only returns high-volume futures and misses single-game markets Solution: Always pass sport='<code>' to search_markets. Check references/api-reference.md for valid sport codes

Error: Markets returned include settled/expired contracts Cause: status parameter is not set Solution: Always pass status="open" to filter to open markets only

Error: Series ticker returns no results Cause: The series ticker may be incorrect or have no open markets Solution: Call get_series_list() to discover available tickers, or check references/series-tickers.md

Error: Football/soccer markets not found when searching "Football" Cause: On Kalshi, "Football" refers to NFL — soccer uses league-specific codes Solution: Use sport='epl', sport='ucl', sport='laliga', etc. for soccer leagues

Related skills

How it compares

Pick Kalshi for market-implied probabilities and contract prices; use football-data, nfl-data, or other sport skills for actual match results and player statistics.

FAQ

Does Kalshi skill require API authentication?

Kalshi public read endpoints for events, series, markets, trades, and candlestick data require no authentication, though the skill is scoped to Kalshi-specific prediction markets rather than live match statistics.

What sports does the Kalshi skill cover?

Kalshi covers football leagues including EPL, UCL, and La Liga, plus basketball, baseball, tennis, NFL, NHL, and golf event contracts on the US CFTC-regulated Kalshi exchange.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.