← Back to weather search

WeatherRecall API

Free JSON endpoint for querying historical weather data for any location and date worldwide.

Overview

The WeatherRecall API lets you fetch historical weather probability data for any date and geographic location. Data is sourced from the Open-Meteo Archive API (ERA5 reanalysis) and processed into probability distributions and yearly breakdowns.

The API is currently free to use without authentication. Please keep usage reasonable — heavy automated crawling may be rate-limited.

GET
https://weatherrecall.org/api/v1/weather

Parameters

ParameterTypeRequiredDescription
latnumberYesLatitude (-90 to 90). E.g. 52.37
lngnumberYesLongitude (-180 to 180). E.g. 4.89
datestringYesMonth and day in MM-DD format. E.g. 06-15 for June 15th.
yearsintegerNoHow many years back to query. Default: 5. Max: 20.

Example request

GET /api/v1/weather?lat=52.37&lng=4.89&date=06-15&years=10

Try it live

Example response

{
  "location": { "lat": 52.37, "lng": 4.89 },
  "date": "06-15",
  "years_queried": 10,
  "years_found": 10,
  "averages": {
    "temp_max_c": 20.4,
    "temp_min_c": 12.1,
    "precipitation_mm": 2.3
  },
  "probabilities": [
    { "weather": "Partly cloudy", "count": 4, "percentage": 40 },
    { "weather": "Clear sky",     "count": 3, "percentage": 30 },
    { "weather": "Light rain",    "count": 2, "percentage": 20 },
    { "weather": "Overcast",      "count": 1, "percentage": 10 }
  ],
  "yearly_results": [
    { "year": 2024, "wmo_code": 2, "weather": "Partly cloudy", "temp_max": 21.3, "temp_min": 12.8, "precipitation_mm": 0 },
    { "year": 2023, "wmo_code": 0, "weather": "Clear sky",     "temp_max": 22.1, "temp_min": 11.6, "precipitation_mm": 0 }
  ]
}

Response fields

FieldDescription
locationThe requested coordinates
dateThe queried date (MM-DD)
years_queriedNumber of years requested
years_foundNumber of years where data was available
averages.temp_max_cAverage maximum temperature in °C across all years
averages.temp_min_cAverage minimum temperature in °C across all years
averages.precipitation_mmAverage precipitation in mm
probabilitiesArray of weather types with count and percentage
yearly_resultsPer-year breakdown with WMO code, label, temperature and precipitation

WMO weather codes

The wmo_code field uses the standard WMO weather interpretation codes as defined by Open-Meteo. Common values:

CodeWeather
0Clear sky
1–2Partly cloudy
3Overcast
45–48Fog
51–55Drizzle
61–65Rain (light to heavy)
71–75Snow (light to heavy)
80–82Rain showers
95Thunderstorm
96–99Thunderstorm with hail

Data source

Weather data is provided by Open-Meteo using ERA5 reanalysis data from the European Centre for Medium-Range Weather Forecasts (ECMWF). Data coverage spans from 1940 to present (with a few days delay).

Open-Meteo is open-source and free for non-commercial use. WeatherRecall's API layer adds the date-based probability aggregation, yearly breakdown, and label mapping on top of the raw data.

Usage example (JavaScript)

const response = await fetch(
  'https://weatherrecall.org/api/v1/weather?lat=48.85&lng=2.35&date=07-14&years=10'
);
const data = await response.json();

console.log('Most likely weather:', data.probabilities[0].weather);
console.log('Average max temp:', data.averages.temp_max_c + '°C');

Usage example (Python)

import requests

r = requests.get('https://weatherrecall.org/api/v1/weather', params={
    'lat': 48.85, 'lng': 2.35, 'date': '07-14', 'years': 10
})
data = r.json()

for item in data['probabilities']:
    print(f"{item['weather']}: {item['percentage']}%")
Rate limits & terms

The WeatherRecall API is free to use for personal projects, research, and non-commercial applications. Please do not make more than 60 requests per minute. For high-volume use cases, consider using the Open-Meteo API directly. Attribution to WeatherRecall and Open-Meteo is appreciated.