How to hit the Open-Meteo API

Open-Meteo is a free weather API: pass a latitude and longitude, list the variables you want, and get JSON back. No key and no signup for non-commercial use. Every example below runs as-is.

Authentication

None for non-commercial use (roughly 10,000 calls/day). Commercial use needs a paid plan and an apikey parameter on the customer- hosts.

Full reference: https://open-meteo.com/en/docs

Current weather

Pick variables with current=. Here, New York in °F. weather_code is a WMO code (3 = overcast).

curl "https://api.open-meteo.com/v1/forecast?latitude=40.71&longitude=-74.01&current=temperature_2m,wind_speed_10m,weather_code&temperature_unit=fahrenheit"
Run in PostTaco
Example response (trimmed)
{
  "latitude": 40.710335,
  "longitude": -73.99308,
  "generationtime_ms": 0.1779794692993164,
  "utc_offset_seconds": 0,
  "timezone": "GMT",
  "timezone_abbreviation": "GMT",
  "elevation": 27,
  "current_units": {
    "time": "iso8601",
    "interval": "seconds",
    "temperature_2m": "°F",
    "wind_speed_10m": "km/h",
    "weather_code": "wmo code"
  },
  "current": {
    "time": "2026-09-23T20:15",
    "interval": 900,
    "temperature_2m": 68.4,
    "wind_speed_10m": 26.5,
    "weather_code": 3
  }
}

Daily forecast

Highs, lows, and rain chance for London over three days. Set timezone so days start at local midnight.

curl "https://api.open-meteo.com/v1/forecast?latitude=51.51&longitude=-0.13&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max&timezone=Europe/London&forecast_days=3"
Run in PostTaco
Example response (trimmed)
{
  "latitude": 51.51147,
  "longitude": -0.13078308,
  "generationtime_ms": 0.10848045349121094,
  "utc_offset_seconds": 3600,
  "timezone": "Europe/London",
  "timezone_abbreviation": "GMT+1",
  "elevation": 29,
  "daily_units": {
    "time": "iso8601",
    "temperature_2m_max": "°C",
    "temperature_2m_min": "°C",
    "precipitation_probability_max": "%"
  },
  "daily": {
    "time": [
      "2026-09-23",
      "2026-09-24",
      "2026-09-25"
    ],
    "temperature_2m_max": [
      23.1,
      22.4,
      24.1
    ],
    "temperature_2m_min": [
      16.3,
      13.7,
      15.2
    ],
    "precipitation_probability_max": [
      0,
      0,
      0
    ]
  }
}

Look up a city's coordinates

The forecast endpoints need lat/long; the geocoding API turns a place name into them.

curl "https://geocoding-api.open-meteo.com/v1/search?name=Boulder&count=2&language=en&format=json"
Run in PostTaco
Example response (trimmed)
{
  "results": [
    {
      "id": 5574991,
      "name": "Boulder",
      "latitude": 40.01499,
      "longitude": -105.27055,
      "elevation": 1624,
      "feature_code": "PPLA2",
      "country_code": "US",
      "timezone": "America/Denver",
      "population": 106803,
      "country": "United States",
      "admin1": "Colorado",
      "admin2": "Boulder"
    },
    {
      "id": 5641473,
      "name": "Boulder",
      "latitude": 46.23659,
      "longitude": -112.12083,
      "elevation": 1496,
      "feature_code": "PPLA2",
      "country_code": "US",
      "timezone": "America/Denver",
      "population": 1207,
      "country": "United States",
      "admin1": "Montana",
      "admin2": "Jefferson"
    }
  ],
  "generationtime_ms": 0.45394897
}

Historical weather

Past weather back to 1940 from the archive API — same parameters, plus start_date and end_date.

curl "https://archive-api.open-meteo.com/v1/archive?latitude=35.68&longitude=139.69&start_date=2025-01-01&end_date=2025-01-03&daily=temperature_2m_max,temperature_2m_min&timezone=Asia/Tokyo"
Run in PostTaco
Example response (trimmed)
{
  "latitude": 35.676624,
  "longitude": 139.69112,
  "generationtime_ms": 0.16248226165771484,
  "utc_offset_seconds": 32400,
  "timezone": "Asia/Tokyo",
  "timezone_abbreviation": "GMT+9",
  "elevation": 38,
  "daily_units": {
    "time": "iso8601",
    "temperature_2m_max": "°C",
    "temperature_2m_min": "°C"
  },
  "daily": {
    "time": [
      "2025-01-01",
      "2025-01-02",
      "2025-01-03"
    ],
    "temperature_2m_max": [
      11.2,
      13.1,
      6.2
    ],
    "temperature_2m_min": [
      4.2,
      1.8,
      2.5
    ]
  }
}

Air quality

US AQI and PM2.5 for Los Angeles from the air-quality API.

curl "https://air-quality-api.open-meteo.com/v1/air-quality?latitude=34.05&longitude=-118.24&current=us_aqi,pm2_5"
Run in PostTaco
Example response (trimmed)
{
  "latitude": 34.1,
  "longitude": -118.2,
  "generationtime_ms": 0.44548511505126953,
  "utc_offset_seconds": 0,
  "timezone": "GMT",
  "timezone_abbreviation": "GMT",
  "elevation": 87,
  "current_units": {
    "time": "iso8601",
    "interval": "seconds",
    "us_aqi": "USAQI",
    "pm2_5": "μg/m³"
  },
  "current": {
    "time": "2026-09-23T20:00",
    "interval": 3600,
    "us_aqi": 73,
    "pm2_5": 20.9
  }
}