agentsclimarketplace

Prediction market odds

Skill gooseworks-ai/goose-skills/skills/research-tools/capabilities/prediction-market-odds

Get prediction market odds and prices from Polymarket and KalshiFrom its SKILL.md

Install
npx -y skills add gooseworks-ai/goose-skills --skill prediction-market-odds

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

6.2 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it

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"}}'
<details> <summary>curl equivalent</summary>
curl -X POST "https://api.orth.sh/v1/run" \

  -H "Content-Type: application/json" \
  -d '{"api":"dome","path":"/polymarket/markets"}'
</details>

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) - id and label (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, 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

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 - search requires status parameter (open or closed) — always include both
  • 401 - Invalid API key
  • 429 - Rate limit — wait and retry
  • Empty markets array 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

What ships with it: 1 file

299 B alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.