Hava Geçmişi

Hava Geçmişi

Hava Durumu Tarım Kredi / istek: 3

Bir nokta için günlük veya saatlik geçmiş hava verisi (son 2 yıla kadar). Sıcaklık, yağış, rüzgar, nem, ET0 ve daha fazlası. Weather data © Open-Meteo / OpenWeather / MET Norway.

GET https://api.apikodu.com/api/v1/weather/history
Dokümantasyon
Genel bakış

Bir nokta için günlük veya saatlik geçmiş hava verisi (son 2 yıla kadar). Değerler çevre 4 hücreden bilineer interpolasyonla üretilir. ERA5-Land'den gelen günlerde yağış olasılığı (gözlenen yağıştan; 0–1, çevre hücrelerde yağış olan payı), UV indeksi (güneş radyasyonundan, yaklaşık) ve yağışlı saat / günlerin hava kodu (yağış ve kardan; sis, sağanak ve fırtına ayrımı yok) türetilmiş (derived) değerlerdir; UV yalnız günlüktür. Bulut oranı ve yağışsız hava kodu ERA5'ten türetilmez, varsa diğer kaynaklardan gelir, yoksa boştur. Rüzgâr hamlesi ERA5'ten (0,25° ızgara) gelir. Weather data © Copernicus ERA5 / ERA5-Land (contains modified Copernicus Climate Change Service information) / Open-Meteo / OpenWeather / MET Norway.

Kimlik doğrulama

Her istekte x-api-key başlığı zorunludur. Kullanılan kredi ve kalan kota yanıt başlıklarında (x-api-credits-used, x-api-remaining-credits, x-rate-limit-*) döner.

