Calenzy API
APIs/Data feeds

Weather API

New

The weather now, the next 24 hours and the next 7 days, anywhere in the world.

/v1/weatherCounts toward your plan's quota1 endpointFrom your server only

Send a place's coordinates and get back the conditions now, the next 24 hours and the next 7 days, with every time in the place's own timezone. Each condition comes as a name that never changes, to pick your icon, and as a text in your visitor's language.

We refresh a place every 15 minutes at most, so calling more often brings nothing new. Cache our answer on your side for 15 minutes too.

Call it from your server or your app's own backend, never from a browser or straight from an app: your API key would be public.
Wherever you show this weather, show the credit in attribution next to it, with its link. See Data sources.

Conditions

condition is one of clear, mostly_clear, partly_cloudy, cloudy, fog, drizzle, freezing_drizzle, light_rain, rain, heavy_rain, freezing_rain, light_snow, snow, heavy_snow, snow_grains, showers, heavy_showers, snow_showers, thunderstorm, thunderstorm_hail or unknown. Use is_day to pick a day or a night icon.

text is in English, French, Spanish, German, Chinese (simplified and traditional), Japanese, Korean or Bulgarian: the lang parameter when you send one, otherwise the first of these in your Accept-Language header, otherwise English.

GET/v1/weather

Get the weather

Now, the next 24 hours and the next 7 days for one place.

Query
latRequirednumberLatitude, from -90 to 90. We round it to 2 decimals, about one kilometre
lonRequirednumberLongitude, from -180 to 180, rounded the same way
langstringLanguage of text: en, fr, es, de, zh, zh-tw, ja, ko or bg. See Conditions
unitsstringmetric (the default: °C, km/h, mm) or imperial (°F, mph, inches)
Response
statusstringsuccess
latitude, longitudenumberThe place, rounded to 2 decimals
timezonestringThe place's IANA timezone, such as Asia/Tokyo. Every time in the answer carries its offset
languagestringThe language of every text
unitsobjectsystem, then the unit of temperature, wind_speed and precipitation
currentobjecttime, temperature, feels_like, humidity (%), precipitation, wind_speed, wind_direction (degrees, where the wind comes from), is_day, condition, text
hourlyarray24 hours from the current one: time, temperature, feels_like, precipitation_probability (%), is_day, condition, text
dailyarray7 days from the place's today: date, temperature_max, temperature_min, precipitation, precipitation_probability (%), sunrise, sunset, condition, text
updated_atstringWhen we last refreshed this place, UTC, ISO 8601
attributionstringThe credit to show next to the weather (see Data sources)
GETapi.calenzy.app/v1/weather?lat=35.68&lon=139.77&lang=en
Response · 200 OK
{
  "status": "success",
  "latitude": 35.68,
  "longitude": 139.77,
  "timezone": "Asia/Tokyo",
  "language": "en",
  "units": {"system": "metric", "temperature": "°C", "wind_speed": "km/h", "precipitation": "mm"},
  "current": {
    "time": "2026-10-22T16:00:00+09:00",
    "temperature": 20.7,
    "feels_like": 19.2,
    "humidity": 46,
    "precipitation": 0,
    "wind_speed": 7.9,
    "wind_direction": 336,
    "is_day": true,
    "condition": "partly_cloudy",
    "text": "Partly cloudy"
  },
  "hourly": [
    {
      "time": "2026-10-22T16:00:00+09:00",
      "temperature": 20.7,
      "feels_like": 19.2,
      "precipitation_probability": 2,
      "is_day": true,
      "condition": "partly_cloudy",
      "text": "Partly cloudy"
    }
  ],
  "daily": [
    {
      "date": "2026-10-22",
      "temperature_max": 22.6,
      "temperature_min": 15.1,
      "precipitation": 0,
      "precipitation_probability": 20,
      "sunrise": "2026-10-22T05:53:18+09:00",
      "sunset": "2026-10-22T16:57:16+09:00",
      "condition": "cloudy",
      "text": "Cloudy"
    }
  ],
  "updated_at": "2026-10-22T07:09:23Z",
  "attribution": "Weather data by Open-Meteo.com (https://open-meteo.com)"
}

Data sources

Forecasts from national weather services' models, through Open-Meteo, under CC BY 4.0. If you show this weather, credit Open-Meteo with the attribution text and its link.

The values now come from the models too, not from weather stations, so they can differ a little from a station near the place.

Errors

Besides these, any call can answer one of the common errors.

CodeHTTPWhen
invalid_coordinates400lat or lon is missing or out of range
weather_unavailable503We could not reach our source and hold nothing recent enough for this place. Retry in a few minutes