Free data · polymarket/

Polymarket News Index

What the news says about every outcome of the top Polymarket markets, next to the price: news-implied probabilities, how far the news tracks each market, rule-based alerts with links to the articles. Every hour, with daily, weekly and monthly files since January 2026.

Examples

Ready to paste

A prompt for your coding agent, curl, Python and a spreadsheet formula. Base URL, authentication, updates and terms are on the Data API page.

The examples need a key

Free, by email. Once it is saved in this browser, the examples below carry it.

Get a free key

Paste it into Claude Code, Codex, Cursor or your own agent, then say what you want done with the data. It tells the agent where the files are and how to read them.

You have access to the Polymarket News Index from the Thinking Text free data API: for each of the top ~250 Polymarket markets, what the news says about every outcome, next to the market's price. A language model reads each relevant article (GDELT, thousands of outlets) against the market's outcomes; the reads are aggregated per day and turned into a news-implied probability. Updated every hour (provisional, the day so far) and once a day (final, the day before).

Base URL: https://thinkingtext.com/api/v1/polymarket
Auth: send the header "X-API-Key: YOUR_API_KEY" with every request (or append ?key=YOUR_API_KEY to the URL).
Format (format "pmnews/1"; read it first, it defines every file and field): https://thinkingtext.com/api/v1/polymarket/SCHEMA.md

Start here:
- polymarket/latest.json (cached 30 s): pointers to the current files. "list" = every market with its rankable fields and ready-made top-10 views; "state" = every market's current state; "events" = this release's change events; "top" = daily, weekly, monthly top lists.
- Every path in latest.json and in the list is relative to the base URL and immutable (its content never changes; cache it forever). File names carry a release number (<seq>), so always take paths from latest.json or the list, never build them by hand.
- One market: list.markets[] gives its "key" (pm-<event_id> for polymarket.com, us-<event_id> for Polymarket US), "state" (current values per outcome) and "history" (one row per day and outcome since January 2026).
- One day, all markets: daily/<YYYY-MM-DD>.json, .csv or .parquet (final days only); events/<YYYY-MM-DD>.jsonl; weekly/<monday>.csv, monthly/<YYYY-MM>.csv.
- To follow it live: poll manifest.json a few minutes after :22 each hour (UTC); when "seq" is higher than the last you processed, read files.events.path and the states of the keys in "changed". Releases you skipped are in manifests/<seq>.json.

Key fields per outcome: p_market (market probability), p_news (news-implied probability), gap = log(p_news / p_market), flag (news more positive / aligned / news less positive), news_tilt and news_z_1d / news_z_7d (how the news moved), news_ema14 and news_ema14_scaled (the smoothed news read, the latter on the price's 0-1 scale), news_rank vs market_rank and favorites_agree (do the articles put the outcomes in the market's order), articles, answer_share and prior_share (the model's answer with and without the articles).

How far to trust it: the news tracks some markets closely and others not at all. Per market, use news_price_r (correlation of the smoothed news with the price over the market's history), news_price_r_null (the same against unrelated markets: a reference for chance), same_favorite_share and trust ("tracks well", "tracks moderately", "tracks weakly", "insufficient history"). A gap between news and market is a description of the press, not a forecast; we did not test a trading strategy on it.

Events (alerts) are rule-based: type, outcome, severity, tier (major / normal / all), a pre-worded message and up to three links to the articles behind the move (outlet, url, title, published date, when GDELT first saw it, how many outlets carried it). No article text is published.

Free for research and non-commercial use, with attribution ("Source: Thinking Text, thinkingtext.com"). News analysis for research and entertainment: not a forecast, not a trading signal and not investment advice.

With a key saved in this browser, the examples carry it, ready to paste.

Files · polymarket/

The files

Download or view each file once a key is saved in this browser (get one free). The index page explains the numbers.

Start here

latest: the pointer to the current files (cached 30 seconds). list: every market with its rankable numbers and top-10 views. state: every market now. events: this release's alerts. manifest: what changed, for clients that poll. SCHEMA: every file and field.

latest.jsonmanifest.jsonSCHEMA.md

One market

Pick a market: its current state (every outcome now, provisional for today) and its history (one row per final day and outcome since January 2026: price, news-implied probability, the smoothed news read, ranks, articles).

Days, weeks, months

All markets, one row per outcome: each final day, written once, as CSV and JSON (and .parquet at the same path), with the day's alerts (JSON Lines). Closed weeks and months the same way: weekly/<monday>, monthly/<YYYY-MM>.

A research project provided for information only. It describes what the press is saying; it is not a forecast and not investment advice. No article text, outlet list, question wording, prompt or per-article score is published; the feed links to the articles behind its alerts.