Weather API
NewThe weather now, the next 24 hours and the next 7 days, anywhere in the world.
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.
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 the weather
Now, the next 24 hours and the next 7 days for one place.
| latRequirednumber | Latitude, from -90 to 90. We round it to 2 decimals, about one kilometre |
| lonRequirednumber | Longitude, from -180 to 180, rounded the same way |
| langstring | Language of text: en, fr, es, de, zh, zh-tw, ja, ko or bg. See Conditions |
| unitsstring | metric (the default: °C, km/h, mm) or imperial (°F, mph, inches) |
| statusstring | success |
| latitude, longitudenumber | The place, rounded to 2 decimals |
| timezonestring | The place's IANA timezone, such as Asia/Tokyo. Every time in the answer carries its offset |
| languagestring | The language of every text |
| unitsobject | system, then the unit of temperature, wind_speed and precipitation |
| currentobject | time, temperature, feels_like, humidity (%), precipitation, wind_speed, wind_direction (degrees, where the wind comes from), is_day, condition, text |
| hourlyarray | 24 hours from the current one: time, temperature, feels_like, precipitation_probability (%), is_day, condition, text |
| dailyarray | 7 days from the place's today: date, temperature_max, temperature_min, precipitation, precipitation_probability (%), sunrise, sunset, condition, text |
| updated_atstring | When we last refreshed this place, UTC, ISO 8601 |
| attributionstring | The credit to show next to the weather (see Data sources) |
curl "https://api.calenzy.app/v1/weather?lat=35.68&lon=139.77&lang=en" \ -H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.calenzy.app/v1/weather?lat=33.75&lon=-84.39&lang=en&units=imperial" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "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.
| Code | HTTP | When |
|---|---|---|
invalid_coordinates | 400 | lat or lon is missing or out of range |
weather_unavailable | 503 | We could not reach our source and hold nothing recent enough for this place. Retry in a few minutes |