| name | prediction-market-data |
| description | Prediction market data for Polymarket and Kalshi, including markets, prices, positions, trades, orderbooks, and cross-platform matching. Use when: the user needs market data, stock analysis, watchlists, or portfolio workflows. |
| license | MIT |
| allowed-tools | Read Bash Grep |
| when_to_use | the user needs market data, stock analysis, watchlists, or portfolio workflows |
Release note: This package is published for Claude Code. References to OpenClaw below describe the original source workflow, a companion runtime, or compatibility guidance unless the skill is explicitly about OpenClaw itself.
Prediction Market Data 📈
Access prediction market data from Polymarket and Kalshi through AIsa.
Use when you need to:
- look up current market odds and implied probabilities
- search active or historical prediction markets
- inspect trade history, orderbooks, and candlesticks
- review wallet positions, wallet info, or realized PnL
- compare matching sports markets across platforms
One API key gives agents a consistent read-only interface for prediction market research and monitoring.
Compatibility
Works with any agentskills.io-compatible harness, including:
- Claude Code and Claude
- OpenAI Codex
- Cursor
- Gemini CLI
- OpenCode, Goose, OpenClaw, Hermes
- and other tools that implement the Agent Skills specification
Requires Python 3, a POSIX shell, and AISA_API_KEY (available from aisa.one).
Quick Start
export AISA_API_KEY="your-key"
Common Requests
Probability Checks
"What are the odds of [event] happening?"
Market Sentiment
"Research the current market sentiment on the upcoming election."
Trading Analysis
"Analyze historical prices and orderbooks for this market."
Portfolio Tracking
"Track portfolio positions and P&L for wallet address X."
Arbitrage Detection
"Find arbitrage opportunities across Polymarket and Kalshi."
How to Look Up IDs
Most downstream endpoints require an ID from a prior market lookup. Query markets first, then pass the relevant identifier to the next endpoint.
- Polymarket
token_id: Query /polymarket/markets, find side_a.id or side_b.id, then pass it to /polymarket/market-price/{token_id}.
- Polymarket
condition_id: Query /polymarket/markets, find condition_id, then pass it to /polymarket/candlesticks/{condition_id}.
- Kalshi
market_ticker: Query /kalshi/markets, find market_ticker, then pass it to /kalshi/market-price/{market_ticker}.
End-to-End Examples
Get the current price of a Polymarket market
Prices require a token_id, which comes from the /markets response. Always query markets first.
Step 1: Find a market and extract the token_id:
python scripts/prediction_market_client.py polymarket markets --search "election" --status open --limit 5
The response includes a side_a.id and side_b.id for each market; these are the token IDs for the Yes and No sides respectively:
{
"markets": [
{
"title": "Will Trump nationalize elections?",
"market_slug": "will-trump-nationalize-elections",
"condition_id": "0xe6522d64f35a6843ebdbccab2e3d4a1385350be6d40a3de766330e207b71a8ba",
"side_a": {
"id": "44482086252598348208660011972852804909957485351743405768768577675743702971026",
"label": "Yes"
},
"side_b": {
"id": "68987475491741167427045844503509447338405188188495224371188027929166363674438",
"label": "No"
}
}
]
}
Step 2: Fetch the current price using the token_id:
python scripts/prediction_market_client.py polymarket price 44482086252598348208660011972852804909957485351743405768768577675743702971026
The price is a decimal between 0 and 1 representing the implied probability (for example, 0.20 = 20% chance of Yes).
Get the current price of a Kalshi market
Step 1: Find a market and extract the market_ticker:
python scripts/prediction_market_client.py kalshi markets --search "fed rate" --status open --limit 5
{
"markets": [
{
"title": "Will the federal funds rate be above 3.75% after the Mar 2026 meeting?",
"market_ticker": "KXFED-26MAR-T3.75",
"last_price": 6
}
]
}
Step 2: Fetch the price using the market_ticker:
python scripts/prediction_market_client.py kalshi price KXFED-26MAR-T3.75
Core Capabilities
Polymarket
Markets
curl -X GET "https://api.aisa.one/apis/v1/polymarket/markets?search=election&status=open" \
-H "Authorization: Bearer $AISA_API_KEY"
Market Price
curl -X GET "https://api.aisa.one/apis/v1/polymarket/market-price/{token_id}" \
-H "Authorization: Bearer $AISA_API_KEY"
Activity
curl -X GET "https://api.aisa.one/apis/v1/polymarket/activity?user={wallet_address}" \
-H "Authorization: Bearer $AISA_API_KEY"
Trade History
curl -X GET "https://api.aisa.one/apis/v1/polymarket/orders?market_slug={market_slug}" \
-H "Authorization: Bearer $AISA_API_KEY"
Orderbook History
curl -X GET "https://api.aisa.one/apis/v1/polymarket/orderbooks?token_id={token_id}" \
-H "Authorization: Bearer $AISA_API_KEY"
Candlesticks
curl -X GET "https://api.aisa.one/apis/v1/polymarket/candlesticks/{condition_id}?interval=60" \
-H "Authorization: Bearer $AISA_API_KEY"
Positions
curl -X GET "https://api.aisa.one/apis/v1/polymarket/positions/wallet/{wallet_address}" \
-H "Authorization: Bearer $AISA_API_KEY"
Wallet
curl -X GET "https://api.aisa.one/apis/v1/polymarket/wallet?eoa={wallet_address}" \
-H "Authorization: Bearer $AISA_API_KEY"
Wallet Profit-and-Loss
curl -X GET "https://api.aisa.one/apis/v1/polymarket/wallet/pnl/{wallet_address}?granularity=day" \
-H "Authorization: Bearer $AISA_API_KEY"
Kalshi
Markets
curl -X GET "https://api.aisa.one/apis/v1/kalshi/markets?search=fed%20rate" \
-H "Authorization: Bearer $AISA_API_KEY"
Market Price
curl -X GET "https://api.aisa.one/apis/v1/kalshi/market-price/{market_ticker}" \
-H "Authorization: Bearer $AISA_API_KEY"
Trade History
curl -X GET "https://api.aisa.one/apis/v1/kalshi/trades?ticker={ticker}" \
-H "Authorization: Bearer $AISA_API_KEY"
Orderbook History
curl -X GET "https://api.aisa.one/apis/v1/kalshi/orderbooks?ticker={ticker}" \
-H "Authorization: Bearer $AISA_API_KEY"
Cross-Platform
Sports Markets
curl -X GET "https://api.aisa.one/apis/v1/matching-markets/sports" \
-H "Authorization: Bearer $AISA_API_KEY"
Sports Markets by Date
curl -X GET "https://api.aisa.one/apis/v1/matching-markets/sports/nba?date=2025-08-16" \
-H "Authorization: Bearer $AISA_API_KEY"
Sport abbreviations:
| Abbreviation | Sport |
|---|
nfl | Football |
mlb | Baseball |
cfb | College Football |
nba | Basketball |
nhl | Hockey |
cbb | College Basketball |
pga | Golf |
tennis | Tennis |
API Endpoints Reference
Polymarket Endpoints (GET)
| Endpoint | Description | Key Params |
|---|
/polymarket/markets | Find markets | search, status, market_slug, limit |
/polymarket/market-price/{token_id} | Get market price | token_id, at_time |
/polymarket/activity | Get user activity | user, start_time, end_time |
/polymarket/orders | Get trade history | market_slug, token_id, user |
/polymarket/orderbooks | Get orderbook history | token_id, start_time, end_time |
/polymarket/candlesticks/{condition_id} | Get candlestick data | condition_id, start_time, end_time, interval |
/polymarket/positions/wallet/{wallet_address} | Get wallet positions | wallet_address, limit |
/polymarket/wallet | Get wallet info | eoa or proxy, with_metrics |
/polymarket/wallet/pnl/{wallet_address} | Get wallet PnL | wallet_address, granularity |
Kalshi Endpoints (GET)
| Endpoint | Description | Key Params |
|---|
/kalshi/markets | Find markets | search, status, market_ticker |
/kalshi/market-price/{market_ticker} | Get market price | market_ticker, at_time |
/kalshi/trades | Get trade history | ticker, start_time, end_time |
/kalshi/orderbooks | Get orderbook history | ticker, start_time, end_time |
Cross-Platform Endpoints (GET)
| Endpoint | Description | Key Params |
|---|
/matching-markets/sports | Find matching sports markets | polymarket_market_slug or kalshi_event_ticker |
/matching-markets/sports/{sport} | Find sports markets by date | sport (nfl|mlb|cfb|nba|nhl|cbb|pga|tennis), date (YYYY-MM-DD) |
Response Schemas
Markets Response
Returns markets array:
title (string) - Market question (e.g., "Will Trump nationalize elections?")
market_slug (string) - URL-friendly identifier
condition_id (string) - Blockchain condition ID
start_time / end_time (integer) - Unix timestamps
completed_time (integer|null) - Null if still open
tags (array) - Category tags (e.g., ["politics", "us election"])
volume_1_week / volume_1_month / volume_1_year / volume_total (number) - Trading volume in USD
side_a / side_b (object) - id and label (typically "Yes"/"No")
winning_side (object|null) - Null if unresolved
image (string) - Market thumbnail URL
Activity Response
Returns activities array:
title (string) - Market title
market_slug (string) - Market identifier
side (string) - Trade side: BUY, SELL, or MERGE
shares (integer) - Raw share amount
shares_normalized (number) - Human-readable share amount
price (number) - Trade price (0-1, represents probability)
timestamp (integer) - Unix timestamp of the trade
user (string) - Wallet address of the trader
tx_hash (string) - Blockchain transaction hash
Understanding Odds
- Prices are shown as decimals (0.65 = 65% probability)
- "Yes" price = probability market thinks event will happen
- Higher volume = more confidence/liquidity
- Prices change based on trading activity
Pricing
| API | Cost |
|---|
| Prediction market read query | $0.01 |
Get Started
- Sign up at aisa.one
- Get your API key
- Add credits (pay-as-you-go)
- Set environment variable:
export AISA_API_KEY="your-key"
Full API Reference
See API Reference for complete endpoint documentation.