Polymarket odds API: prediction-market prices next to sportsbook odds

Polymarket prices shares in dollars. Sportsbooks quote American odds. ParlayAPI returns Polymarket prices already converted - cent quotes, American odds, and implied probability in one row, with a link back to the market - from the same API that serves odds from 30+ sportsbooks. One key, one schema, free tier with no card required.

45+
Sources, last 24h
1
Credit per snapshot call
0
Credits - search, in beta
1,000
Free credits / month

Why put Polymarket in a sports odds API?

A Polymarket share at 62¢ and a moneyline at −163 are the same probability wearing different clothes. Prediction markets often move on news before books re-price - but comparing the two normally means a second client, a currency conversion, and hand-matching "Will the Eagles win?" to an h2h price.

What you'd build yourself

A Polymarket client and pagination, price-to-odds conversion, sport classification (Polymarket doesn't tag markets by sport), entity matching against sportsbook feeds, and a de-vig step so the comparison is fair.

What one ParlayAPI row gives you

The market question and outcome, the yes-price in cents, american_odds, implied_probability, volume, liquidity, and an event_url straight back to the market - on the same sport keys as our sportsbook odds, props, consensus, and EV endpoints.

What the API covers for Polymarket

Polymarket is one source key - polymarket - inside the same platform that aggregated 45+ sportsbooks and sources in the last 24 hours across 90+ sports.

SnapshotsPolymarket prices by sport

One row per Polymarket market from the last hour, normalized to American odds and implied probability, spanning yes/no questions, moneyline-style markets, and totals (polymarket_yesno, polymarket_moneyline, polymarket_total). Responses are cached server-side for 30 seconds with an X-Cache header. 1 credit per call. The measured live example (published at /v1/bookmakers/polymarket) is the NFL as of 2026-08-25.

GET /v1/prediction-markets/{sport_key}?sources=polymarket

Search · betaFree-text market discovery

Elections, awards, next-team markets, and anything else that doesn't fit a sport schema: search Polymarket (plus Kalshi and Novig) by plain text and get source-native prices back - live best bid, best ask, and spread straight from the venue payloads, with a match-confidence score on every row. 0 credits while in beta.

GET /v1/prediction-markets/search?q=...&sources=polymarket

Bridge toolsDe-vig & fair value

/v1/calc/edge is a free no-vig calculator: pass a two-sided market (American or decimal prices) and get the fair probability and your edge back. And /v1/sports/{sport_key}/consensus accepts include_prediction_markets=true to fold Polymarket into the same probability-space rollup as the sportsbooks - off by default, on when you want it.

GET /v1/calc/edge GET /v1/sports/{sport_key}/consensus

Props familyPolymarket inside /props

Polymarket rows also surface through the standard props endpoints, so a client already reading sportsbook props can pull Polymarket with a bookmakers=polymarket filter - no new response shape to learn. The measured example path is published live at /v1/bookmakers/polymarket.

GET /v1/sports/americanfootball_nfl/props?bookmakers=polymarket

The response shape, and two honest footnotes

First: snapshot rows carry one stored yes-price (served in both cent fields), not a live two-sided book - when you need live best-bid/best-ask/spread, the free search endpoint returns them straight from the venue. Second: Polymarket doesn't tag markets by sport, so our collector classifies question text; the API exposes match_confidence so you can filter, and its own response notes say to treat cross-source matches as leads, not proof of equivalence.

GET /v1/prediction-markets/americanfootball_nfl?sources=polymarket - row shape (values illustrative)
{
  "source": "polymarket",
  "ticker": "will-the-eagles-win-...",   // Polymarket id or slug
  "question": "Will the Philadelphia Eagles win ...?",
  "outcome": "Philadelphia Eagles",
  "market_key": "polymarket_moneyline", // or polymarket_yesno / polymarket_total
  "line": null,
  "yes_bid": 62,                        // cents; one stored price, served both sides
  "yes_ask": 62,
  "american_odds": -163,                // normalized for sportsbook comparison
  "implied_probability": 0.62,
  "volume": 48210.5,
  "liquidity": 9120.2,
  "event_url": "https://polymarket.com/market/will-the-eagles-win-...",
  "last_update": "2026-08-25T17:40:11Z"
}

When Polymarket's own APIs are the better pick

Polymarket publishes its own APIs (docs.polymarket.com, read 2026-08-25), and for some jobs they are simply the right tool: placing orders through the CLOB, full order-book depth, onchain settlement data, and their own streaming feeds, straight from the venue, at no cost. If you are trading on Polymarket, build against theirs. ParlayAPI earns its keep when Polymarket is one signal among many - you want its prices normalized next to 30+ sportsbooks without writing a second client, a converter, and an entity matcher.

Quickstart

Endpoint shapes below are the real ones from the API docs. Auth is either an X-API-Key header or the-odds-api-style apiKey= query param.

curl - free-text Polymarket search (0 credits in beta)
curl "https://parlay-api.com/v1/prediction-markets/search?q=world+series&sources=polymarket&limit=3"

# real response, captured 2026-08-25 (trimmed):
{
  "source": "polymarket",
  "market_id": "1235553",
  "event_title": "MLB World Series Champion 2026",
  "title": "Will the Chicago White Sox win the 2026 World Series?",
  "volume": 2603327.81,
  "prices": { "best_bid": 0.031, "best_ask": 0.032, "last": 0.031, "spread": 0.001 },
  "url": "https://polymarket.com/event/mlb-world-series-champion-2026/...",
  "match_confidence": 0.99
}
curl - Polymarket snapshots for a sport (1 credit)
curl "https://parlay-api.com/v1/prediction-markets/americanfootball_nfl?sources=polymarket" \
  -H "X-API-Key: YOUR_KEY"

# or through the props family, next to sportsbook props
curl "https://parlay-api.com/v1/sports/americanfootball_nfl/props?bookmakers=polymarket" \
  -H "X-API-Key: YOUR_KEY"
Python - Polymarket implied probability vs the sportsbook consensus
import requests

BASE = "https://parlay-api.com"
H = {"X-API-Key": "YOUR_KEY"}

# Polymarket rows, already normalized to American odds + implied probability
poly = requests.get(f"{BASE}/v1/prediction-markets/americanfootball_nfl",
                    params={"sources": "polymarket"}, headers=H).json()

# Sportsbook consensus in probability space, prediction markets folded in
consensus = requests.get(f"{BASE}/v1/sports/americanfootball_nfl/consensus",
                         params={"include_prediction_markets": "true"}, headers=H).json()

# Free no-vig fair line: is a book's price +EV against a two-sided market?
edge = requests.get(f"{BASE}/v1/calc/edge", params={
    "odds": "+120",               # the price you can bet (American or decimal)
    "sharp_over_odds": "-163",    # e.g. odds derived from a Polymarket yes-price
    "sharp_under_odds": "+140",
}).json()

Building with an AI agent instead? There's an official MCP server with 22 tools: pip install parlayapi-mcp.

Polymarket odds API - frequently asked

Does ParlayAPI replace Polymarket's official APIs?

No, and it isn't trying to. Polymarket publishes its own APIs (docs.polymarket.com), and for trading they are the right tool: order placement through the CLOB, full order-book depth, onchain settlement data, and their own WebSocket feeds, straight from the venue. ParlayAPI is read-only market intelligence - Polymarket prices normalized to American odds and implied probability, served in the same API as odds from 30+ sportsbooks, with one key and one schema.

How are Polymarket share prices converted to odds?

A Polymarket share priced at $0.62 pays $1 if the outcome happens, so the price is an implied probability. Each row carries the stored yes-price in cents, the implied probability, and american_odds computed from it, alongside volume, liquidity, and a direct event_url back to the market on Polymarket. Snapshot rows serve one stored price; for live best-bid, best-ask, and spread straight from the venue, use the free search endpoint.

How do Polymarket markets get sorted into sports?

Honestly: imperfectly. Polymarket does not tag its markets by sport, so our collector classifies question text by keyword, and the sport endpoint applies the same filter on the way out. The search endpoint returns a match_confidence score on every row and accepts a min_confidence filter, and the API's own response notes say to treat cross-source matches as leads, not proof of equivalence.

What does the Polymarket odds API cost?

GET /v1/prediction-markets/{sport_key} costs 1 credit per call. The free-text market search endpoint is 0 credits while in beta. The free tier includes 1,000 credits per month with no credit card required, and the no-vig fair-line calculator at /v1/calc/edge is free. Current paid tiers are listed at /pricing.

Which sports have Polymarket prices?

Coverage follows what Polymarket actually lists, which changes over time. The API publishes a live, measured example path at /v1/bookmakers/polymarket - as of 2026-08-25 that example is /v1/prediction-markets/americanfootball_nfl?sources=polymarket, and Polymarket rows also surface through the props family at /v1/sports/americanfootball_nfl/props?bookmakers=polymarket. For elections, awards, and other specials, use the free-text search endpoint.

Ready before kickoff.

The 2026 NFL season kicks off September 9, and Polymarket's NFL markets are already flowing through the API. Sign up free - 1,000 credits a month, no card required - or try the market search in beta before you even make a key.