ShareYourGroupShareYourGroupFree Public APIs

Open-Meteo weather

Current weather and forecasts for any latitude and longitude.

Address that will be called:

What it gives you

Current weather and forecasts for any latitude and longitude. The example asks for the current temperature at 2 metres and the wind speed at 10 metres, for Ludhiana.

Terms and limits

The free API is for non-commercial use, under 10,000 calls a day, 5,000 an hour and 600 a minute, with no uptime guarantee; data is under the CC BY 4.0 licence, so give credit. A commercial use needs the paid customer API with a key (Open-Meteo's terms and pricing pages).

_Read on 14 November 2026 from open-meteo.com/en/terms and open-meteo.com/en/pricing._

Good habits

  1. Cache answers that do not change often.
  2. Handle errors: the service may be busy or down.
  3. Give credit where the terms ask for it.
  4. Do not put secret keys into a web page: this API needs none, but many others do.

The same request in code

curl

curl -L "https://api.open-meteo.com/v1/forecast?latitude=30.9&longitude=75.85&current=temperature_2m,wind_speed_10m"

Python

import json, urllib.request

with urllib.request.urlopen("https://api.open-meteo.com/v1/forecast?latitude=30.9&longitude=75.85&current=temperature_2m,wind_speed_10m") as r:
    data = json.load(r)
print(data['current'])

JavaScript (browser or Node.js)

const res = await fetch("https://api.open-meteo.com/v1/forecast?latitude=30.9&longitude=75.85&current=temperature_2m,wind_speed_10m");
const data = await res.json();
console.log(data.current);

A real answer

This is what the example request above returned when we called it on 14 November 2026 with the default values (it took about 0.7 s from our computer). Values such as times and temperatures change.

{
  "latitude": 30.896309,
  "longitude": 75.83432,
  "generationtime_ms": 0.04875659942626953,
  "utc_offset_seconds": 0,
  "timezone": "GMT",
  "timezone_abbreviation": "GMT",
  "elevation": 250.0,
  "current_units": {
    "time": "iso8601",
    "interval": "seconds",
    "temperature_2m": "°C",
    "wind_speed_10m": "km/h"
  },
  "current": {
    "time": "2026-11-14T01:30",
    "interval": 900,
    "temperature_2m": 19.0,
    "wind_speed_10m": 1.8
  }
}

This is an independent directory. It is not connected with any of the services listed. Each address was called on 14 November 2026 with curl, Python, Node.js and Chrome (from a page on another site), and the answer shown is a real one. APIs change: check the service's own page before you depend on it.