GET /weather/history/:city
Hourly weather snapshots for a supported city, stored continuously by our own workers from the top of every hour. Returns temperature, apparent temperature, humidity, precipitation, wind speed/direction, weather code, and cloud cover. Filter with ?start and ?end (ISO 8601 or YYYY-MM-DD). Useful for building long-running climate dashboards, comparing conditions across cities over time, and analyzing hourly weather patterns without hitting upstream archive APIs.
city
required
City name (see /weather/cities)
start
optional
Start datetime (ISO 8601 or YYYY-MM-DD)
end
optional
End datetime (ISO 8601 or YYYY-MM-DD)
limit
optional
default: 500
Max rows (cap 10000)
| Name | Required | Default | Description |
|---|---|---|---|
city |
Yes | - | City name (see /weather/cities) |
start |
No | - | Start datetime (ISO 8601 or YYYY-MM-DD) |
end |
No | - | End datetime (ISO 8601 or YYYY-MM-DD) |
limit |
No | 500 | Max rows (cap 10000) |
curl "https://nordapi.ee/api/v1/weather/history/tallinn?limit=24"
curl "https://nordapi.ee/api/v1/weather/history/tallinn?limit=24"
curl "https://nordapi.ee/api/v1/weather/history/oslo?start=2026-04-01&end=2026-04-15"
curl "https://nordapi.ee/api/v1/weather/history/tokyo?limit=10000"
{
"city": "tallinn",
"count": 24,
"data": [
{
"apparent_temperature_c": 17.2,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-05T13:00:00Z",
"precipitation_mm": 0.5,
"relative_humidity": 90.0,
"temperature_c": 17.5,
"weather_code": 61,
"wind_direction_deg": 348.0,
"wind_speed_kmh": 15.5
},
{
"apparent_temperature_c": 16.8,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-05T14:00:00Z",
"precipitation_mm": 0.2,
"relative_humidity": 88.0,
"temperature_c": 17.1,
"weather_code": 53,
"wind_direction_deg": 347.0,
"wind_speed_kmh": 14.0
},
{
"apparent_temperature_c": 17.3,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-05T15:00:00Z",
"precipitation_mm": 0.1,
"relative_humidity": 87.0,
"temperature_c": 17.5,
"weather_code": 51,
"wind_direction_deg": 326.0,
"wind_speed_kmh": 13.7
},
{
"apparent_temperature_c": 18.1,
"cloud_cover_pct": 98.0,
"observed_at": "2026-07-05T16:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 82.0,
"temperature_c": 18.0,
"weather_code": 3,
"wind_direction_deg": 314.0,
"wind_speed_kmh": 9.7
},
{
"apparent_temperature_c": 18.0,
"cloud_cover_pct": 97.0,
"observed_at": "2026-07-05T17:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 81.0,
"temperature_c": 18.0,
"weather_code": 3,
"wind_direction_deg": 313.0,
"wind_speed_kmh": 10.4
},
{
"apparent_temperature_c": 16.8,
"cloud_cover_pct": 98.0,
"observed_at": "2026-07-05T18:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 79.0,
"temperature_c": 17.5,
"weather_code": 3,
"wind_direction_deg": 301.0,
"wind_speed_kmh": 12.6
},
{
"apparent_temperature_c": 17.0,
"cloud_cover_pct": 91.0,
"observed_at": "2026-07-05T19:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 79.0,
"temperature_c": 17.4,
"weather_code": 3,
"wind_direction_deg": 310.0,
"wind_speed_kmh": 10.8
},
{
"apparent_temperature_c": 17.2,
"cloud_cover_pct": 93.0,
"observed_at": "2026-07-05T20:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 81.0,
"temperature_c": 17.1,
"weather_code": 3,
"wind_direction_deg": 294.0,
"wind_speed_kmh": 7.9
},
{
"apparent_temperature_c": 17.2,
"cloud_cover_pct": 96.0,
"observed_at": "2026-07-05T21:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 89.0,
"temperature_c": 16.6,
"weather_code": 3,
"wind_direction_deg": 297.0,
"wind_speed_kmh": 6.8
},
{
"apparent_temperature_c": 16.7,
"cloud_cover_pct": 83.0,
"observed_at": "2026-07-05T22:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 85.0,
"temperature_c": 17.2,
"weather_code": 3,
"wind_direction_deg": 320.0,
"wind_speed_kmh": 13.7
},
{
"apparent_temperature_c": 15.2,
"cloud_cover_pct": 90.0,
"observed_at": "2026-07-05T23:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 84.0,
"temperature_c": 16.2,
"weather_code": 3,
"wind_direction_deg": 313.0,
"wind_speed_kmh": 14.4
},
{
"apparent_temperature_c": 15.4,
"cloud_cover_pct": 96.0,
"observed_at": "2026-07-06T00:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 86.0,
"temperature_c": 16.2,
"weather_code": 3,
"wind_direction_deg": 306.0,
"wind_speed_kmh": 14.4
},
{
"apparent_temperature_c": 15.4,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T01:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 84.0,
"temperature_c": 16.5,
"weather_code": 3,
"wind_direction_deg": 284.0,
"wind_speed_kmh": 15.5
},
{
"apparent_temperature_c": 14.6,
"cloud_cover_pct": 77.0,
"observed_at": "2026-07-06T02:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 85.0,
"temperature_c": 15.9,
"weather_code": 2,
"wind_direction_deg": 295.0,
"wind_speed_kmh": 15.8
},
{
"apparent_temperature_c": 14.8,
"cloud_cover_pct": 93.0,
"observed_at": "2026-07-06T03:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 84.0,
"temperature_c": 16.1,
"weather_code": 3,
"wind_direction_deg": 299.0,
"wind_speed_kmh": 16.6
},
{
"apparent_temperature_c": 15.0,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T04:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 86.0,
"temperature_c": 16.1,
"weather_code": 3,
"wind_direction_deg": 308.0,
"wind_speed_kmh": 15.5
},
{
"apparent_temperature_c": 15.4,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T05:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 84.0,
"temperature_c": 16.6,
"weather_code": 3,
"wind_direction_deg": 294.0,
"wind_speed_kmh": 16.9
},
{
"apparent_temperature_c": 15.3,
"cloud_cover_pct": 99.0,
"observed_at": "2026-07-06T06:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 83.0,
"temperature_c": 16.5,
"weather_code": 3,
"wind_direction_deg": 296.0,
"wind_speed_kmh": 16.2
},
{
"apparent_temperature_c": 15.2,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T07:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 80.0,
"temperature_c": 17.0,
"weather_code": 3,
"wind_direction_deg": 284.0,
"wind_speed_kmh": 19.8
},
{
"apparent_temperature_c": 13.4,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T08:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 82.0,
"temperature_c": 16.4,
"weather_code": 3,
"wind_direction_deg": 288.0,
"wind_speed_kmh": 27.7
},
{
"apparent_temperature_c": 13.6,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T09:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 80.0,
"temperature_c": 16.7,
"weather_code": 3,
"wind_direction_deg": 285.0,
"wind_speed_kmh": 28.1
},
{
"apparent_temperature_c": 12.6,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T10:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 72.0,
"temperature_c": 16.2,
"weather_code": 3,
"wind_direction_deg": 280.0,
"wind_speed_kmh": 26.6
},
{
"apparent_temperature_c": 11.6,
"cloud_cover_pct": 99.0,
"observed_at": "2026-07-06T11:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 71.0,
"temperature_c": 15.5,
"weather_code": 3,
"wind_direction_deg": 275.0,
"wind_speed_kmh": 27.0
},
{
"apparent_temperature_c": 11.7,
"cloud_cover_pct": 100.0,
"observed_at": "2026-07-06T12:00:00Z",
"precipitation_mm": 0.0,
"relative_humidity": 70.0,
"temperature_c": 15.8,
"weather_code": 3,
"wind_direction_deg": 276.0,
"wind_speed_kmh": 28.8
}
],
"success": true
}