Namaz Vakti API
Diyanet İşleri Başkanlığı verilerine dayanan, ücretsiz ve kayıt gerektirmeyen namaz vakitleri API servisi. 209 ülke, 365 şehir ve 18.647 ilçe için namaz vakti verisi sunulmaktadır.
Base URL
https://namazvakti.mtopal.dev
Tüm istekler GET metodu ile yapılır. Yanıt formatı JSON'dır. API anahtarı veya kimlik doğrulama gerektirmez.
Access-Control-Allow-Origin: *). Tarayıcı tabanlı uygulamalardan doğrudan erişebilirsiniz.
Kullanım Akışı
Namaz vakitlerini almak için aşağıdaki hiyerarşik akışı takip edin:
/ulkeler/sehirler/{ulke_id}/ilceler/{sehir_id}/vakitler/{ilce_id}/ulkeler → UlkeID: 2 → /sehirler/2 → SehirID: 539 → /ilceler/539 → IlceID: 9541 → /vakitler/9541
İstek Limiti (Rate Limit)
API'yi kötü niyetli kullanım ve aşırı yükten korumak için istek sınırlaması uygulanmaktadır:
| Periyot | Limit |
|---|---|
| Dakika başına | 10 istek (IP başına, endpoint grubu başına) |
| Saat başına | 100 istek (IP başına, endpoint grubu başına) |
Sınırı aştığınızda 429 Too Many Requests yanıtı döner. Normal kullanım için bu limitler fazlasıyla yeterlidir.
Bilgilendirme
Koordinatları incele →
Ülkeler
Desteklenen tüm ülkelerin listesini döner.
Yanıt Alanları
| Alan | Tip | Açıklama |
|---|---|---|
UlkeAdi | string | Ülke adı (Türkçe) |
UlkeAdiEn | string | Ülke adı (İngilizce) |
UlkeID | string | Ülke kimlik numarası |
Örnek Yanıt
[
{
"UlkeAdi": "TÜRKİYE",
"UlkeAdiEn": "TURKEY",
"UlkeID": "2"
},
...
]
Şehirler
Belirtilen ülkeye ait şehirlerin listesini döner.
Parametreler
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
ulke_id | URL path veya ?ulke= | Evet | /ulkeler endpoint'inden alınan UlkeID |
Yanıt Alanları
| Alan | Tip | Açıklama |
|---|---|---|
SehirAdi | string | Şehir adı (Türkçe) |
SehirAdiEn | string | Şehir adı (İngilizce) |
SehirID | string | Şehir kimlik numarası |
BagliOlduguUlkeID | string | Bağlı olduğu ülkenin ID'si |
Örnek İstek
# Türkiye'nin şehirlerini getir
GET https://namazvakti.mtopal.dev/sehirler/2
# Alternatif: query string ile
GET https://namazvakti.mtopal.dev/sehirler?ulke=2
Örnek Yanıt
[
{
"SehirAdi": "ADANA",
"SehirAdiEn": "ADANA",
"SehirID": "500",
"BagliOlduguUlkeID": "2"
},
...
]
İlçeler
Belirtilen şehre ait ilçelerin listesini döner.
Parametreler
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
sehir_id | URL path veya ?sehir= | Evet | /sehirler endpoint'inden alınan SehirID |
Yanıt Alanları
| Alan | Tip | Açıklama |
|---|---|---|
IlceAdi | string | İlçe adı (Türkçe) |
IlceAdiEn | string | İlçe adı (İngilizce) |
IlceID | string | İlçe kimlik numarası |
BagliOlduguSehirID | string | Bağlı olduğu şehrin ID'si |
Örnek İstek
# İstanbul'un ilçelerini getir
GET https://namazvakti.mtopal.dev/ilceler/539
Örnek Yanıt
[
{
"IlceAdi": "KADIKÖY",
"IlceAdiEn": "KADIKOY",
"IlceID": "9541",
"BagliOlduguSehirID": "539"
},
...
]
Namaz Vakitleri
Belirtilen ilçe için bugünden yıl sonuna kadar olan günlük namaz vakitlerini döner. Veriler Diyanet İşleri Başkanlığı'ndan yıllık olarak çekilir ve önbellekte saklanır.
Parametreler
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
ilce_id | URL path veya ?ilce= | Evet | /ilceler endpoint'inden alınan IlceID |
Yanıt Alanları
| Alan | Tip | Açıklama |
|---|---|---|
Imsak | string | İmsak vakti (SS:DD) |
Gunes | string | Güneş doğuş vakti (SS:DD) |
Ogle | string | Öğle namazı vakti (SS:DD) |
Ikindi | string | İkindi namazı vakti (SS:DD) |
Aksam | string | Akşam namazı vakti (SS:DD) |
Yatsi | string | Yatsı namazı vakti (SS:DD) |
MiladiTarihKisa | string | Kısa tarih (GG.AA.YYYY) |
MiladiTarihUzun | string | Uzun tarih (GG Ay YYYY) |
MiladiTarihUzunIso8601 | string | ISO 8601 tarih |
HicriTarihKisa | string | Hicrî tarih |
HicriTarihUzun | string | Hicrî tarih (uzun format) |
GreenwichOrtalamaZamani | number | GMT ofset (3.0 = UTC+3) |
Örnek İstek
# Kadıköy/İstanbul için namaz vakitlerini getir
GET https://namazvakti.mtopal.dev/vakitler/9541
Örnek Yanıt
[
{
"Imsak": "05:32",
"Gunes": "07:01",
"Ogle": "13:18",
"Ikindi": "16:42",
"Aksam": "19:22",
"Yatsi": "20:43",
"MiladiTarihKisa": "18.03.2026",
"MiladiTarihKisaIso8601": "18.03.2026",
"MiladiTarihUzun": "18 Mart 2026",
"MiladiTarihUzunIso8601": "2026-03-18T00:00:00.0000000+03:00",
"HicriTarihKisa": "18 Ramazan 1447",
"HicriTarihUzun": "18 Ramazan 1447",
"GreenwichOrtalamaZamani": 3
},
...
]
Hata Kodları
API, hata durumunda aşağıdaki HTTP durum kodlarını ve JSON formatında hata mesajlarını döner:
| Kod | Anlamı | Açıklama |
|---|---|---|
| 404 | Bulunamadı | Geçersiz endpoint veya var olmayan ülke/şehir/ilçe ID'si |
| 405 | Metod Hatası | GET ve HEAD dışındaki HTTP metodları desteklenmez |
| 422 | Parametre Eksik | Zorunlu parametre gönderilmemiş |
| 429 | Çok Fazla İstek | İstek limiti aşıldı, biraz bekleyip tekrar deneyin |
| 502 | Kaynak Hatası | Diyanet sunucusuna bağlanılamıyor (geçici) |
Hata Yanıt Formatı
{
"detail": "Hata açıklaması."
}
Bilinen Sorunlar
Aşağıdaki sorunlar Diyanet İşleri Başkanlığı'nın orijinal verisinden kaynaklanmaktadır:
| Sorun | Detay |
|---|---|
| Çeviri | Bazı ülkelerin İngilizce adları Türkçe olarak bırakılmıştır. Örnek: ORTA AFRIKA CUMHURIYETI |
| Karakter | Ülke adlarında Türkçe karakter kullanımı tutarsızdır. TÜRKİYE vs CIN |
| Gruplama | Birleşik Krallık bölgeleri INGILTERE altında tek grupta listelenmiştir |
| Saat Dilimi | MiladiTarihUzunIso8601 alanı her zaman +03:00 (Türkiye) saat dilimini gösterir, lokal saat dilimini yansıtmaz |
Kod Örnekleri
JavaScript (fetch)
// Kadıköy için bugünün namaz vakitlerini al
const response = await fetch('https://namazvakti.mtopal.dev/vakitler/9541');
const vakitler = await response.json();
// Bugünün vakitleri (ilk eleman her zaman bugün)
const bugun = vakitler[0];
console.log(`İmsak: ${bugun.Imsak}, Akşam: ${bugun.Aksam}`);
Python (requests)
# pip install requests
import requests
# 1. Türkiye'nin şehirlerini al
sehirler = requests.get("https://namazvakti.mtopal.dev/sehirler/2").json()
# 2. İstanbul'u bul
istanbul = next(s for s in sehirler if s["SehirAdi"] == "İSTANBUL")
# 3. İstanbul'un ilçelerini al
ilceler = requests.get(f"https://namazvakti.mtopal.dev/ilceler/{istanbul['SehirID']}").json()
# 4. Kadıköy'ün vakitlerini al
kadikoy = next(i for i in ilceler if i["IlceAdi"] == "KADIKÖY")
vakitler = requests.get(f"https://namazvakti.mtopal.dev/vakitler/{kadikoy['IlceID']}").json()
print(f"Bugün imsak: {vakitler[0]['Imsak']}")
PHP
// Kadıköy namaz vakitlerini çek
$json = file_get_contents('https://namazvakti.mtopal.dev/vakitler/9541');
$vakitler = json_decode($json, true);
$bugun = $vakitler[0];
echo "Akşam namazı: " . $bugun['Aksam'];
cURL (Terminal)
# Ülkeleri listele
curl https://namazvakti.mtopal.dev/ulkeler
# Türkiye şehirleri
curl https://namazvakti.mtopal.dev/sehirler/2
# İstanbul ilçeleri
curl https://namazvakti.mtopal.dev/ilceler/539
# Kadıköy namaz vakitleri
curl https://namazvakti.mtopal.dev/vakitler/9541
İletişim
Aşağıdaki mail adresinden bizimle iletişim kurabilirsiniz.
API hakkında soru, öneri veya hata bildirimi için:
hi@mtopal.dev