🌤️ Open-Meteo API

Dokumentacja API - Bezpłatne dane pogodowe

Dostępne endpointy API

Twój lokalny serwer Open-Meteo API obsługuje następujące endpointy:

Endpoint Metoda Opis
/v1/forecast GET POST Prognoza pogody
/v1/archive GET POST Dane historyczne
/v1/era5 GET POST Dane ERA5
/v1/air-quality GET POST Jakość powietrza
/v1/marine GET POST Dane morskie
/v1/elevation GET POST Wysokość nad poziomem morza
/v1/flood GET POST Ryzyko powodzi
/v1/seasonal GET POST Prognozy sezonowe
/v1/ensemble GET POST Prognozy ensemble

Podstawowe parametry

latitude (wymagane)
Szerokość geograficzna w stopniach dziesiętnych (-90 do 90)
longitude (wymagane)
Długość geograficzna w stopniach dziesiętnych (-180 do 180)
hourly (opcjonalne)
Lista zmiennych pogodowych do pobrania dla danych godzinowych
daily (opcjonalne)
Lista zmiennych pogodowych do pobrania dla danych dziennych
current_weather (opcjonalne)
Dodaje aktualną pogodę do odpowiedzi (true/false)
timezone (opcjonalne)
Strefa czasowa dla formatowania dat (np. "Europe/Warsaw", "GMT")
models (opcjonalne)
Określa model pogodowy do użycia

Przykłady użycia

Podstawowa prognoza pogody

GET /v1/forecast?latitude=52.52&longitude=13.41¤t_weather=true

Prognoza z danymi godzinowymi

GET /v1/forecast?latitude=52.52&longitude=13.41&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m

Prognoza z określonym modelem

GET /v1/forecast?latitude=52.52&longitude=13.41&models=ecmwf_ifs025&hourly=temperature_2m&timezone=Europe/Warsaw

☀️ Prognoza z wschodem/zachodem słońca i UV

GET /v1/forecast?latitude=52.23&longitude=21.01&hourly=temperature_2m,uv_index&daily=sunrise,sunset&timezone=Europe/Warsaw

Jakość powietrza

GET /v1/air-quality?latitude=52.52&longitude=13.41&hourly=pm10,pm2_5,ozone

Wysokość nad poziomem morza

GET /v1/elevation?latitude=52.52&longitude=13.41

Dostępne modele pogodowe

Kod modelu Nazwa Rozdzielczość Opis Zalecenie dla Polski
ecmwf_ifs025 🏆 ECMWF IFS 0.25° 0.25° (~25km) Najdokładniejszy globalny model ECMWF ZALECANE ✅
best_match 🎯 Najlepszy automatyczny Zmienne Może nie działać dla Polski - brak danych DMI ⚠️ Unikaj
dwd_icon 🇩🇪 DWD ICON Global 0.125° (~13km) Niemiecki model globalny ⚠️ Wymaga danych
dwd_icon_eu 🇩🇪 DWD ICON EU 0.0625° (~7km) Niemiecki model dla Europy ⚠️ Wymaga danych
ncep_gfs025 🇺🇸 GFS 0.25° 0.25° (~25km) Globalny model NOAA ⚠️ Wymaga danych

🇵🇱 Zalecenia dla Polski

Najlepsze modele dla Polski:

  1. ecmwf_ifs025 - Najwyższa dokładność globalnie ✅ Działa teraz - ZALECANE
  2. dwd_icon_eu - Doskonały dla Europy, wysoka rozdzielczość ⚠️ Wymaga danych
  3. dwd_icon - Dobry globalny model ⚠️ Wymaga danych
  4. ncep_gfs025 - Backup globalny ⚠️ Wymaga danych
  5. best_match - ⚠️ Unikaj - może nie działać (brak danych DMI)

Uwaga: Aktualnie tylko ECMWF IFS ma pobrane dane. Inne modele wymagają pobrania danych.

🔧 Pobieranie dodatkowych danych:

Aby pobrać dane dla innych modeli, użyj komend sync z prawidłowymi nazwami domen:

swift run openmeteo-api sync dwd_icon temperature_2m
swift run openmeteo-api sync dwd_icon_eu temperature_2m
swift run openmeteo-api sync ncep_gfs025 temperature_2m

Pobieranie danych może zająć dużo czasu i miejsca na dysku.

Zmienne pogodowe

Temperatura

Wilgotność

Wiatr

Opady

Ciśnienie i chmury

☀️ Słońce i UV

Przykładowa odpowiedź JSON

{ "latitude": 52.5, "longitude": 13.5, "generationtime_ms": 0.5179643630981445, "utc_offset_seconds": 7200, "timezone": "Europe/Berlin", "timezone_abbreviation": "CEST", "elevation": 44.0, "current_weather": { "time": "2025-07-04T18:45", "interval": 900, "temperature": 24.7, "windspeed": 12.3, "winddirection": 245, "is_day": 1, "weathercode": 1 }, "hourly_units": { "time": "iso8601", "temperature_2m": "°C" }, "hourly": { "time": ["2025-07-04T00:00", "2025-07-04T01:00", ...], "temperature_2m": [18.4, 17.0, 15.9, ...] } }

API Geocoding

Frontend używa publicznego API geocoding Open-Meteo do wyszukiwania miejscowości.

Wyszukiwanie miejscowości

GET https://geocoding-api.open-meteo.com/v1/search?name=Warszawa&count=5&language=pl&format=json

Parametry geocoding

name (wymagane)
Nazwa miejscowości do wyszukania
count (opcjonalne)
Liczba wyników (domyślnie 10, maksymalnie 100)
language (opcjonalne)
Język wyników (np. "pl", "en", "de")
format (opcjonalne)
Format odpowiedzi (json lub protobuf)

Przykładowa odpowiedź geocoding

{ "results": [ { "id": 756135, "name": "Warszawa", "latitude": 52.22977, "longitude": 21.01178, "elevation": 113.0, "country": "Polska", "admin1": "Województwo mazowieckie", "timezone": "Europe/Warsaw", "population": 1702139 } ] }

Informacje dodatkowe

Adres serwera: http://localhost:8080

Format odpowiedzi: JSON

Metody HTTP: GET, POST

CORS: Włączone

Klucz API: Nie wymagany

Kody błędów