Hava Tahmini
Hava Durumu Tarım Kredi / istek: 2Bir nokta için 10 güne kadar günlük ve 96 saate kadar saatlik hava tahmini.
GET
https://api.apikodu.com/api/v1/weather/forecast
Dokümantasyon
Genel bakış
Bir nokta için 10 güne kadar günlük ve 96 saate kadar saatlik hava tahmini. Baltık/Nordik noktalarda MET Norway, diğer yerlerde Open-Meteo (ICON-EU) tercih edilir.
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/forecast?latitude=39.92&longitude=32.87&granularity=both
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. |
granularity |
string | Opsiyonel | daily |
daily hourly both |
daily, hourly veya both. Varsayılan daily. |
days |
integer | Opsiyonel | 10 |
— | Günlük tahmin gün sayısı 1–10. Varsayılan 10. |
hours |
integer | Opsiyonel | 96 |
— | Saatlik tahmin saat sayısı 1–96. Varsayılan 96. |
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... yalnız daily, temp yalnız hourly). |
Yanıt
| Ad | Tip | Açıklama |
|---|---|---|
granularity |
string | Kullanılan çözünürlük. |
fromDate |
string | İlk günlük tarih (daily/both). |
toDate |
string | Son günlük tarih (daily/both). |
fromTime |
string | İlk saatlik zaman UTC ISO (hourly/both). |
toTime |
string | Son saatlik zaman UTC ISO (hourly/both). |
daysReturned |
integer | Dönen günlük satır sayısı. |
hoursReturned |
integer | Dönen saatlik satır sayısı. |
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 |
Tarih parametresi geçersiz. |
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": "both",
"fromDate": "2026-08-30",
"toDate": "2026-09-08",
"fromTime": "2026-08-30T02:00:00Z",
"toTime": "2026-09-03T02:00:00Z",
"daysReturned": 10,
"hoursReturned": 96,
"daily": [
{
"date": "2026-08-30",
"tmin": 16.4,
"tmax": 31.2,
"tmean": 23.8,
"precipMm": 0.0,
"precipProbability": 0.05,
"windKmh": 12.8,
"et0Mm": 5.90,
"weatherCode": 801
}
],
"hourly": [
{
"time": "2026-08-30T02:00:00Z",
"tempC": 18.1,
"humidityPercent": 62.0,
"windKmh": 9.4,
"precipMm": 0.0,
"cloudPercent": 20.0,
"weatherCode": 800
}
],
"sources": [
"met-norway",
"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/forecast', {
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/forecast', 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/forecast");
Console.WriteLine(response);
$response = file_get_contents('https://api.apikodu.com/api/v1/weather/forecast', 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/forecast' \
-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.