Home › Developers

Free Polymarket Odds API and Widgets

Updated October 6, 2026 · no key · static JSON · CC BY 4.0

Use our Polymarket odds in your site, newsletter, bot, spreadsheet or research. Everything is static JSON served from our CDN, refreshed twice a day for 1675 of the most-traded markets. The only condition: credit PolymarketTrader with a visible link.

Research datasets (CSV and JSON: resolved markets with prices before close, resolution times, Polymarket vs Kalshi gaps) are listed on the free Polymarket data page.

Endpoints

EndpointWhat it returns
/api/v1/odds/index.jsonAll tracked markets: title, category, leading outcome, probability, volume, links
/api/v1/odds/<slug>.jsonOne market: every outcome's probability, 24h change, volume, 30-day history, attribution object
/api/v1/topics/index.jsonAll topics (Bitcoin, Fed, Trump, NFL …) with market counts and links
/api/v1/topics/<topic>.jsonEvery live market on one topic: leading outcome, probability, 24h change, volume, end date
/api/v1/movers.json24-hour biggest movers watchlist
/api/v1/compare/polymarket-kalshi.jsonThe same events priced on Polymarket and Kalshi, with the gap in points (see Polymarket vs Kalshi)
/api/v1/new-markets.jsonMarkets opened on Polymarket in the last 7 days (no recurring or single-game markets)
/api/v1/calendar/<month>-<year>.jsonMonthly calendar: every Polymarket market ending that month with its date, odds or result, e.g. november-2026.json (see the November 2026 calendar)
/api/v1/stats.jsonPolymarket statistics: open events and markets, 24h volume, open interest and category split, with a daily history (see statistics)
/api/v1/accuracy.json · .csvAccuracy study: about 2,000 resolved markets with the price 30, 7 and 1 day before close, the outcome, calibration, horizon and category summaries (see how accurate is Polymarket)
/api/v1/people/index.json · /api/v1/people/<slug>.jsonEvery live market on a public figure (nominations, elections, appointments, Yes/No questions) (see odds on people)
/api/v1/futures/index.json · /api/v1/futures/<slug>.jsonEvery season-long market on a team or player (see sports futures)
/api/v1/games.jsonUpcoming games by league with each side's winner price (see games this week)
/api/v1/crypto-prices.jsonMarket-implied Bitcoin, Ethereum, Solana and XRP prices for the next days, from Polymarket's daily ladders (see crypto price predictions)
/api/v1/midterms-2026.jsonEvery 2026 Senate, House and governor race with each candidate's price and a rating, plus control and seat-count markets (see Senate forecast)
/api/v1/fed-rates.jsonEvery upcoming FOMC meeting's cut/hold/hike odds with the implied change, plus cut-count, year-end rate and first-cut markets (see Fed rate odds)
/api/v1/polymarket-kalshi-gaps.json · .csvEvery outcome priced on both Polymarket and Kalshi with the gap in points (see price gaps)
/api/v1/leaderboard.json · /api/v1/whales.jsonTop traders by profit and volume; every trade of $10,000+ in the last 24 hours (see leaderboard, whale trades)
/api/v1/resolved.jsonMarkets resolved in the last 7 days and what won (see results)
/api/v1/upsets.jsonLong shots priced at 20% or less a week before close that still happened (see biggest upsets)
/api/v1/fees.jsonLive Polymarket fee schedules: taker rate and maker rebate by category (see the fee calculator)
/api/v1/openapi.jsonOpenAPI 3 description of these endpoints

Examples

curl -s https://polymarkettrader.com/api/v1/odds/next-french-presidential-election.json
import requests
data = requests.get("https://polymarkettrader.com/api/v1/odds/next-french-presidential-election.json").json()
for o in data["outcomes"][:3]:
    print(o["name"], round(o["probability"] * 100, 1), "%")
print(data["attribution"]["text"], data["attribution"]["url"])
// JavaScript
const r = await fetch("https://polymarkettrader.com/api/v1/odds/next-french-presidential-election.json");
const d = await r.json();
console.log(d.title, d.outcomes[0].name, d.outcomes[0].probability);
// Google Sheets: IMPORTDATA reads CSV files (not JSON), e.g. the accuracy sample
=IMPORTDATA("https://polymarkettrader.com/api/v1/accuracy.csv")

Live odds are JSON, which IMPORTDATA cannot parse: load them with a short Apps Script: how to get Polymarket odds in Google Sheets.

Embeddable odds cards

Step-by-step guide: how to embed live Polymarket odds. Every market page has a copy-paste embed. The card updates when our page updates. Keep the text link under the iframe — it is the attribution. On a light page add ?theme=light to the card address (?theme=auto follows the reader's setting).

<iframe src="https://polymarkettrader.com/embed/odds/next-french-presidential-election/" width="100%" height="300" style="border:0;max-width:560px" loading="lazy"></iframe>
<p><a href="https://polymarkettrader.com/odds/next-french-presidential-election/">Market odds</a> via <a href="https://polymarkettrader.com/">PolymarketTrader</a></p>

Every topic page has its own card too — the five most-traded markets on the topic, e.g.:

<iframe src="https://polymarkettrader.com/embed/topic/bitcoin/" width="100%" height="280" style="border:0;max-width:560px" loading="lazy" title="Bitcoin odds on Polymarket"></iframe>
<p><a href="https://polymarkettrader.com/odds/bitcoin/">Bitcoin odds</a> via <a href="https://polymarkettrader.com/">PolymarketTrader</a></p>

The biggest-movers widget can be embedded the same way.

Telegram or Discord bot in 20 lines

import requests, time
URL = "https://polymarkettrader.com/api/v1/odds/index.json"
seen = {}
while True:
    for m in requests.get(URL).json()["markets"]:
        prev = seen.get(m["slug"])
        if prev is not None and abs(m["probability"] - prev) >= 0.05:
            print(f"{m['title']}: {prev:.0%} -> {m['probability']:.0%} {m['url']}")
        seen[m["slug"]] = m["probability"]
    time.sleep(6 * 3600)

License and attribution

Data is published under Creative Commons BY 4.0. Credit “PolymarketTrader” and link to the market page or to https://polymarkettrader.com/. Each JSON file includes an attribution object with ready-made HTML. Educational data only — not trading signals or financial advice. Prices come from Polymarket's public APIs; we are not affiliated with Polymarket.

🔔 Telegram watchlist