Namaz Vakti API

Merhabalar arkadaşlar,
Diyanet İşleri Başkanlığı'nın namaz vakitlerini JSON formatında sunan ücretsiz bir API servisi geliştirdim. Kayıt, API anahtarı veya herhangi bir kimlik doğrulama gerektirmiyor. Mobil uygulama, web sitesi veya masaüstü yazılımı gibi projelerinizde doğrudan kullanabilirsiniz.
Altyapı EzanVaktiAPI projesinden esinlenilmiştir. Ondan daha günceldir ve son eklenen ülke, şehir, ilçelerin hepsi mevcuttur.

Kapsam
  • 209 ülke
  • 365 şehir
  • 18.647 ilçe
  • Bugünün tarihinden yıl sonuna kadar günlük namaz vakitleri
  • Veri kaynağı: Diyanet İşleri Başkanlığı
Base URL
https://namazvakti.mtopal.dev
Endpoint'ler
GET /ulkeler              Tüm ülkelerin listesi
GET /sehirler/{ulke_id}   Ülkeye ait şehirler
GET /ilceler/{sehir_id}   Şehre ait ilçeler
GET /vakitler/{ilce_id}   İlçeye ait namaz vakitleri
Nasıl Kullanılır?
Namaz vakitlerini almak için şu adımlar izlenir:

1. Ülke seç → 2. Şehir seç → 3. İlçe seç → 4. Vakitleri al

Örnek: Kadıköy/İstanbul için namaz vakitleri
# 1. Ülkeleri listele, Türkiye'nin ID'si: 2
GET https://namazvakti.mtopal.dev/ulkeler

# 2. Türkiye'nin şehirlerini getir, İstanbul'un ID'si: 539
GET https://namazvakti.mtopal.dev/sehirler/2

# 3. İstanbul'un ilçelerini getir, Kadıköy'ün ID'si: 9541
GET https://namazvakti.mtopal.dev/ilceler/539

# 4. Kadıköy için namaz vakitlerini al
GET https://namazvakti.mtopal.dev/vakitler/9541
Örnek Yanıt — /vakitler/9541
[
  {
    "Imsak": "05:32",
    "Gunes": "07:01",
    "Ogle": "13:18",
    "Ikindi": "16:42",
    "Aksam": "19:22",
    "Yatsi": "20:43",
    "MiladiTarihKisa": "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
  },
  ...
]
Diğer Yanıt Örnekleri
/ulkeler yanıtı:
[
  {
    "UlkeAdi": "TÜRKİYE",
    "UlkeAdiEn": "TURKEY",
    "UlkeID": "2"
  },
  ...
]
/sehirler/2 yanıtı:
[
  {
    "SehirAdi": "ADANA",
    "SehirAdiEn": "ADANA",
    "SehirID": "500",
    "BagliOlduguUlkeID": "2"
  },
  ...
]
/ilceler/539 yanıtı:
[
  {
    "IlceAdi": "KADIKÖY",
    "IlceAdiEn": "KADIKOY",
    "IlceID": "9541",
    "BagliOlduguSehirID": "539"
  },
  ...
]
Kod Örnekleri
JavaScript:
const response = await fetch('https://namazvakti.mtopal.dev/vakitler/9541');
const vakitler = await response.json();
const bugun = vakitler[0];
console.log(`İmsak: ${bugun.Imsak}, Akşam: ${bugun.Aksam}`);
Python:
import requests

# Türkiye şehirleri
sehirler = requests.get("https://namazvakti.mtopal.dev/sehirler/2").json()

# İstanbul'u bul
istanbul = next(s for s in sehirler if s["SehirAdi"] == "İSTANBUL")

# İlçelerini al
ilceler = requests.get(f"https://namazvakti.mtopal.dev/ilceler/{istanbul['SehirID']}").json()

# Kadıköy 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:
$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:
curl https://namazvakti.mtopal.dev/vakitler/9541
Teknik Detaylar
  • Format: Tüm yanıtlar JSON formatındadır
  • CORS: Tüm kaynaklardan erişime açıktır (Access-Control-Allow-Origin: *)
  • Metod: Sadece GET ve HEAD desteklenir
  • İstek Limiti: IP başına dakikada 10, saatte 100 istek (endpoint grubu başına)
  • Önbellek: Vakit verileri yıllık olarak önbelleklenir.
  • Kimlik Doğrulama: Gerektirmez, doğrudan kullanabilirsiniz
Hata Kodları
  • 404: Geçersiz endpoint veya bulunamayan ID
  • 405: Desteklenmeyen HTTP metodu
  • 422: Zorunlu parametre eksik
  • 429: İstek limiti aşıldı (biraz bekleyin)
  • 502: Diyanet sunucusuna bağlantı hatası (geçici)
Hata yanıtları şu formattadır:
{"detail": "Hata açıklaması."}
Bilinen Sorunlar (Diyanet Kaynaklı)
  • Bazı ülkelerin İngilizce adları aslında Türkçedir (ör: ORTA AFRIKA CUMHURIYETI)
  • Ülke adlarında Türkçe karakter kullanımı tutarsızdır (TÜRKİYE vs CIN)
  • Birleşik Krallık bölgeleri INGILTERE altında gruplanmıştır
  • ISO 8601 tarih alanındaki saat dilimi her zaman +03:00 (Türkiye) gösterir, ilçenin lokal saatini yansıtmaz
_______________________________________________

Link: https://namazvakti.mtopal.dev
Dokümantasyon: https://namazvakti.mtopal.dev/docs.html

Soru, öneri veya hata bildirimi için bu konu altına yazabilirsiniz. Hayırlı akşamlar.