Polymarket Weather Markets Scraper - Daily High/Low Temp Odds avatar

Polymarket Weather Markets Scraper - Daily High/Low Temp Odds

Pricing

from $2.92 / 1,000 market returneds

Go to Apify Store
Polymarket Weather Markets Scraper - Daily High/Low Temp Odds

Polymarket Weather Markets Scraper - Daily High/Low Temp Odds

For weather traders and forecasters: every Polymarket daily high/low temperature bracket with Yes price, live bid/ask, volume, city, date, station and result. 3,124 brackets in 51 cities on 2026-09-21. Compare the odds with Kalshi or your forecast in one table.

Pricing

from $2.92 / 1,000 market returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

For weather traders, forecasters and prediction-market researchers: every Polymarket "Highest temperature in

It reads Polymarket's public market-data API (gamma-api.polymarket.com) and its public order-book API (clob.polymarket.com). No login, no API key, no proxy, no wallet.

Export as JSON, CSV or Excel.

Why this Actor

  • Live bid and ask, not the cached ones. Polymarket's market data carries a best bid and ask that can lag the order book. On 2026-09-21 we read both at the same moment for the 22 NYC brackets of September 22: 4 differed, and for "51°F or below" the market data said the Yes ask was 0.02 while the order book said 0.11. This Actor reads the order book in batches of 200 markets and says where each price came from (pricesFrom).
  • Stale markets are left out. Polymarket still lists some events from May 2026 as open, without prices. Events whose end date is more than 3 days past are not requested, and are checked again on arrival: if Polymarket still sends one, it is skipped and counted in a free row instead of being sold as a current market.
  • Brackets as numbers. "56-57°F", "9°C", "8°C or below" and "74°F or higher" become rangeLow / rangeHigh (both included) plus strikeType / floorStrike / capStrike in the same convention as Kalshi, and temperatureUnit says F or C. A bracket that cannot be read is returned as a free row with its text, never guessed.
  • Honest empty results. An unknown city, a stale market, a refusal, a rate limit and a cut-off page each come back as a separate free row that says what happened. Polymarket answers an unknown tag with an empty list (HTTP 200), so before saying "no markets" the Actor checks that the tag still exists.

Input

FieldTypeDefaultWhat it does
citieslist(prefilled: NYC, London)City names as Polymarket writes them. Case, accents and the part in brackets do not matter (Seoul and Incheon both match "Seoul (Incheon)"; New York matches NYC). Empty = every city.
temperatureTypeslistbothhigh (daily highest temperature) and/or low (daily lowest temperature).
marketStatusselectopenopen, or closed (finished, with result), newest first.
closedWithinDaysinteger7 (closed only)With closed: only events that ended in the last N days (1 to 90; at most 7 in monitoring mode).
liveOrderBookbooleantrueRead yesBid / yesAsk of open markets from the order book. No extra charge.
maxResultsinteger1000Stop after this many bracket rows (monitoring off). A free row says what was left out.
monitoringModebooleanfalseReturn only brackets whose displayed Yes price, last trade price, volume, status or result changed since the last run, plus newly listed brackets.
resetMonitoringStatebooleanfalseForget what monitoring remembered, so the next monitoring run returns everything again. Turn it off after one run.

Examples:

{ "cities": ["NYC", "London"] }
{ "cities": ["Chicago", "Miami"], "temperatureTypes": ["high"] }
{ "cities": ["NYC"], "marketStatus": "closed", "closedWithinDays": 30 }

Cities

On 2026-09-21 Polymarket had daily temperature markets for these 51 cities (US cities in °F with 2-degree brackets, the rest in °C with 1-degree brackets, 11 brackets per event): Amsterdam, Ankara, Atlanta, Austin, Beijing, Buenos Aires, Busan, Cape Town, Chengdu, Chicago, Chongqing, Dallas, Denver, Guangzhou, Helsinki, Hong Kong, Houston, Istanbul, Jeddah, Jinan, Karachi, Kuala Lumpur, London, Los Angeles, Lucknow, Madrid, Manila, Mexico City, Miami, Milan, Moscow, Munich, NYC, Panama City, Paris, Qingdao, San Francisco, Sao Paulo, Seattle, Seoul (Incheon), Shanghai, Shenzhen, Singapore, Taipei, Tel Aviv, Tokyo, Toronto, Warsaw, Wellington, Wuhan, Zhengzhou. Polymarket adds and drops cities; an unknown city's free row lists the cities of that moment.

Same city, different station: Polymarket vs Kalshi

If you compare these markets with Kalshi's (our sister Actor Kalshi Weather Markets API returns the same targetDate, strikeType, floorStrike and capStrike columns), check the station first. Stations as named in each market's rules on 2026-09-21:

CityPolymarket station (settlementStationCode)Kalshi station
NYCKLGA LaGuardia AirportKNYC Central Park
ChicagoKORD O'HareKMDW Midway
DallasKDAL Love FieldKDFW Dallas/Fort Worth
DenverKBKF Buckley Space Force BaseKDEN Denver International
HoustonKHOU HobbyKHOU Hobby
MiamiKMIAKMIA
Los AngelesKLAXKLAX
AustinKAUSKAUS
SeattleKSEAKSEA
San FranciscoKSFOKSFO
AtlantaKATLKATL

A bracket such as "72-73°F" means the same range on both, but when the stations differ the two markets settle on different thermometers.

Output

One row per temperature bracket. Example (NYC, highest temperature on 2026-09-22, read 2026-09-21):

