# OpenWeather

> openweathermap.org | Data APIs; 1 record: free tier, limits, identity cost and evidence.

HTML https://fshy.ajam.dev/p/openweathermap/ | JSON https://fshy.ajam.dev/api/v1/entity/openweathermap.json | how to read a record: https://fshy.ajam.dev/llms-full.txt

## OpenWeather

- `data-apis/openweather` | qualifies | evidence documented | binding request-rate | category weather API | tier free
- needs card no, phone no, ID no, institution no | verified 2026-11-03T00:28:06.704Z (live) | stale on 2026-12-04
- url https://openweathermap.org/full-price
- free tier: Free plan: 60 calls a minute and 1,000,000 calls a month, summed across every key of the account, for the Current weather API, the 3-hourly forecast for 5 days, Weather maps 1.0, Air Pollution and Geocoding; weather API data update up to 10 min. One Call API 3.0 is a separate pay-as-you-call subscription with 1,000 calls a day free. | unit: requests | metered on: request-count | read on: 2026-10-30 | source: [1] | note: No free path to the regularly updated bulk snapshot files: the Free column of Bulk Download (standard presets) is locked, the presets start at the Professional plan (370 GBP a month), and History Bulk is a paid order per location. Free calls go only to api.openweathermap.org. One Call API 3.0 costs 0.0012 GBP a call past 1,000 a day and is opened through a billing form.
- per-object cap: not applicable
- retention: not applicable: the unit is a request | source: [1]
- egress: not applicable | metered: no | source: [1]
- identity: email | detail: The signup form asks for a username, an email, a password, a confirmation of age 16 or over and acceptance of the terms, behind a reCAPTCHA; it has no card and no phone field. The key is sent after the email is verified and activates within up to 2 hours. One Call API 3.0 needs a billing form on top of the account.
- interface: rest
- limits:
  - request-rate (binding): 60 calls a minute on the Free plan; more answers HTTP 429 [2]
  - request-rate (binding): 1,000,000 calls a month on the Free plan, summed across every key and product of the account [1]
  - request-rate (binding): One Call API 3.0: 1,000 calls a day free, then 0.0012 GBP a call, opened through a billing form [3]
