polymarket
Polymarket sports prediction markets — live odds, prices, order books, events, series, and market search. No auth required. Covers NFL, NBA, MLB, soccer, tennis, cricket, MMA, esports. Supports moneyline, spreads, totals, and player props. Use when: user asks about sports betting odds, prediction markets, win probabilities, market sentiment, or "who is favored to win" questions. Don't use when: user asks about actual match results, scores, or statistics — use football-data or fastf1 instead. Don't use for historical match data. Don't use for news — use sports-news instead. Don't confuse with Kalshi — Polymarket focuses on crypto-native prediction markets with deeper sports coverage; Kalshi is a US-regulated exchange with different market structure.
NPX Install
npx skill4agent add machina-sports/sports-skills polymarketTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Polymarket — Sports Prediction Markets
Setup
which sports-skills || pip install sports-skillspip installpython3 --version # check version
# If < 3.10, try: python3.12 -m pip install sports-skills
# On macOS with Homebrew: /opt/homebrew/bin/python3.12 -m pip install sports-skillsQuick Start
sports-skills polymarket get_sports_markets --limit=20
sports-skills polymarket search_markets --query="NBA Finals"from sports_skills import polymarket
markets = polymarket.get_sports_markets(limit=20)
prices = polymarket.get_market_prices(token_id="abc123")Commands
get_sports_markets
- (int, optional): Max results (default: 50, max: 100)
limit - (int, optional): Pagination offset
offset - (str, optional): Filter by type ("moneyline", "spreads", "totals")
sports_market_types - (str, optional): Filter by game
game_id - (bool, optional): Only active markets (default: true)
active - (bool, optional): Include closed markets (default: false)
closed - (str, optional): Sort field (default: "volume")
order - (bool, optional): Sort ascending (default: false)
ascending
get_sports_events
- ,
limit,offset,active,closed,order(same as above)ascending - (str, optional): Filter by series (league) ID
series_id
get_series
- (int, optional): Max results (default: 100)
limit - (int, optional): Pagination offset
offset
get_market_details
- (str): Market ID
market_id - (str): Market slug (alternative to ID)
slug
get_event_details
- (str): Event ID
event_id - (str): Event slug (alternative to ID)
slug
get_market_prices
- (str): Single CLOB token ID
token_id - (list): Multiple CLOB token IDs (batch)
token_ids
get_order_book
- (str, required): CLOB token ID
token_id
get_sports_market_types
search_markets
- (str, optional): Keyword to search — use league names (e.g., "Premier League", "Champions League", "La Liga", "NBA Finals")
query - (str, optional): Filter by type
sports_market_types - (int, optional): Tag ID (default: 1 = Sports)
tag_id - (int, optional): Max results (default: 20)
limit
get_price_history
- (str, required): CLOB token ID
token_id - (str, optional): Time range ("1d", "1w", "1m", "max"). Default: "max"
interval - (int, optional): Seconds between data points. Default: 120
fidelity
get_last_trade_price
- (str, required): CLOB token ID
token_id
Examples
- Call
search_markets(query="NBA Finals", sports_market_types="moneyline") - Get from the market details
token_id - Call for current odds
get_market_prices(token_id="...") - Present teams with implied probabilities (price = probability)
- Call — use full league name
search_markets(query="English Premier League") - Sort results by Yes outcome price descending
- Present teams with implied probabilities (price = probability)
- Call
search_markets(query="Champions League") - Present top contenders with prices, volume, and liquidity
- Call for full book
get_order_book(token_id="...") - Present bids, asks, spread, and implied probabilities
Troubleshooting
- command not found: Package not installed. Run
sports-skills. If pip fails with a Python version error, you need Python 3.10+ — see Setup section.pip install sports-skills - : Same as above — install the package. Prefer the CLI over Python imports to avoid path issues.
ModuleNotFoundError: No module named 'sports_skills' - token_id vs market_id: Price/orderbook endpoints need the CLOB (found in market details under
token_id), not the GammaclobTokenIds. Always fetch market details first to get the token_id.market_id - Search returns 0 results: matches event titles, not sport categories. Don't search "soccer" or "football" — search by league name: "Premier League", "Champions League", "La Liga", "Bundesliga", "Serie A", "NBA Finals", etc.
search_markets - Market not found by ID: Use with keywords instead of guessing IDs. Or use
search_markets(query="...")with the URL slug.get_market_details(slug="...") - Stale or wide prices: Low-liquidity markets may have wide bid-ask spreads. The price from
midis the midpoint — checkget_market_pricesto assess reliability.spread - Pagination: Use parameter for paging. Default
offsetvaries by endpoint (20-100). Increment offset by limit for each page.limit
APIs
- Gamma API (gamma-api.polymarket.com): Market metadata, events, series. Public, no auth.
- CLOB API (clob.polymarket.com): Prices, order books, trades. Public reads, no auth.