İstek
GET https://api.apikodu.com/api/v1/weather/history?latitude=39.92&longitude=32.87&fromDate=2026-06-01&toDate=2026-06-30
GET query.
Parametreler
Ad Tip Zorunlu Varsayılan Seçenekler Açıklama
latitude number * Zorunlu — — Nokta enlemi -90..90.
longitude number * Zorunlu — — Nokta boylamı -180..180.
fromDate string * Zorunlu 2026-06-01 — Başlangıç YYYY-MM-DD. En fazla 2 yıl önce. Aralık ≤ 366 gün.
toDate string * Zorunlu 2026-06-30 — Bitiş YYYY-MM-DD. En fazla dün.
granularity string Opsiyonel daily daily hourly daily veya hourly. Varsayılan daily.
fields string Opsiyonel — temp tmin tmax tmean precip precipprob snow wind windgust winddir humidity pressure cloud uvi dewpoint et0 sunrise sunset daylight weathercode Virgüllü alan listesi. Boşsa tüm alanlar. Geçerli anahtarlar yandaki listede (tmin/tmax/tmean/precip... yalnız daily, temp yalnız hourly).
Yanıt
Ad Tip Açıklama
granularity string Kullanılan çözünürlük.
fromDate string Pencere başlangıç YYYY-MM-DD.
toDate string Pencere bitiş YYYY-MM-DD.
daysTotal integer Penceredeki takvim günü sayısı.
daysWithData integer Verisi olan gün sayısı (daily).
hoursWithData integer Verisi olan saat sayısı (hourly).
missingCount integer Verisi olmayan gün sayısı.
missingDates array Eksik günlerin YYYY-MM-DD listesi (ilk 10).
gridLatitude number İsteği çevreleyen 0.1° grid köşesinin enlemi (interpolasyon referansı).
gridLongitude number 0.1° grid köşesinin boylamı.
gridInterpolated boolean true: değerler çevre 4 hücreden bilineer harmanlandı. false: tek hücre.
sources array Yanıta katkı veren veri kaynakları: copernicus-era5-land, open-meteo, openweather, met-norway. Geçmiş günlerde (yaklaşık bir haftadan eski) Copernicus ERA5 / ERA5-Land önceliklidir; UV, yağış olasılığı ve yağışlı saat / günlerin hava kodu ERA5-Land değişkenlerinden türetilir, rüzgâr hamlesi ERA5'ten (0,25°) gelir; bulut oranı ve yağışsız hava kodu varsa diğer kaynaklardan tamamlanır. Kıyı / deniz noktalarında ERA5-Land değerleri en yakın kara ızgara noktasından alınır.
disclaimer string Karar destek uyarısı ve kaynak atfı.
daily array granularity daily ise günlük satırlar.
daily[].date string Gün YYYY-MM-DD (UTC).
daily[].tmin number Minimum sıcaklık °C.
daily[].tmax number Maksimum sıcaklık °C.
daily[].tmean number Ortalama sıcaklık °C.
daily[].precipMm number Toplam yağış mm.
daily[].snowMm number Kar mm (su eşdeğeri yaklaşık).
daily[].windKmh number En yüksek rüzgar km/h.
daily[].windGustKmh number En yüksek rüzgar hamlesi km/h. Geçmiş günlerde ERA5 (0,25° ızgara, saat sonu damgalı saatlik hamlelerin günlük max'ı); ortalama rüzgârdan (windKmh, 0,1° ERA5-Land) düşük çıkabilir. Boş olabilir.
daily[].windDirectionDeg number Baskın rüzgar yönü derece.
daily[].humidityPercent number Ortalama bağıl nem %.
daily[].pressureHpa number Ortalama basınç hPa.
daily[].cloudPercent number Ortalama bulut oranı %. Boş olabilir.
daily[].uvi number En yüksek UV indeksi (yalnızca tahmin).
daily[].dewPointC number Ortalama çiy noktası °C.
daily[].et0Mm number Referans evapotranspirasyon ET0 mm (FAO-56).
daily[].sunrise string Gün doğumu UTC ISO.
daily[].sunset string Gün batımı UTC ISO.
daily[].daylightMinutes integer Gündüz süresi dakika.
daily[].weatherCode integer OpenWeather tarzı koşul kodu (800 açık, 5xx yağmur ...).
hourly array granularity hourly/both ise saatlik satırlar.
hourly[].time string Saat UTC ISO.
hourly[].tempC number Sıcaklık °C.
hourly[].humidityPercent number Bağıl nem %.
hourly[].windKmh number Rüzgar km/h.
hourly[].windGustKmh number Rüzgar hamlesi km/h (önceki saatin en yüksek hamlesi). Boş olabilir.
hourly[].precipMm number O saatteki yağış mm.
hourly[].precipProbability number Yağış olasılığı 0–1 (varsa).
hourly[].cloudPercent number Bulut oranı %. Boş olabilir.
hourly[].weatherCode integer OpenWeather tarzı koşul kodu.
Hatalar
HTTP code Açıklama
400 -257 latitude/longitude yok veya aralık dışında (enlem -90..90, boylam -180..180).
400 -258 fromDate/toDate YYYY-MM-DD değil, aralık 366 günü aşıyor, ya da son 2 yıl / dünden sonrası isteniyor.
400 -259 granularity/days/hours/metric/op/comparator geçersiz.
429 -316 Firmanın günlük yeni konum (hücre) limiti (50) doldu. Daha önce sorgulanan konumlar çalışmaya devam eder; yeni konum ertesi gün (UTC). Retry-After başlığı gün sonuna kalan saniye.
503 -261 Bu konum için henüz saklı veri yok. Hücreler oluşturuldu, toplayıcı dolduruyor. Kısa süre sonra tekrar dene.
401 -100 x-api-key yok, boş, prefix/uzunluk hatalı, pasif, yasaklı, süresi dolmuş, IP kısıtına takıldı veya bu API anahtara izinli değil.
429 -221 Dakikalık istek limiti aşıldı. Yanıt başlıkları: x-rate-limit-limit, x-rate-limit-remaining, x-rate-limit-reset.
429 — Paket kredi kotası bu isteğin kredisini karşılamıyor. Gövde { error, limit, currentUsage, requestCost } olabilir (code alanı yok).
500 -1 Beklenmeyen sunucu hatası. message genel bir hata metnidir; teknik ayrıntı içermez.
Notlar
  • Başarılı gövde { data: { ... } } şeklindedir. Hata gövdesi { code, message } şeklindedir. code alanı ApiResponseCode enum değeridir (negatif tam sayı).

Örnek yanıt

{
  "data": {
    "gridLatitude": 39.90,
    "gridLongitude": 32.90,
    "gridInterpolated": true,
    "granularity": "daily",
    "fromDate": "2026-06-01",
    "toDate": "2026-06-03",
    "daysTotal": 3,
    "daysWithData": 3,
    "hoursWithData": 0,
    "missingCount": 0,
    "missingDates": [],
    "daily": [
      {
        "date": "2026-06-01",
        "tmin": 14.2,
        "tmax": 27.9,
        "tmean": 20.8,
        "precipMm": 0.0,
        "windKmh": 11.5,
        "humidityPercent": 46.0,
        "et0Mm": 5.10,
        "weatherCode": 800
      },
      {
        "date": "2026-06-02",
        "tmin": 15.0,
        "tmax": 29.1,
        "tmean": 21.6,
        "precipMm": 1.2,
        "windKmh": 13.0,
        "humidityPercent": 52.0,
        "et0Mm": 5.44,
        "weatherCode": 500
      }
    ],
    "hourly": [],
    "sources": [
      "open-meteo"
    ],
    "disclaimer": "Weather data aggregated from Copernicus ERA5 / ERA5-Land, Open-Meteo, OpenWeather and MET Norway. Contains modified Copernicus Climate Change Service information. Decision support only."
  }
}

Kod örnekleri

  
      const response = await fetch('https://api.apikodu.com/api/v1/weather/history', {
        method: 'GET',
        headers: {
          'x-api-key': 'YOUR_API_KEY'
        }
      });

      const data = await response.json();
      console.log(data);
  
  
      import requests

      headers = {
          'x-api-key': 'YOUR_API_KEY'
      }

      response = requests.get('https://api.apikodu.com/api/v1/weather/history', headers=headers)
      print(response.json())
  
  
      using var client = new HttpClient();
      client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");

      var response = await client.GetStringAsync("https://api.apikodu.com/api/v1/weather/history");
      Console.WriteLine(response);
  
  
      $response = file_get_contents('https://api.apikodu.com/api/v1/weather/history', false, stream_context_create([
          'http' => [
              'header' => "x-api-key: YOUR_API_KEY"
          ]
      ]));

      print_r(json_decode($response, true));
  
  
      curl -X GET 'https://api.apikodu.com/api/v1/weather/history' \
        -H 'x-api-key: YOUR_API_KEY'
  

Hemen denemeye başlayın

Ücretsiz hesap açın, API anahtarınızı alın ve ilk isteğinizi dakikalar içinde gönderin.

Ücretsiz başla