kalshi-tracker

Track Kalshi event contract prices, order book depth, and recent trades. Covers sports, politics, economics, and weather markets. Converts contract prices to American odds for cross-platform comparison. Read-only — no trade execution.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "kalshi-tracker" with this command: npx skills add kalshi-tracker

Kalshi Event Contract Tracker

Monitor Kalshi prediction market contracts — prices, order books, and trade history.

When to Use

Use this skill when the user asks about:

  • Kalshi market prices or event contracts
  • Prediction market odds for sports, politics, economics, or weather
  • Order book depth or liquidity on Kalshi
  • Converting Kalshi contract prices to American odds
  • Recent trades or volume on a Kalshi market
  • Comparing Kalshi prices against sportsbook odds

Event Categories

Common Kalshi event categories:

CategorySeries PrefixExamples
SportsSPORTS-NBA winners, NFL spreads, World Cup
PoliticsPOL-Elections, policy decisions
EconomicsECON-, FED-GDP, inflation, Fed rate decisions
WeatherWEATHER-Temperature records, hurricane landfalls
FinanceFINANCE-Stock prices, crypto prices
EntertainmentENT-Award show winners, box office

Operations

1. List Active Events

Browse events with optional category filtering:

curl -s "https://api.elections.kalshi.com/trade-api/v2/events?status=open&limit=50" \
  -H "Authorization: Bearer $KALSHI_API_KEY" \
  | jq '[.events[] | {
    ticker: .event_ticker,
    title: .title,
    category: .category,
    markets_count: (.markets | length),
    volume: .volume
  }] | sort_by(-.volume) | .[:20]'

To filter by category (e.g., sports):

curl -s "https://api.elections.kalshi.com/trade-api/v2/events?status=open&limit=50&series_ticker=SPORTS" \
  -H "Authorization: Bearer $KALSHI_API_KEY" \
  | jq '[.events[] | {
    ticker: .event_ticker,
    title: .title,
    markets_count: (.markets | length),
    volume: .volume,
    close_time: .close_time
  }] | sort_by(-.volume)'

2. Get Contract Prices

Fetch current Yes/No prices, volume, and status for a specific event's markets. Replace EVENT_TICKER with the event ticker from operation 1:

curl -s "https://api.elections.kalshi.com/trade-api/v2/events/EVENT_TICKER" \
  -H "Authorization: Bearer $KALSHI_API_KEY" \
  | jq '{
    event: .event.title,
    category: .event.category,
    markets: [.event.markets[] | {
      ticker: .ticker,
      subtitle: .subtitle,
      yes_price: (.yes_bid // "no bid"),
      no_price: (.no_bid // "no bid"),
      yes_ask: (.yes_ask // "no ask"),
      no_ask: (.no_ask // "no ask"),
      last_price: .last_price,
      volume: .volume,
      open_interest: .open_interest,
      status: .status,
      close_time: .close_time
    }]
  }'

3. Convert Contract Prices to American Odds

After fetching prices, convert to American odds for sportsbook comparison:

curl -s "https://api.elections.kalshi.com/trade-api/v2/events/EVENT_TICKER" \
  -H "Authorization: Bearer $KALSHI_API_KEY" \
  | jq -r '.event.markets[] | "\(.subtitle)\t\(.last_price)"' \
  | python3 -c "
import sys
for line in sys.stdin:
    parts = line.strip().split('\t')
    if len(parts) != 2:
        continue
    name, price_str = parts
    try:
        price = float(price_str) / 100
    except (ValueError, TypeError):
        print(f'{name}: no price available')
        continue
    if price <= 0 or price >= 1:
        print(f'{name}: {price_str}c (off the board)')
    elif price > 0.5:
        odds = -(price / (1 - price)) * 100
        print(f'{name}: {price_str}c → {int(odds):+d} (implied {price:.1%})')
    elif price < 0.5:
        odds = ((1 - price) / price) * 100
        print(f'{name}: {price_str}c → +{int(odds)} (implied {price:.1%})')
    else:
        print(f'{name}: {price_str}c → +100/-100 (implied 50.0%)')
"

4. Check Order Book Depth

View resting orders to assess liquidity for a specific market. Replace MARKET_TICKER with the market ticker from operation 2:

curl -s "https://api.elections.kalshi.com/trade-api/v2/markets/MARKET_TICKER/orderbook" \
  -H "Authorization: Bearer $KALSHI_API_KEY" \
  | jq '{
    ticker: .ticker,
    yes_orders: [.orderbook.yes[]? | "price: \(.[0])c  qty: \(.[1])"],
    no_orders: [.orderbook.no[]? | "price: \(.[0])c  qty: \(.[1])"],
    spread: ((.orderbook.yes[0]?[0] // 0) + (.orderbook.no[0]?[0] // 0) - 100),
    depth_yes_top3: ([.orderbook.yes[:3]?[]?[1]] | add // 0),
    depth_no_top3: ([.orderbook.no[:3]?[]?[1]] | add // 0)
  }'

5. Fetch Recent Trades

See the last trades executed on a market for momentum and volume analysis:

curl -s "https://api.elections.kalshi.com/trade-api/v2/markets/MARKET_TICKER/trades?limit=20" \
  -H "Authorization: Bearer $KALSHI_API_KEY" \
  | jq '[.trades[] | {
    time: .created_time,
    price: .yes_price,
    count: .count,
    taker_side: .taker_side
  }]'

Output Rules

  1. Always show the event title, market subtitle, and contract ticker
  2. Show contract prices in cents (e.g., 45c for $0.45)
  3. When showing American odds conversion, include both the cent price and the converted odds
  4. For order books, report the bid/ask spread and top-3 depth on each side
  5. Flag markets with fewer than 5 contracts of top-of-book depth as "thin liquidity"
  6. Flag markets with bid/ask spread > 10c as "wide spread — use limit orders"
  7. Always show volume and open interest for context
  8. Note the market close time so the agent knows time-to-expiry

Error Handling

  • If KALSHI_API_KEY is not set, tell the user to create a Kalshi account at https://kalshi.com/ and generate an API key
  • If the API returns 401, the API key may be expired — suggest regenerating it
  • If an event ticker returns empty markets, the event may have settled or been delisted
  • If rate limited (429), wait 60 seconds before retrying
  • If order book is empty, the market may be halted or near expiry

About

Built by AgentBets — full tutorial at agentbets.ai/guides/openclaw-kalshi-tracker-skill/.

Part of the OpenClaw Skills series for the Agent Betting Stack.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Odds Converter

Convert between American odds, decimal odds, fractional odds, implied probability, and Kalshi contract prices. Use when asked to convert odds formats, explai...

Registry Source
1170Profile unavailable
Automation

Polymarket Monitor

Monitor Polymarket prediction markets for price movements, volume spikes, and new listings. Track specific markets, check order book depth, and surface trend...

Registry Source
1400Profile unavailable
Automation

Expected Value Calculator

Calculate expected value for any sports bet or prediction market position. Supports American odds, decimal odds, implied probability, and Kalshi contract pri...

Registry Source
1450Profile unavailable
Automation

Kelly Criterion Bet Sizer

Calculate optimal bet sizes using Kelly Criterion. Supports single bets, fractional Kelly (quarter/half/three-quarter), multi-bet portfolio sizing, and max-b...

Registry Source
1250Profile unavailable