One key, every weather endpoint: forecasts blended from 30+ national models, minute-level nowcasts, air quality, 80 years of history and location search for 235,148 places. Base URL:
https://api.weathermetro.com/v2
Pass your API key with every request as the api_key query parameter. Keys are issued instantly on signup - the free tier needs no card.
curl "https://api.weathermetro.com/v2/status?api_key=YOUR_KEY"
Every response is JSON with the same shape: meta describes the outcome, response carries the payload. Check meta.error_type - if it's absent, the call succeeded.
Successful calls and upstream problems return HTTP 200 with the detail in meta. Account-level failures use real status codes so your HTTP client can act on them: 401 for a missing or invalid key, 403 when your plan doesn't include the endpoint, 429 when the monthly quota is spent.
{ "meta": { "code": 200, "version": "api.v2" },
"response": { … } }
{ "meta": { "code": 200,
"error_type": "call failed",
"error_detail": "Missing required call parameters: lat, lng." } }
| PLAN | CALLS / MONTH | INCLUDES |
|---|---|---|
| Free - $0 | 100,000 | forecast, current, nowcast, air quality, locations · attribution required |
| Starter - $19/mo | 300,000 | + severe-weather alerts · no attribution requirement |
| Business - $79/mo | 700,000 | + history 1940→ · bulk export · priority support |
| Enterprise | agreed | dedicated capacity · uptime commitment · licensed sources |
Exceeding your quota returns HTTP 429 until the monthly reset or an upgrade. Calling an endpoint your plan doesn't include returns HTTP 403 naming the plan required:
{ "meta": { "code": 403,
"error_type": "plan_upgrade_required",
"error_detail": "The /history endpoint is available on the Business plan and above.",
"your_plan": "Free", "required_plan": "Business" } }
Hourly and daily forecast up to 16 days, blended from the best model for the location.
| PARAM | REQUIRED | DESCRIPTION |
|---|---|---|
| lat, lng | yes | Coordinates (WGS84) |
| days | no | Forecast length 1-16 (default 7) |
| hourly | no | Comma list of hourly variables (default: temperature_2m, precipitation, weather_code, wind_speed_10m) |
| daily | no | Include to add a daily block (empty = sensible defaults incl. sunrise/sunset, min/max, precipitation probability) |
| current | no | Include to add current conditions (empty = defaults) |
curl "https://api.weathermetro.com/v2/forecast?lat=51.5&lng=-0.13&daily¤t&api_key=KEY"
Current conditions from the freshest model analysis: temperature, humidity, precipitation, weather code, wind, pressure, cloud cover.
curl "https://api.weathermetro.com/v2/current?lat=5.56&lng=-0.20&api_key=KEY"
Minute-scale precipitation for the next hours. Tiered by best available source: radar optical flow (US & Europe), satellite, or sub-hourly model - the response's source field tells you which.
curl "https://api.weathermetro.com/v2/nowcast?lat=40.64&lng=-73.78&api_key=KEY"
Hourly PM2.5, PM10, ozone, NO₂, SO₂, CO and UV index worldwide (Copernicus CAMS); six pollen species across Europe via the hourly parameter.
curl "https://api.weathermetro.com/v2/airquality?lat=28.61&lng=77.21&api_key=KEY"
Daily historical weather for any coordinate back to 1940 (ERA5 reanalysis).
| PARAM | REQUIRED | DESCRIPTION |
|---|---|---|
| lat, lng | yes | Coordinates |
| start_date, end_date | yes | YYYY-MM-DD (1940-01-01 → ~5 days ago) |
| daily | no | Comma list of daily variables |
curl "https://api.weathermetro.com/v2/history?lat=52.52&lng=13.40&start_date=2000-08-06&end_date=2000-08-06&api_key=KEY"
Active severe-weather alerts for a point. United States today (NWS); European and Canadian feeds are on the roadmap.
curl "https://api.weathermetro.com/v2/alerts?lat=35.22&lng=-97.44&api_key=KEY"
Search-as-you-type over every town and city on Earth, population-ranked. Params: q (required), limit (≤25).
curl "https://api.weathermetro.com/v2/locations?q=kuma&api_key=KEY"
Resolve a WeatherMetro slug to a place record (name, coordinates, country, timezone, population). Param: slug.
Nearest towns to a coordinate - reverse location lookup. Params: lat, lng, limit (≤10).
Health check. Returns {"status":"ok"}. Unmetered.
WeatherMetro is built on open data. Free-tier usage must display "Weather data by WeatherMetro" with a link. Upstream sources (ECMWF, NOAA, DWD, Météo-France, Copernicus, GeoNames and others) are credited in full on our attribution page - link or surface it where practical.
Your key is one signup away - 100,000 calls a month, free.