Agent skill
orthogonal-prediction-market-odds
Get prediction market odds and prices from Polymarket and Kalshi
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/orthogonal-prediction-market-odds
SKILL.md
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 -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
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?