← Ana Sayfaya Dön

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.

CORS: API tüm kaynaklardan gelen isteklere açıktır (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:

1. Ülke seç
/ulkeler
2. Şehir seç
/sehirler/{ulke_id}
3. İlçe seç
/ilceler/{sehir_id}
4. Vakitleri al
/vakitler/{ilce_id}
Örnek: Türkiye → İstanbul → Kadıköy için namaz vakitlerini almak istiyorsanız: /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:

PeriyotLimit
Dakika başına10 istek (IP başına, endpoint grubu başına)
Saat başına100 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.

Öneri: Vakit verilerini ilk istekte kendi tarafınızda önbelleğe alın. Aynı ilçe için sürekli istek göndermenize gerek yoktur; veriler günlük olarak değişmez.

Bilgilendirme

Kapsam: 209 ülke, 365 şehir ve 18.647 ilçe için namaz vakti verisi sunulmaktadır.
Atlantik Okyanusu: Atlantik Okyanusu'na ait namaz vakitleri, Diyanet İşleri Başkanlığı tarafından belirli koordinatlar baz alınarak hesaplanmıştır ve yalnızca ilgili koordinatlar için geçerlidir.
Koordinatları incele →
Tarih Aralığı: Namaz vakitleri, bulunduğunuz tarihten itibaren yıl sonuna kadar listelenmektedir.

Ülkeler

GET /ulkeler

Desteklenen tüm ülkelerin listesini döner.

Yanıt Alanları

AlanTipAçıklama
UlkeAdistringÜlke adı (Türkçe)
UlkeAdiEnstringÜlke adı (İngilizce)
UlkeIDstringÜlke kimlik numarası

Örnek Yanıt

[
  {
    "UlkeAdi": "TÜRKİYE",
    "UlkeAdiEn": "TURKEY",
    "UlkeID": "2"
  },
  ...
]

Şehirler

GET /sehirler/{ulke_id}

Belirtilen ülkeye ait şehirlerin listesini döner.

Parametreler

ParametreKonumZorunluAçıklama
ulke_idURL path veya ?ulke=Evet/ulkeler endpoint'inden alınan UlkeID

Yanıt Alanları

AlanTipAçıklama
SehirAdistringŞehir adı (Türkçe)
SehirAdiEnstringŞehir adı (İngilizce)
SehirIDstringŞehir kimlik numarası
BagliOlduguUlkeIDstringBağ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

GET /ilceler/{sehir_id}

Belirtilen şehre ait ilçelerin listesini döner.

Parametreler

ParametreKonumZorunluAçıklama
sehir_idURL path veya ?sehir=Evet/sehirler endpoint'inden alınan SehirID

Yanıt Alanları

AlanTipAçıklama
IlceAdistringİlçe adı (Türkçe)
IlceAdiEnstringİlçe adı (İngilizce)
IlceIDstringİlçe kimlik numarası
BagliOlduguSehirIDstringBağ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

GET /vakitler/{ilce_id}

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

ParametreKonumZorunluAçıklama
ilce_idURL path veya ?ilce=Evet/ilceler endpoint'inden alınan IlceID

Yanıt Alanları

AlanTipAçıklama
Imsakstringİmsak vakti (SS:DD)
GunesstringGüneş doğuş vakti (SS:DD)
OglestringÖğle namazı vakti (SS:DD)
Ikindistringİkindi namazı vakti (SS:DD)
AksamstringAkşam namazı vakti (SS:DD)
YatsistringYatsı namazı vakti (SS:DD)
MiladiTarihKisastringKısa tarih (GG.AA.YYYY)
MiladiTarihUzunstringUzun tarih (GG Ay YYYY)
MiladiTarihUzunIso8601stringISO 8601 tarih
HicriTarihKisastringHicrî tarih
HicriTarihUzunstringHicrî tarih (uzun format)
GreenwichOrtalamaZamaninumberGMT 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:

KodAnlamıAçıklama
404BulunamadıGeçersiz endpoint veya var olmayan ülke/şehir/ilçe ID'si
405Metod HatasıGET ve HEAD dışındaki HTTP metodları desteklenmez
422Parametre EksikZorunlu parametre gönderilmemiş
429Çok Fazla İstekİstek limiti aşıldı, biraz bekleyip tekrar deneyin
502Kaynak 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:

SorunDetay
ÇeviriBazı ü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
GruplamaBirleşik Krallık bölgeleri INGILTERE altında tek grupta listelenmiştir
Saat DilimiMiladiTarihUzunIso8601 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