{"rid":"data-apis/tomorrow-io","card":{"rid":"data-apis/tomorrow-io","eid":"tomorrow","topic":"data-apis","slug":"tomorrow-io","provider":"Tomorrow.io","url":"https://www.tomorrow.io/weather-api/","domain":"tomorrow.io","category":"weather API","tier":"free","verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","self_hosted":0,"confidence":"documented","binding":"request-rate","identity_kind":"email","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-11-03T00:28:32.383Z","verified_basis":"live","checked_on":"2026-11-03","stale_on":"2026-12-04","n_evidence":58,"usd_month":null,"usd_per_tb_month":null,"summary":"Free plan: 500 requests a day, 25 an hour and 3 a second, with a 5-day forecast, 24 hours of historical weather, core data layers, 1 automatically monitored ...","duplicate_of":null,"n_unknown":4,"free_unit":"requests"},"record":{"topic":"data-apis","slug":"tomorrow-io","provider":"Tomorrow.io","url":"https://www.tomorrow.io/weather-api/","category":"weather API","tier":"free","free_tier":{"stated":"Free plan: 500 requests a day, 25 an hour and 3 a second, with a 5-day forecast, 24 hours of historical weather, core data layers, 1 automatically monitored location and 1 weather-based alert.","unit":"requests","metered_on":"request-count","source_url":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage","read_on":"2026-10-31","notes":"Each API key has its own rate limits and token balance. No bulk path on the Free plan: history beyond 24 hours is the Historical API, which runs on a token balance and returns at most 31 days a call."},"per_object_cap":{"stated":"not applicable","bytes":null,"notes":""},"retention":{"stated":"not applicable: the unit is a request","days":null,"notes":"","source_url":"https://www.tomorrow.io/weather-api/"},"egress":{"terms":"not applicable","metered":false,"free_allowance":null,"price_per_tb":null,"source_url":"https://www.tomorrow.io/weather-api/"},"interface":["rest"],"interface_detail":"REST over HTTPS with the key in the apikey query parameter or header; JSON answers. Tomorrow.io lists the Timeline and Maps APIs as keyless (beta), rate-limited by IP address and meant for testing and evaluation; every other endpoint needs a key. A hosted MCP server at /v4/weather-intelligence/mcp documents no authentication.","endpoint":"https://api.tomorrow.io/v4/weather/realtime","tooling":"any HTTP client; the key goes in the apikey query parameter or header. With no key, GET /v4/timelines in the lat,lon query form answers HTTP 200 for core fields, and the answers that carry rate-limit headers list 2 requests a second, 50 an hour and 200 a day; a burst of calls draws a Too Many Calls error with a Retry-After header; a map tile answers HTTP 200; a pollen field (pollenTree) is rejected as an unknown field, and the realtime endpoint needs the key.","chaining":"A small keyed forecast source: 5-day forecasts and realtime values per location at 500 requests a day, with no history beyond 24 hours on the Free plan.","limits":[{"kind":"request-rate","value":"500 requests a day","source":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage"},{"kind":"request-rate","value":"25 requests an hour","source":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage"},{"kind":"request-rate","value":"3 requests a second","source":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage"}],"binding":"request-rate","binding_note":"25 an hour over 24 hours is 600, above the 500 a day, so the daily cap binds a steady poller and the hourly cap binds a burst.","identity_cost":{"kind":"email","detail":"The Create Account page offers SSO, Google or GitHub sign-up, or its own form behind a reCAPTCHA: an email address and a password, each marked required, and a terms checkbox. No phone number is asked by default: a link on the form reveals a phone field labelled optional, and the page's script has a phone-verification step with a skip button. A Tomorrow.io landing page says no credit card is required. Steps after the form, such as email confirmation and onboarding, are unverified: behind a sign-up. A keyed call needs the account's key; GET /v4/timelines in the lat,lon query form and map tiles answer with no account.","country":null},"reliability_note":"Over the limits the API answers HTTP 429; a realtime call with no key answered HTTP 401 with code 401001, where the docs name 403, although the LLM docs page says the API can be used with no key.","confidence":"documented","confidence_note":"Free-plan limits are read from a Tomorrow.io FAQ page (the pricing page answered 404); plan contents, storage terms and the sign-up routes are first-party; a call with no key answered HTTP 401, so the free key was not exercised.","evidence":[{"url":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage","date":"2026-10-31","proved":"the list that follows is the Free plan's rate limits","capture":"sha256:0ae21866172082083c37d7c9c508a796311c830992ef4b5f8cf13170507fa9c3","quote":"Here are the rate limits for Tomorrow.io’s free plan:"},{"url":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage","date":"2026-10-31","proved":"the Free plan allows 500 requests a day","capture":"sha256:0ae21866172082083c37d7c9c508a796311c830992ef4b5f8cf13170507fa9c3","quote":"500 requests per day,"},{"url":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage","date":"2026-10-31","proved":"the Free plan allows 25 requests an hour","capture":"sha256:0ae21866172082083c37d7c9c508a796311c830992ef4b5f8cf13170507fa9c3","quote":"25 requests per hour,"},{"url":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-monitor-my-weather-api-usage","date":"2026-10-31","proved":"the Free plan allows 3 requests a second","capture":"sha256:0ae21866172082083c37d7c9c508a796311c830992ef4b5f8cf13170507fa9c3","quote":"3 requests per second."},{"url":"https://docs.tomorrow.io/reference/rate-limiting","date":"2026-10-31","proved":"over the limits the API answers 429","capture":"sha256:e72548046e9b34b666c0c1c7d9f27d0bb8079c62ec332cc5fccd516ab7e791d5","quote":"When surpassing your rate-limiting you will get a response with a 429 error code."},{"url":"https://docs.tomorrow.io/reference/rate-limiting","date":"2026-10-31","proved":"each API key has its own limits and tokens","capture":"sha256:e72548046e9b34b666c0c1c7d9f27d0bb8079c62ec332cc5fccd516ab7e791d5","quote":"In case you have multiple API keys, each one is assigned with its own rate limits and tokens."},{"url":"https://www.tomorrow.io/weather-api/","date":"2026-10-31","proved":"the Free plan forecasts 5 days","capture":"sha256:70d34e25d8de3736c64fcac827aef0fd94f9ce7caf3564d65bc75a8f5de330a6","quote":"- 5-Day Forecast"},{"url":"https://www.tomorrow.io/weather-api/","date":"2026-10-31","proved":"the Free plan reaches 24 hours of history","capture":"sha256:70d34e25d8de3736c64fcac827aef0fd94f9ce7caf3564d65bc75a8f5de330a6","quote":"- 24 hours Historical Weather Data"},{"url":"https://www.tomorrow.io/weather-api/","date":"2026-10-31","proved":"the Free plan monitors 1 location","capture":"sha256:70d34e25d8de3736c64fcac827aef0fd94f9ce7caf3564d65bc75a8f5de330a6","quote":"- 1 Automatically monitored Location"},{"url":"https://www.tomorrow.io/weather-api/","date":"2026-10-31","proved":"the Free plan has 1 alert","capture":"sha256:70d34e25d8de3736c64fcac827aef0fd94f9ce7caf3564d65bc75a8f5de330a6","quote":"- 1 Weather-Based Alert"},{"url":"https://docs.tomorrow.io/reference/historical-overview","date":"2026-10-31","proved":"the Historical API runs on a token balance","capture":"sha256:fb392f4b76a8ee676752540f74b8fb3110e56de94006a68ecaa648e927995220","quote":"Each request deducts tokens from the 'historical' tokens balance."},{"url":"https://docs.tomorrow.io/reference/historical-overview","date":"2026-10-31","proved":"a Historical API call returns at most 31 days","capture":"sha256:fb392f4b76a8ee676752540f74b8fb3110e56de94006a68ecaa648e927995220","quote":"Timerange is limited to up to 31 days per API call."},{"url":"https://www.tomorrow.io/legal/terms-of-service","date":"2026-10-31","proved":"storing the unaltered data feed needs an order","capture":"sha256:9d85c56447b4550ffeb919cb6c74ffefdb0da602c71afae9522e4340e01ed933","quote":null},{"url":"https://www.tomorrow.io/legal/terms-of-service","date":"2026-10-31","proved":null,"capture":"sha256:9d85c56447b4550ffeb919cb6c74ffefdb0da602c71afae9522e4340e01ed933","quote":"shall prominently display the message “Powered by Tomorrow.io” in a legible manner near such data or any information derived from it."},{"url":"https://app.tomorrow.io/signup","date":"2026-10-31","proved":"sign-up is by SSO, Google, GitHub or the page's own form","capture":"sha256:82ec6a07c11d789b337ac8712c4eefc288fb782b597d7d47e1525c285c3f97ca","quote":"[With SSO](https://app.tomorrow.io/sso-discover?planid=648b3f22ef567da8b7fb4599)With Google[With GitHub](https://api.tomorrow.io/v4/auth/github/sign-up)"},{"url":"https://docs.tomorrow.io/reference/api-authentication","date":"2026-10-31","proved":"every call needs a key","capture":"sha256:c00c622ea53e8a66e9d52e129906dff2ab7745095d42e66635d4c9a321f3b70f","quote":"Be sure to include a valid API key with every request in order to access the API."},{"url":"https://docs.tomorrow.io/reference/api-authentication","date":"2026-10-31","proved":"the key goes in a query parameter or a header","capture":"sha256:c00c622ea53e8a66e9d52e129906dff2ab7745095d42e66635d4c9a321f3b70f","quote":"you can either add the key value in query parameters or in the request header, like so:"},{"url":"https://docs.tomorrow.io/reference/api-authentication","date":"2026-10-31","proved":"the docs name 403 for an unauthenticated call","capture":"sha256:c00c622ea53e8a66e9d52e129906dff2ab7745095d42e66635d4c9a321f3b70f","quote":"Requests not properly authenticated will return a [403 error code](/reference#errors)."},{"url":"https://www.tomorrow.io/weather-api/","date":"2026-10-31","proved":"the Free plan includes the core data layers","capture":"sha256:70d34e25d8de3736c64fcac827aef0fd94f9ce7caf3564d65bc75a8f5de330a6","quote":"- Core Weather Data Layers"},{"url":"https://www.tomorrow.io/a/faq/weather-api/what-is-rate-limiting-in-the-context-of-a-weather-api","date":"2026-10-31","proved":"a second Tomorrow.io FAQ page gives the same free-plan limits","capture":"sha256:d7fc8f97480aed7d23ba623a10932c281855fd4b9109b38563dbd21b5847da1c","quote":"Specifically, the free plan includes: 500 requests per day, 25 requests per hour, 3 requests per second."},{"url":"https://info.tomorrow.io/weather-api-ad-1","date":"2026-10-31","proved":"a Tomorrow.io landing page says sign-up needs no credit card","capture":"sha256:d07b1fd324904c65c86d0ad21ae6ca4a6560ca83d3822de2f79bda36fb861592","quote":"Sign up for our free trial and start building in 2 clicks * no credit card required"},{"url":"https://www.tomorrow.io/a/faq/weather-api/how-can-i-use-a-weather-api-in-my-application","date":"2026-10-31","proved":"the key comes from an account opened with basic login information","capture":"sha256:4841eb3570363615e5e694dccd3e83198357b4516674482eb22f9d8f32f56c72","quote":"First, simply register on [Tomorrow.io’s sign-up page](https://app.tomorrow.io/signup?planid=60d46beae90c3b3549a59ff3) and fill out your basic login information."},{"url":"https://app.tomorrow.io/signup","date":"2026-10-31","proved":"the rendered sign-up form is behind a reCAPTCHA","capture":"sha256:f677e93b1de7948fc0f96b6dc4a6eea0f1bd16d70e1c213f3cee5e2c8a27b065","quote":"Recaptcha requires verification."},{"url":"https://llm-docs.tomorrow.io/","date":"2026-10-31","proved":"the LLM docs page states use with no key; the realtime probe with no key answered 401, so no keyless path was confirmed","capture":"sha256:896901ec92f6a334ac65fe10af5e7a15221a40757528336a9bc00c9ac0757242","quote":"You can start using Tomorrow.io’s LLM-optimized Weather API right away - no API key required."},{"url":"probe:https://api.tomorrow.io/v4/weather/realtime","date":"2026-10-31","proved":"a call with no key answers HTTP 401","capture":"sha256:0ed7a05176da43ff182b26bd4f56d3d48d823163ce2b80996cf0d1283b197cd7","quote":"{\"code\":401001,\"type\":\"Invalid Auth\",\"message\":\"The method requires authentication but it was not presented or is invalid.\"}"},{"url":"https://free-for.dev/","date":"2026-10-31","proved":"listed on free-for.dev as a free weather API plan","capture":"sha256:a3bac496b7bbe9c3e469cc7ab5cda64a86be6a5eed50a77839a6822b0e6cab30","quote":"- [Tomorrow.io Weather API](https://www.tomorrow.io/weather-api/) - Offers free plan of weather API."},{"url":"https://raw.githubusercontent.com/public-apis/public-apis/master/README.md","date":"2026-10-31","proved":"listed under Weather in the public-apis list with an apiKey","capture":"sha256:7c0d65a75227ba9bd3f8576a39262f7af32373d3eca4190cd91e66329ca1d059","quote":"| [Tomorrow](https://docs.tomorrow.io) | Weather API Powered by Proprietary Technology | `apiKey` | Yes | Unknown |"},{"url":"https://app.tomorrow.io/tomorrow.02c48c8c18b1cb425b03.js","date":"2026-11-02","proved":"the phone field that the form's phone link reveals is labelled optional","capture":"sha256:85af10f0100e6b93d764bbd9243856578f88e7d7ecf9486a5ed8c8fe7c641634","quote":"\"main.auth.signUpPage.signUpForm.phoneNumberOptional\",{fallback:\"Phone Number (optional)\"}"},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"a Timelines call with no key answered with limit headers of 2 a second, 50 an hour and 200 a day","capture":"sha256:bc969445e09637458a371e4380d6152c9f783e382779c6b6638099d509fb37b1","quote":"\"x-ratelimit-limit-second\": \"2\",\n    \"x-ratelimit-limit-hour\": \"50\",\n    \"x-ratelimit-limit-day\": \"200\","},{"url":"https://support.tomorrow.io/hc/en-us/articles/31227543026708-How-to-Use-the-Tomorrow-io-API","date":"2026-11-02","proved":"the keyless mode is limited to the Timeline and Maps endpoints","capture":"sha256:eceae321f77a57e3ea3852f760d17708609238fb61dd3f61437343a3cc205cf9","quote":"Supported endpoints are limited to Timeline and Maps."},{"url":"https://support.tomorrow.io/hc/en-us/articles/20273728362644-Free-API-Plan-Rate-Limits","date":"2026-11-02","proved":"the Free API plan allows 25 requests an hour","capture":"sha256:90d76520136bb486e65fe0090cd7fb5393180046fc0b4418b8dff19c8a22b4f8","quote":"| Hourly Limit | 25 requests | Resets at the top of each hour |"},{"url":"https://support.tomorrow.io/hc/en-us/articles/20273728362644-Free-API-Plan-Rate-Limits","date":"2026-11-02","proved":"the Free API plan allows 3 requests a second","capture":"sha256:90d76520136bb486e65fe0090cd7fb5393180046fc0b4418b8dff19c8a22b4f8","quote":"| Per-Second Limit | 3 requests/second | Managed automatically |"},{"url":"https://www.tomorrow.io/weather-api/","date":"2026-11-02","proved":"the Free plan lists a 5-day forecast, 24 hours of history, core layers, 1 monitored location and 1 alert","capture":"sha256:70d34e25d8de3736c64fcac827aef0fd94f9ce7caf3564d65bc75a8f5de330a6","quote":"- 5-Day Forecast\n- Weather Timelines and Trendlines\n- Weather API Access\n- Core Weather Data Layers\n- Industry-Based Insights Templates\n- 24 hours Historical Weather Data\n- 1 Automatically monitored Location\n- 1 Weather-Based Alert"},{"url":"https://app.tomorrow.io/signup","date":"2026-11-02","proved":"the rendered Create Account form has an email field marked required","capture":"sha256:b01bef3e434952db7509343e0f3bc07a57ece4ef36da9452c9b389c0570e59ae","quote":"type=\"text\" name=\"email\" placeholder=\"Email Address *\" maxlength=\"200\""},{"url":"https://app.tomorrow.io/signup","date":"2026-11-02","proved":"the rendered form has a password field marked required","capture":"sha256:b01bef3e434952db7509343e0f3bc07a57ece4ef36da9452c9b389c0570e59ae","quote":"type=\"password\" name=\"password\" placeholder=\"Password *\" maxlength=\"200\""},{"url":"https://app.tomorrow.io/signup","date":"2026-11-02","proved":"the form has no phone input; a link reveals a phone field","capture":"sha256:b01bef3e434952db7509343e0f3bc07a57ece4ef36da9452c9b389c0570e59ae","quote":"aria-label=\"Show the phone field\" id=\"sms-sign-up-link\""},{"url":"https://app.tomorrow.io/signup","date":"2026-11-02","proved":"the sign-up page loads the reCAPTCHA script","capture":"sha256:b01bef3e434952db7509343e0f3bc07a57ece4ef36da9452c9b389c0570e59ae","quote":"src=\"https://www.google.com/recaptcha/api.js?render=6Lf0p-EZAAAAAGAQLjVUYoSiBglIMULvAKyJSaiI\""},{"url":"https://app.tomorrow.io/tomorrow.02c48c8c18b1cb425b03.js","date":"2026-11-02","proved":"the script's phone-verification step has a Skip for now button","capture":"sha256:85af10f0100e6b93d764bbd9243856578f88e7d7ecf9486a5ed8c8fe7c641634","quote":"main.auth.verifyPhonePage.skipForNow\",{fallback:\"Skip for now\"}"},{"url":"https://info.tomorrow.io/weather-api-ad-1","date":"2026-11-02","proved":"a Tomorrow.io landing page still says sign-up needs no credit card","capture":"sha256:712533f216441e11e2828390a336f9a98e9b7aff981e15ee942ed2ebcff7ce51","quote":"Sign up for our free trial and start building in 2 clicks * no credit card required"},{"url":"https://support.tomorrow.io/hc/en-us/articles/31227543026708-How-to-Use-the-Tomorrow-io-API","date":"2026-11-02","proved":"keyless requests are rate-limited by IP address","capture":"sha256:eceae321f77a57e3ea3852f760d17708609238fb61dd3f61437343a3cc205cf9","quote":"Requests are validated and rate-limited automatically based on IP address."},{"url":"https://support.tomorrow.io/hc/en-us/articles/31227543026708-How-to-Use-the-Tomorrow-io-API","date":"2026-11-02","proved":"keyless mode is for testing and evaluation only","capture":"sha256:eceae321f77a57e3ea3852f760d17708609238fb61dd3f61437343a3cc205cf9","quote":"Keyless mode is designed for testing and evaluation only."},{"url":"https://support.tomorrow.io/hc/en-us/articles/31227543026708-How-to-Use-the-Tomorrow-io-API","date":"2026-11-02","proved":"every endpoint other than Timeline and Maps needs an API key","capture":"sha256:eceae321f77a57e3ea3852f760d17708609238fb61dd3f61437343a3cc205cf9","quote":"All other endpoints require standard authentication via an API key."},{"url":"https://docs.tomorrow.io/reference/mcp-app","date":"2026-11-02","proved":"the MCP App server documents no authentication and no account","capture":"sha256:04ab79d2e64c5f343bb00f041912425062d88f702158d3b66ee3df9d6ff17582","quote":"Authentication: None. You don't need a Tomorrow\\.io account or an API key."},{"url":"https://llm-docs.tomorrow.io/","date":"2026-11-02","proved":"the LLM docs home page still says no API key is required","capture":"sha256:896901ec92f6a334ac65fe10af5e7a15221a40757528336a9bc00c9ac0757242","quote":"You can start using Tomorrow.io’s LLM-optimized Weather API right away - no API key required."},{"url":"https://llm-docs.tomorrow.io/weather-timelines","date":"2026-11-02","proved":"the LLM docs page for Timelines documents POST with the API key as authentication","capture":"sha256:2c15350a6ea7b3283b9c54e865ec77bf664dce3302af270714467be942855802","quote":"Method: POST |** Authentication:** API Key (query parameter)"},{"url":"https://docs.tomorrow.io/reference/api-authentication","date":"2026-11-02","proved":"the reference docs say every request needs a key","capture":"sha256:c00c622ea53e8a66e9d52e129906dff2ab7745095d42e66635d4c9a321f3b70f","quote":"Be sure to include a valid API key with every request in order to access the API."},{"url":"https://docs.tomorrow.io/reference/api-authentication","date":"2026-11-02","proved":"the key goes in a query parameter or a header","capture":"sha256:c00c622ea53e8a66e9d52e129906dff2ab7745095d42e66635d4c9a321f3b70f","quote":"you can either add the key value in query parameters or in the request header, like so:"},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"a Timelines call in the lat,lon query form with no key answered HTTP 200","capture":"sha256:bc969445e09637458a371e4380d6152c9f783e382779c6b6638099d509fb37b1","quote":"\"status\": 200"},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"the keyless Timelines answer carries hourly temperature intervals","capture":"sha256:a10af43288c851d33f82acd68337bdc1e92f2d60e0bd00f7c2257235d9b4bef3","quote":"{\"data\":{\"timelines\":[{\"timestep\":\"1h\",\"endTime\":\"2026-11-07T15:00:00Z\",\"startTime\":\"2026-11-02T15:00:00Z\",\"intervals\":[{\"startTime\":\"2026-11-02T15:00:00Z\",\"values\":{\"temperature\":16.89}}"},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"a second keyless Timelines call listed the same hourly and daily limits","capture":"sha256:ca8ecf61aad7b98b1dfb90df473621a7cd4005a77a26614036b5266fa3fe6d9b","quote":"\"x-ratelimit-limit-hour\": \"50\",\n    \"x-ratelimit-limit-day\": \"200\","},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"a keyless Timelines call for three core fields answered with their values","capture":"sha256:8b92c533bde93e865721e4b698bafdcd7ba4c5f11a6f7d09a4d41c37ef0b8bfd","quote":"\"values\":{\"humidity\":87,\"precipitationIntensity\":0,\"windSpeed\":1.3}"},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"a keyless Timelines call for a pollen field answered a 400 body that names the field unknown","capture":"sha256:025d356a6aae0222871ca9e8094f2bc8bd803d5854443893d8e86db2d718e31b","quote":"'fields' - unknown field pollenTree"},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"a burst of keyless Timelines calls drew a Too Many Calls error body","capture":"sha256:14669f206ebe449d38a79a5ed56397371886ccdcc8ec982b649d195f7e848672","quote":"{\"code\":429001,\"type\":\"Too Many Calls\",\"message\":\"The request limit for this resource has been reached for the current rate limit window. Wait and retry the operation, or examine your API request volume.\"}"},{"url":"probe:https://api.tomorrow.io/v4/timelines","date":"2026-11-02","proved":"the keyless Too Many Calls answer carries a Retry-After header","capture":"sha256:6d3ac087b3d9f2a5e26dfa33b066101b471b06dc92b04faaa0da925769ff78aa","quote":"\"retry-after\": \"1\""},{"url":"probe:https://api.tomorrow.io/v4/weather/realtime","date":"2026-11-02","proved":"a realtime call with no key answers HTTP 401","capture":"sha256:0ed7a05176da43ff182b26bd4f56d3d48d823163ce2b80996cf0d1283b197cd7","quote":"{\"code\":401001,\"type\":\"Invalid Auth\",\"message\":\"The method requires authentication but it was not presented or is invalid.\"}"},{"url":"probe:https://api.tomorrow.io/v4/map/tile/3/4/2/precipitationIntensity/now.png","date":"2026-11-02","proved":"a map tile call with no key answered HTTP 200 with a PNG image","capture":"sha256:3baf89dcbd477cd140e666ceef83d91fcd6d728bd766de2173b8b1b6620e97f3","quote":"\"status\": 200,\n  \"bytes\": 31962,\n  \"sha256\": \"c7b1b9f57fbfbc4d5d81edcb63749d9ebdbd4a0c8af71c6e4cd5683d4f549cda\",\n  \"content_type\": \"image/png\","},{"url":"probe:https://api.tomorrow.io/v4/weather-intelligence/mcp","date":"2026-11-02","proved":"the MCP endpoint answered a GET with HTTP 405 and a JSON-RPC error, not an authentication error","capture":"sha256:e3a1d3d6919f99e130e8871b2f924c2fd4b2254343a27bbc75528a4debdd2aca","quote":"{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32000,\"message\":\"Method not allowed. Use POST.\"},\"id\":null}"},{"url":"https://support.tomorrow.io/hc/en-us/articles/20273728362644-Free-API-Plan-Rate-Limits","date":"2026-11-02","proved":"the Free API plan allows 500 requests a day","capture":"sha256:90d76520136bb486e65fe0090cd7fb5393180046fc0b4418b8dff19c8a22b4f8","quote":"| Daily Limit | 500 requests | Resets at 00:00 UTC daily |"}],"verdict":"qualifies-with-caveat","verified_at":"2026-11-03T00:28:32.383Z","notes":"Bulk path: none on Free; the Historical API is token-based and returns 31 days a call at most."},"claims":[{"path":"$.free_tier","kind":"has-free-tier","num":1,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.free_tier.stated","kind":"free-quota","num":500,"unit":"requests","per":"day","currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:request-rate","num":500,"unit":"requests","per":"day","currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:request-rate","num":25,"unit":"requests","per":"hour","currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[2].value","kind":"limit:request-rate","num":3,"unit":"requests","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.egress.terms","not-applicable"],["$.evidence[12].quote","withheld"],["$.evidence[13].proved","withheld"],["$.per_object_cap.stated","not-applicable"]],"history":[],"drift":[]}