Free · No API key

A queryable record of weather measurements across all locations.

Plain HTTP GET requests, plain JSON back. Pass a latitude and longitude and get a filterable history of measurements for that spot, with no account, no API key, and nothing to configure before your first request.

What it does

An open API for querying stored weather measurements by location.

Free, no key required

No account, no API key, no authentication header. Point a client at an endpoint and read the response.

Full history, not just current

Every measurement ever recorded is kept, so you can retrieve readings far beyond what a live weather API would give you.

Location-scoped

Filter every query by latitude and longitude to isolate a single tracked location.

Time-bounded queries

Every query specifies a from / to window, which is what determines how many results come back.

Self-describing fields

Each reading ships with its unit alongside the value, so no lookup tables are required to interpret the data.

Access & usage

Everything you need to know before your first request.

Authentication

None. Both endpoints are open: no API key, token, or sign-up.

Cost

Free to use, no tiers or paid plans.

Response size

There is no limit parameter. from and to are required and control size directly: with a measurement roughly every 15 minutes, a 1-day window returns around 96 rows. The range cannot exceed 10 days; a wider request gets a 400.

Update frequency

A new measurement is added every 15 minutes.

Format

JSON only, over HTTPS. No content negotiation required.

Endpoints

Two read-only endpoints, both scoped to a location.

GET /meteo

List stored measurements for a location, most recent first, within a required time range. The span between from and to must not exceed 10 days.

Query parameters
NameRequiredDescription
latitudeYesDecimal degrees, −90 to 90.
longitudeYesDecimal degrees, −180 to 180.
fromYesISO 8601 timestamp; only measurements at or after this instant.
toYesISO 8601 timestamp; only measurements at or before this instant.
GET /meteo/latest

Return only the single most recent measurement for a location. Responds 404 if nothing has been recorded yet.

Query parameters
NameRequiredDescription
latitudeYesDecimal degrees, −90 to 90.
longitudeYesDecimal degrees, −180 to 180.

What's in a measurement

Every reading returned by either endpoint has this shape. Each metric carries its own unit field, so no external reference is needed to interpret a value.

FieldType
timedate-time
temperature / _unitnumber / string
apparent_temperature / _unitnumber / string
precipitation / _unitnumber / string
FieldType
cloud_cover / _unitnumber / string
wind_speed / _unitnumber / string
weather_code / _unitinteger / string
weather_descriptionstring

Try it now

A live example against Ghent, Belgium. Swap in any latitude/longitude you're tracking.

Request

curl "https://meteo-api.nicholasmeyers.be/meteo/latest?latitude=51.05&longitude=3.72"

Response

{
  "time": "2026-08-23T14:00:00+02:00",
  "temperature": 21.4,
  "temperature_unit": "°C",
  "apparent_temperature": 20.8,
  "apparent_temperature_unit": "°C",
  "precipitation": 0.0,
  "precipitation_unit": "mm",
  "cloud_cover": 40.0,
  "cloud_cover_unit": "%",
  "wind_speed": 12.3,
  "wind_speed_unit": "km/h",
  "weather_code": 1,
  "weather_code_unit": "wmo code",
  "weather_description": "Mainly clear"
}