Hava Geçmişi
Hava Durumu Tarım Kredi / istek: 3Bir 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.
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
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.