{
"city": "NYC",
"marketKind": "high",
"targetDate": "2026-09-22",
"temperatureUnit": "F",
"eventTicker": "highest-temperature-in-nyc-on-september-22-2026",
"marketTicker": "highest-temperature-in-nyc-on-september-22-2026-64-65f",
"yesLabel": "64-65°F",
"strikeType": "between",
"floorStrike": 64,
"capStrike": 65,
"rangeLow": 64,
"rangeHigh": 65,
"marketStatus": "open",
"yesPrice": 0.42,
"yesBid": 0.41,
"yesAsk": 0.43,
"yesMid": 0.42,
"spread": 0.02,
"pricesFrom": "clob-order-book",
"lastPrice": 0.48,
"volumeUsd": 985.03,
"volume24hUsd": 985.03,
"liquidityUsd": 6599.88,
"endDate": "2026-09-22T12:00:00Z",
"result": null,
"settlementStationCode": "KLGA",
"settlementStationName": "LaGuardia Airport",
"resolutionSource": "https://www.weather.gov/wrh/timeseries?site=klga",
"scrapedAt": "2026-09-21T07:26:31.180Z"
}
ColumnMeaning
city, marketKind, targetDateThe city as Polymarket names it, high or low, and the date the temperature is measured.
inputCityThe city name you typed that matched this row (null when no city was given).
yesLabel, rangeLow, rangeHigh, temperatureUnitThe bracket as Polymarket shows it and its bounds in whole degrees, both included. rangeLow is null for "or below" brackets and rangeHigh for "or higher" brackets. Polymarket resolves to whole degrees.
strikeType, floorStrike, capStrikeThe same bracket in Kalshi's convention: between = from floorStrike to capStrike, both included; less = below capStrike ("8°C or below" has capStrike 9); greater = above floorStrike ("74°F or higher" has floorStrike 73).
yesPrice, noPriceThe price Polymarket displays for Yes and No (USD per share; a share pays $1.00).
yesBid, yesAskBest price someone is bidding for Yes and best price someone is asking. null means no order on that side: Polymarket reports an empty side as 0 (no bid) or 1 (no ask), and neither is returned as a price. Always null for closed markets, whose last order book no longer means anything.
yesMid, spreadFrom yesBid and yesAsk, only when both exist and the market is open; otherwise null.
pricesFromclob-order-book (read from the order book during this run) or gamma-market-data (Polymarket's market data, which can lag; used when liveOrderBook is off or when the order book could not be read). null for closed markets.
lastPrice, priceChange1h, priceChange24hLast trade price and Polymarket's 1-hour and 24-hour price change.
volumeUsd, volume24hUsd, liquidityUsdIn USD. null means Polymarket sent no value; on 2026-09-21 this was the case for 1,088 of 3,124 brackets, and 1,087 of those had no trade yet.
endDatePolymarket's end date for the market (noon UTC on the target date). Trading and resolution can continue after it; the rules say the market resolves after the day's data is published.
result, resolutionStatusFor closed markets: yes or no (from the final 1/0 prices) and Polymarket's resolution status.
settlementStationCode, settlementStationName, resolutionSourceThe station named in the market rules (ICAO code when the rules link to one) and the link the rules use for resolution. Hong Kong resolves on the Hong Kong Observatory, which has no ICAO code.
eventId, eventTicker, seriesTicker, marketId, marketTicker, conditionId, yesTokenIdPolymarket identifiers (slugs, condition id and the Yes token id used by the order book).
monitorStatus, changedFieldsMonitoring mode only: first-check (first time the bracket is returned, including brackets left out of an earlier run by the maximum total charge), changed (with the columns that changed) or new-market (listed after an earlier run).

Rows whose status is not ok are free and explain themselves in note: unknown-city, stale-markets-skipped, unreadable-strike, live-prices-unavailable, no-markets, duplicate, blocked, unreadable, refused, incomplete, not-checked, budget-reached, no-change-since-last-run, invalid-input.

Pricing

  • $4.00 per 1,000 market rows (one row per temperature bracket).
  • Monitoring mode adds $0.30 per 1,000 event checks: each event read (one city, one date, highest or lowest) costs one check, whether or not anything changed. Stale events and failed requests are not charged.
  • Live order-book prices cost nothing extra. Free rows (the ones that explain why something was not returned) cost nothing.
  • The run stops before it would go over the maximum total charge you set, and a free row says what was left out.

Monitoring mode

Turn on monitoringMode and run the Actor on a schedule (for example every 10 minutes). The first run returns every bracket once as a baseline. Later runs return only brackets whose displayed Yes price, last trade price, volume, status or result changed, plus brackets listed since, with changedFields naming what moved. The comparison uses Polymarket's market data only, so a moment when the order book cannot be read never counts as a change. A run with no change returns one free no-change-since-last-run row. Markets are remembered per event in a named key-value store; brackets you did not receive because the maximum total charge was reached are not remembered, so the next run returns them if they still differ. Events that ended more than 10 days ago are forgotten. Do not put the same city in two schedules that can run at the same time (Apify's key-value store has no atomic update).

Notes and limits

  • Polymarket returns at most 100 events per page (about 5 MB), so reading every city takes 3 pages; the Actor waits 0.2 s between requests, and a rate limit (HTTP 429) is waited out and retried, then reported as a free blocked row if it persists.
  • open covers events Polymarket lists as open with an end date no more than 3 days past. closed reads events that ended within closedWithinDays, newest first.
  • This Actor returns market data. It does not place orders and is not trading advice. Polymarket may restrict trading in some countries; reading its public data does not change that.