Get prediction market odds and prices from Polymarket

Get prediction market odds and prices from Polymarket and Kalshi
---
name: prediction-market-odds
description: Get prediction market odds and prices from Polymarket and Kalshi
source: orthogonal
---
# Prediction Market Odds
## Setup
Read your credentials from ~/.gooseworks/credentials.json:
```bash
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
```
If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`Overview
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
Manual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill prediction-market-odds -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/research-tools/capabilities/prediction-market-oddsNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/cb736ec50abd223a847f/prediction-market-odds.zip" -OutFile "$env:TEMP\prediction-market-odds.zip"; Expand-Archive "$env:TEMP\prediction-market-odds.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md6.2 KBskill.meta.json299 B
Read the files here
gooseworks-ai/
Show the full text204 lines
Prediction Market Odds
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Get current odds, prices, and market data from prediction markets like Polymarket and Kalshi.
When to Use
- User asks about prediction market odds
- User wants to know probability of an event
- User asks "what are the odds of [event]?"
- Research on market sentiment
- Election or event probability checks
How It Works
Uses the Dome API to aggregate prediction market data from Polymarket and Kalshi.
Usage
Get Polymarket Markets
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/polymarket/markets","query":{"status":"open"}}'
curl equivalent
curl -X POST "https://api.orth.sh/v1/run" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/polymarket/markets"}'
Search Markets
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/polymarket/markets","query":{"search":"election"}}'
Get Kalshi Markets
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/kalshi/markets"}'
Get Polymarket Activity
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/polymarket/activity"}'
Get Market Orders
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/polymarket/orders"}'
Get Sports Markets
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/matching-markets/sports"}'
Get Specific Sport Markets
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/matching-markets/sports/nba"}'
Supported Sports
- nba
- nfl
- mlb
- nhl
- soccer
- tennis
Response
Markets Response (/polymarket/markets, /kalshi/markets)
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) -
idandlabel(typically "Yes"/"No") - winning_side (object|null) - Null if unresolved
- image (string) - Market thumbnail URL
Activity Response (/polymarket/activity)
Returns activities array:
- title (string) - Market title
- market_slug (string) - Market identifier
- side (string) - Trade side:
BUY,SELL, orMERGE - 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
Examples
User: "What are the odds on Polymarket right now?"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/polymarket/markets","query":{"status":"open"}}'
User: "Show me Kalshi prediction markets"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/kalshi/markets"}'
User: "What's happening in prediction markets?"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/polymarket/activity"}'
User: "Any sports betting markets?"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"dome","path":"/matching-markets/sports"}'
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
Error Handling
- 400 -
searchrequiresstatusparameter (openorclosed) — always include both - 401 - Invalid API key
- 429 - Rate limit — wait and retry
- Empty
marketsarray means no markets match the search term - Activity endpoint returns recent trades globally — no filters required
Tips
- Check multiple markets for the same event
- Volume indicates market confidence
- Recent activity shows sentiment shifts
- Polymarket focuses on politics/world events, Kalshi on finance/weather
| 1 | |
| 2 | name prediction-market-odds |
| 3 | description Get prediction market odds and prices from Polymarket and Kalshi |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # Prediction Market Odds |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Get current odds, prices, and market data from prediction markets like Polymarket and Kalshi. |
| 24 | |
| 25 | ## When to Use |
| 26 | |
| 27 | User asks about prediction market odds |
| 28 | User wants to know probability of an event |
| 29 | User asks "what are the odds of [event]?" |
| 30 | Research on market sentiment |
| 31 | Election or event probability checks |
| 32 | |
| 33 | ## How It Works |
| 34 | |
| 35 | Uses the Dome API to aggregate prediction market data from Polymarket and Kalshi. |
| 36 | |
| 37 | ## Usage |
| 38 | |
| 39 | ### Get Polymarket Markets |
| 40 | |
| 41 | |
| 42 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 43 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 44 | -H "Content-Type: application/json" \ |
| 45 | -d '{"api":"dome","path":"/polymarket/markets","query":{"status":"open"}}' |
| 46 | |
| 47 | |
| 48 | <details> |
| 49 | <summary>curl equivalent</summary> |
| 50 | |
| 51 | |
| 52 | curl -X POST "https://api.orth.sh/v1/run" \ |
| 53 | |
| 54 | -H "Content-Type: application/json" \ |
| 55 | -d '{"api":"dome","path":"/polymarket/markets"}' |
| 56 | |
| 57 | </details> |
| 58 | |
| 59 | ### Search Markets |
| 60 | |
| 61 | |
| 62 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 63 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 64 | -H "Content-Type: application/json" \ |
| 65 | -d '{"api":"dome","path":"/polymarket/markets","query":{"search":"election"}}' |
| 66 | |
| 67 | |
| 68 | ### Get Kalshi Markets |
| 69 | |
| 70 | |
| 71 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 72 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 73 | -H "Content-Type: application/json" \ |
| 74 | -d '{"api":"dome","path":"/kalshi/markets"}' |
| 75 | |
| 76 | |
| 77 | ### Get Polymarket Activity |
| 78 | |
| 79 | |
| 80 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 81 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 82 | -H "Content-Type: application/json" \ |
| 83 | -d '{"api":"dome","path":"/polymarket/activity"}' |
| 84 | |
| 85 | |
| 86 | ### Get Market Orders |
| 87 | |
| 88 | |
| 89 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 90 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 91 | -H "Content-Type: application/json" \ |
| 92 | -d '{"api":"dome","path":"/polymarket/orders"}' |
| 93 | |
| 94 | |
| 95 | ### Get Sports Markets |
| 96 | |
| 97 | |
| 98 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 99 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 100 | -H "Content-Type: application/json" \ |
| 101 | -d '{"api":"dome","path":"/matching-markets/sports"}' |
| 102 | |
| 103 | |
| 104 | ### Get Specific Sport Markets |
| 105 | |
| 106 | |
| 107 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 108 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 109 | -H "Content-Type: application/json" \ |
| 110 | -d '{"api":"dome","path":"/matching-markets/sports/nba"}' |
| 111 | |
| 112 | |
| 113 | ## Supported Sports |
| 114 | |
| 115 | nba |
| 116 | nfl |
| 117 | mlb |
| 118 | nhl |
| 119 | soccer |
| 120 | tennis |
| 121 | |
| 122 | ## Response |
| 123 | |
| 124 | ### Markets Response (`/polymarket/markets`, `/kalshi/markets`) |
| 125 | Returns `markets` array: |
| 126 | **title** (string) - Market question (e.g., "Will Trump nationalize elections?") |
| 127 | **market_slug** (string) - URL-friendly identifier |
| 128 | **condition_id** (string) - Blockchain condition ID |
| 129 | **start_time** / **end_time** (integer) - Unix timestamps |
| 130 | **completed_time** (integer|null) - Null if still open |
| 131 | **tags** (array) - Category tags (e.g., `["politics", "us election"]`) |
| 132 | **volume_1_week** / **volume_1_month** / **volume_1_year** / **volume_total** (number) - Trading volume in USD |
| 133 | **side_a** / **side_b** (object) - `id` and `label` (typically "Yes"/"No") |
| 134 | **winning_side** (object|null) - Null if unresolved |
| 135 | **image** (string) - Market thumbnail URL |
| 136 | |
| 137 | ### Activity Response (`/polymarket/activity`) |
| 138 | Returns `activities` array: |
| 139 | **title** (string) - Market title |
| 140 | **market_slug** (string) - Market identifier |
| 141 | **side** (string) - Trade side: `BUY`, `SELL`, or `MERGE` |
| 142 | **shares** (integer) - Raw share amount |
| 143 | **shares_normalized** (number) - Human-readable share amount |
| 144 | **price** (number) - Trade price (0-1, represents probability) |
| 145 | **timestamp** (integer) - Unix timestamp of the trade |
| 146 | **user** (string) - Wallet address of the trader |
| 147 | **tx_hash** (string) - Blockchain transaction hash |
| 148 | |
| 149 | ## Examples |
| 150 | |
| 151 | **User:** "What are the odds on Polymarket right now?" |
| 152 | |
| 153 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 154 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 155 | -H "Content-Type: application/json" \ |
| 156 | -d '{"api":"dome","path":"/polymarket/markets","query":{"status":"open"}}' |
| 157 | |
| 158 | |
| 159 | **User:** "Show me Kalshi prediction markets" |
| 160 | |
| 161 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 162 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 163 | -H "Content-Type: application/json" \ |
| 164 | -d '{"api":"dome","path":"/kalshi/markets"}' |
| 165 | |
| 166 | |
| 167 | **User:** "What's happening in prediction markets?" |
| 168 | |
| 169 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 170 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 171 | -H "Content-Type: application/json" \ |
| 172 | -d '{"api":"dome","path":"/polymarket/activity"}' |
| 173 | |
| 174 | |
| 175 | **User:** "Any sports betting markets?" |
| 176 | |
| 177 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 178 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 179 | -H "Content-Type: application/json" \ |
| 180 | -d '{"api":"dome","path":"/matching-markets/sports"}' |
| 181 | |
| 182 | |
| 183 | ## Understanding Odds |
| 184 | |
| 185 | Prices are shown as decimals (0.65 = 65% probability) |
| 186 | "Yes" price = probability market thinks event will happen |
| 187 | Higher volume = more confidence/liquidity |
| 188 | Prices change based on trading activity |
| 189 | |
| 190 | ## Error Handling |
| 191 | |
| 192 | **400** - `search` requires `status` parameter (`open` or `closed`) — always include both |
| 193 | **401** - Invalid API key |
| 194 | **429** - Rate limit — wait and retry |
| 195 | Empty `markets` array means no markets match the search term |
| 196 | Activity endpoint returns recent trades globally — no filters required |
| 197 | |
| 198 | ## Tips |
| 199 | |
| 200 | Check multiple markets for the same event |
| 201 | Volume indicates market confidence |
| 202 | Recent activity shows sentiment shifts |
| 203 | Polymarket focuses on politics/world events, Kalshi on finance/weather |
| 204 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 206 listings
Made with prediction-market-odds

Similar skills
See all →
SkillGuides stable API and interface design
MCPPulls up-to-date, version-specific library docsContext7
SkillFetch up-to-date documentation and code examples for anyContext7 Documentation Lookup
SkillHow to use the Adaptyv Bio Foundry API and Python SDK
SkillMaster C/.NET backend development patterns for building
SkillGuides the usage of Gemini Interactions API on GeminiGemini Interactions API SkillMore from gooseworks-ai
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze ad campaign performance data to identify what'sAd campaign analyzer
SkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzer
SkillAnalyze the message match between your ads and landing pagesAd to landing page auditor
SkillCheck and improve your brand's visibility across AI searchAeo
SkillSearch Amazon products - find items, compare pricesAmazon Product Search