- binding note: 60 calls a minute held for a month is more than 1,000,000 calls, so the monthly count is the ceiling a steady poller meets first.
- interface detail: REST over HTTPS with the key in the appid query parameter; free calls go only to api.openweathermap.org, and paid plans are given a different endpoint. bulk.openweathermap.org/sample/ is an open directory of sample files dated 2017 to 2020, among them a city list of 4002796 bytes, that download with no key.
- endpoint: https://api.openweathermap.org/data/2.5/weather
- tooling: any HTTP client; the key goes in the appid query parameter
- composes with: A point-weather source: current conditions and 5-day forecasts per coordinate or city, with one monthly count shared by every key on the account.
- reliability: Past 60 calls a minute on the Free plan the API answers HTTP 429, and the blocking system suspends the account for a couple of hours to several days at random; the key guide asks for the request to be repeated after 10 minutes and says an email warning comes before a suspension. A call with no key answers HTTP 401, and so does a Free key that asks for another plan's product. The 429 answer and the length of a block with a Free key are unverified: behind a sign-up.
- notes: Bulk path: none on the Free plan; Bulk Download presets start at the Professional plan and History Bulk is a paid order per location.
- evidence note: Quota, rate, plan contents and signup fields are read from first-party pages; calls with no key to the API and to a bulk file answered HTTP 401, so the free key was not exercised. A call with a free key would move this to measured.
- evidence:
  - [1] 2026-10-30: the Free plan allows 60 calls a minute and 1,000,000 calls a month | capture: sha256:3b207451bcfac3c08abae5a75106ea3a7f811e591c311b2fda5e3ea56d0af912 | quote: | API calls | 60 calls/minute 1,000,000 calls/month | No API call limits Pay as you call |
  - [1] 2026-10-30: the Free plan costs nothing; One Call is 1,000 calls a day free then 0.0012 GBP a call; Professional is 370 GBP a month | capture: sha256:3b207451bcfac3c08abae5a75106ea3a7f811e591c311b2fda5e3ea56d0af912 | quote: | Price per month | Free | Pay as you call 1,000 API calls per day for free 0.0012 GBP per API call over the daily limit | 30 GBP | 140 GBP | 370 GBP | 1200 GBP |
  - [1] 2026-10-30: Free plan weather data refreshes every 2 hours | capture: sha256:3b207451bcfac3c08abae5a75106ea3a7f811e591c311b2fda5e3ea56d0af912 | quote: | Weather API data update | Every 2 hours | Every 10 min | Every 2 hours | Every 1 hour | Every 10 min | Every 10 min |
  - [1] 2026-10-30: standard bulk presets are given to the Professional and Expert plans | capture: sha256:3b207451bcfac3c08abae5a75106ea3a7f811e591c311b2fda5e3ea56d0af912 | quote: | [Bulk Download (standard presets)](https://openweathermap.org/bulk) | | | | | [by global cities](https://openweathermap.org/bulk) | [by global cities + ZIPs of US, EU, UK](https://openweathermap.org/bulk) |
  - [1] 2026-10-30: the Free column cell of the Bulk Download (standard presets) row carries the lock icon: no bulk download on the Free plan | capture: sha256:b261fc569b133a26ac8ea73737e31cb014e40f5bf4f598e869f8ab4ad060f627 | quote: {\"icon\":\"lock\",\"id\":\"69394c317f010967a71c9b73\"}
  - [1] 2026-10-30:  | capture: sha256:3b207451bcfac3c08abae5a75106ea3a7f811e591c311b2fda5e3ea56d0af912 | quote: All automated self-service plans are provided.
  - [1] 2026-10-30:  | capture: sha256:3b207451bcfac3c08abae5a75106ea3a7f811e591c311b2fda5e3ea56d0af912
  - [1] 2026-10-30:  | capture: sha256:3b207451bcfac3c08abae5a75106ea3a7f811e591c311b2fda5e3ea56d0af912
  - [4] 2026-10-30: the monthly and per-minute counts are summed across every key and product of an account | capture: sha256:764b75e7a4187f3b45dc9dbf07d6c2515739af49fa1619c56a0f1de48fda2ed4 | quote: API call limits are applied at the account level, not per API key or per product.
  - [4] 2026-10-30: the key is issued against an email address | capture: sha256:764b75e7a4187f3b45dc9dbf07d6c2515739af49fa1619c56a0f1de48fda2ed4 | quote: using your email, the API key (APPID) will be sent to you in a confirmation email.
  - [4] 2026-10-30: free calls go only to api.openweathermap.org | capture: sha256:764b75e7a4187f3b45dc9dbf07d6c2515739af49fa1619c56a0f1de48fda2ed4 | quote: the only endpoint for making free API calls is api.openweathermap.org
  - [4] 2026-10-30: an account over its limit is blocked and answers code 429 | capture: sha256:764b75e7a4187f3b45dc9dbf07d6c2515739af49fa1619c56a0f1de48fda2ed4 | quote: "message": "Your account is temporary blocked due to exceeding of requests limitation of your subscription type.
  - [2] 2026-10-30: more than 60 calls a minute on the Free plan answers HTTP 429 | capture: sha256:97d1cd76392710850447cb6bac35c2938c925a776c8cc44677bc4d09166590e1 | quote: If you have a Free plan of Professional subscriptions and make more than 60 API calls per minute
  - [2] 2026-10-30: the block after exceeding the limit lasts a couple of hours to several days | capture: sha256:97d1cd76392710850447cb6bac35c2938c925a776c8cc44677bc4d09166590e1 | quote: Our blocking system suspends your account for a couple of hours to several days
  - [2] 2026-10-30: a new key activates within up to 2 hours | capture: sha256:97d1cd76392710850447cb6bac35c2938c925a776c8cc44677bc4d09166590e1 | quote: Your API key will be activated automatically, up to 2 hours after your successful registration.
  - [2] 2026-10-30: One Call API needs a billing form to subscribe | capture: sha256:97d1cd76392710850447cb6bac35c2938c925a776c8cc44677bc4d09166590e1 | quote: Fill out a short billing form and complete your subscription.
  - [3] 2026-10-30: One Call API 3.0 is a separate subscription with 1,000 calls a day free | capture: sha256:18d468d123bcd45dc854b70d1bc62816e3483c27a90bba8da128d6a1b604550c | quote: This separate subscription includes 1,000 calls/day for free and allows you to pay only for the number of API calls made to this product.
  - [5] 2026-10-30: the signup form takes an email; its fields are username, email, password, age confirmation and terms, behind a reCAPTCHA, with no card or phone field | capture: sha256:d19ec990241258dfce44c4a6b87d8aaff364ac59202a9406e39e0d6cb0762db1 | quote: name="user[email]"
  - [5] 2026-10-30: the signup form asks for an age confirmation of 16 or over | capture: sha256:d19ec990241258dfce44c4a6b87d8aaff364ac59202a9406e39e0d6cb0762db1 | quote: I am 16 years old and over
  - [6] 2026-10-30: the bulk files cover 209,579 cities refreshed hourly, on the plans that include Bulk Download | capture: sha256:2c61e1c2dc74a919d51e749badbee049c9278c8b8f9ae4de19368859bc15b854 | quote: | weather_16.json.gz | 209,579 cities | 1 time/hour(00:20, 01:20, 02:20,...) |
  - probe:https://api.openweathermap.org/data/2.5/weather 2026-10-30: a call with no key answers HTTP 401 | capture: sha256:edf1748d755101b0c38b24b5132495051a6565bea04d48350cdb06100fd68fd0 | quote: {"cod":401, "message": "Invalid API key.
  - probe:https://bulk.openweathermap.org/snapshot/weather_14.json.gz 2026-10-30: a bulk file fetched with no key answers HTTP 401 | capture: sha256:cdee0b4f0401915d83300301514984fef2ddfb91245c52358326f9e11f8707d9 | quote: {"cod":401, "message": "Invalid API key.
  - [7] 2026-10-30: listed under Weather in the public-apis list, with an apiKey | capture: sha256:41a8379b79df9d2cfb3729dbb2cdd9178b7c16b2e845c8529f9143787fb99ff0 | quote: | [OpenWeatherMap](https://openweathermap.org/api) | Weather | `apiKey` | Yes | Unknown |
  - [1] 2026-11-02: the Weather API data update of the Free plan, the first plan column, is Up to 10 min | capture: sha256:6db65ee015b43be8557174519307c4aa1c784f8596bb4495146efdd6bf7d3afd | quote: | Weather API data update | Up to 10 min | Up to 10 min | Up to 10 min | Up to 10 min | Up to 10 min | Up to 10 min |
  - [1] 2026-11-02: the Free column cell of the Bulk Download (standard presets) row carries the lock icon | capture: sha256:6db65ee015b43be8557174519307c4aa1c784f8596bb4495146efdd6bf7d3afd | quote: | [Bulk Download (standard presets)](https://openweathermap.org/bulk) | ![lock](https://openweathermap.org/img/lock_icon.svg) |
  - probe:https://bulk.openweathermap.org/sample/city.list.json.gz 2026-11-02: the sample city list downloaded with no key, HTTP 200, at 4002796 bytes, the size the directory listing gives | capture: sha256:6aa857f38e3f818dd1a9df3d4906b61f335083cb988df9d38b02257804bd7672 | quote: "bytes": 4002796
  - [2] 2026-11-02: the blocking system suspends an account for a couple of hours to several days, at random | capture: sha256:68f095ece169f3690a1cb90bb950d59a895b6994015baf37869e344218308036 | quote: Our blocking system suspends your account for a couple of hours to several days randomly.
  - [1] 2026-11-02: the Free plan allows 60 calls a minute and 1,000,000 calls a month | capture: sha256:6db65ee015b43be8557174519307c4aa1c784f8596bb4495146efdd6bf7d3afd | quote: | API calls | 60 calls/minute<br>1,000,000 calls/month |
  - [2] 2026-11-02: more than 60 calls a minute on the Free plan answers HTTP 429 | capture: sha256:68f095ece169f3690a1cb90bb950d59a895b6994015baf37869e344218308036 | quote: If you have a Free plan of Professional subscriptions and make more than 60 API calls per minute (surpassing the limit of your subscription).
  - [2] 2026-11-02: a Free subscription that requests another plan's data answers HTTP 401 | capture: sha256:68f095ece169f3690a1cb90bb950d59a895b6994015baf37869e344218308036 | quote: You are using a Free subscription and try requesting data available in other subscriptions .
  - [8] 2026-11-02: after a call is refused at the limit, the key guide asks for the request to be repeated in 10 minutes | capture: sha256:6d8383acfe3182719ad4fa4ccf68d36be30804932b3e1cf06b2b53180f8dbf3f | quote: In case you don’t obtain an API response due to hitting the limit of calls, we would ask you to repeat your request in 10 minutes.
  - [8] 2026-11-02: an email notification comes before a key is suspended for exceeding the call limit | capture: sha256:6d8383acfe3182719ad4fa4ccf68d36be30804932b3e1cf06b2b53180f8dbf3f | quote: we won’t immediately suspend your API key if you exceed the call limit. An automatic notification will be sent to your email
  - [6] 2026-11-02: the bulk snapshot files are fetched with the account's appid key | capture: sha256:2c61e1c2dc74a919d51e749badbee049c9278c8b8f9ae4de19368859bc15b854 | quote: https://bulk.openweathermap.org/snapshot/{BULK_FILE_NAME}?appid={API key}
  - [6] 2026-11-02: the bulk page points to bulk.openweathermap.org/sample/ for sample files | capture: sha256:2c61e1c2dc74a919d51e749badbee049c9278c8b8f9ae4de19368859bc15b854 | quote: Samples of bulk files can be downloaded here: [bulk samples](http://bulk.openweathermap.org/sample/).
  - probe:https://bulk.openweathermap.org/sample/ 2026-11-02: bulk.openweathermap.org/sample/ answered HTTP 200 with a directory listing and no key | capture: sha256:af7daf41572db95c26b7c55488b299d650551b266eb806c509953452da35a8cd | quote: "status": 200
  - probe:https://bulk.openweathermap.org/sample/#listing 2026-11-02: bulk.openweathermap.org/sample/ serves an open directory index of sample files | capture: sha256:127dde373ff0ceb557b9138d1628d2f95facc3016b07e51d2c30845563ea60f4 | quote: <h1>Index of /sample/</h1>
  - probe:https://bulk.openweathermap.org/sample/#listing 2026-11-02: the directory lists weather_14.json.gz, a current-weather sample file, last modified 14-Mar-2017 | capture: sha256:127dde373ff0ceb557b9138d1628d2f95facc3016b07e51d2c30845563ea60f4 | quote: <a href="weather_14.json.gz">weather_14.json.gz</a> 14-Mar-2017 12:33 1564623
  - probe:https://bulk.openweathermap.org/sample/#listing 2026-11-02: the directory lists city.list.json.gz, last modified 05-Aug-2020, at 4002796 bytes | capture: sha256:127dde373ff0ceb557b9138d1628d2f95facc3016b07e51d2c30845563ea60f4 | quote: <a href="city.list.json.gz">city.list.json.gz</a> 05-Aug-2020 07:57 4002796
  - probe:https://bulk.openweathermap.org/snapshot/weather_14.json.gz 2026-11-02: a bulk snapshot request with no key answers HTTP 401 | capture: sha256:6e7118406500b06cfbd8dade54c3911b16e7a9ee75cd6080e0abd2b726cc9278 | quote: "status": 401
  - probe:https://bulk.openweathermap.org/snapshot/weather_14.json.gz#body 2026-11-02: the 401 body of a bulk snapshot request with no key says Invalid API key | capture: sha256:cdee0b4f0401915d83300301514984fef2ddfb91245c52358326f9e11f8707d9 | quote: {"cod":401, "message": "Invalid API key.
  - [5] 2026-11-02: the sign-up form takes an email, a username and a password, an age confirmation and an acceptance of the terms, behind a reCAPTCHA, with no card or phone field | capture: sha256:e777851c5c82fa472db853096e3e440e56508579e0c15960556e719bddd5f825 | quote: name="user[email]"
  - [3] 2026-11-02: One Call API 3.0 is a separate subscription with 1,000 calls a day free | capture: sha256:18d468d123bcd45dc854b70d1bc62816e3483c27a90bba8da128d6a1b604550c | quote: This separate subscription includes 1,000 calls/day for free and allows you to pay only for the number of API calls made to this product.
- sources:
  - [1] https://openweathermap.org/full-price
  - [2] https://openweathermap.org/faq
  - [3] https://openweathermap.org/api/one-call-3
  - [4] https://openweathermap.org/appid
  - [5] https://home.openweathermap.org/users/sign_up
  - [6] https://openweathermap.org/bulk
  - [7] https://raw.githubusercontent.com/public-apis/public-apis/master/README.md
  - [8] https://openweathermap.org/appid.md
