Nöbetçi Eczane Api
Türkiye ve KKTC genelindeki güncel nöbetçi eczane listelerine, il ve ilçe sorgularına ve GPS koordinat bazlı en yakın eczane konumlarına programatik erişim sağlayın.
API_BASE_URLX-Api-Key: SENIN_API_ANAHTARINGenel Bakış & Giriş
Eczaneler.ORG v2 REST API; Türkiye ve KKTC genelindeki tüm eczanelerin güncel nöbet listelerine, il/ilçe bazlı nöbetçi eczane kayıtlarına ve koordinat (enlem/boylam) bazlı en yakın eczane lokasyonlarına programatik erişim sunan yüksek performanslı bir servistir.
RESTful & JSON
Standart HTTP fiilleri (GET, POST), temiz URL yapısı ve tam tip uyumlu JSON çıktısı.
10 Dk Akıllı Önbellek
Önbellek mimarisi sayesinde milisaniyeler seviyesinde ultra hızlı yanıt süreleri.
IP & Anahtar Güvenliği
API Key doğrulaması ve dinamik IP Whitelist güncelleme desteği ile tam güvenlik.
Resmi SDK & İstemci Kütüphaneleri
Projenize uygun dili seçip tek komutla kurulum yapabilirsiniz.
Kimlik Doğrulama (Authentication)
Tüm istekler güvenli HTTPS protokolü üzerinden gerçekleştirilmeli ve yetkilendirme için her istekteX-Api-Keybaşlığı (HTTP Header) eklenmelidir.
Sayfalama ve Limit Parametreleri (Pagination)
Tüm listeleme uç noktalarında esnek sayfalama ve limit kontrolü desteklenir. İstemci query string veya body üzerinden kayıt adedini yönetebilir:
Herhangi bir limit parametresi belirtilmediğinde sayfa başına dönen kayıt sayısıdır.
Query string'e ?limit=40 veya ?per_page=50 ekleyerek özelleştirilebilir.
50'den büyük gönderilen istekler sistem tarafından otomatik olarak 50'ye sınırlandırılır.
Dönen Pagination Meta Nesnesi
"pagination": {
"total": 1240, // Kriterdeki toplam eczane adedi
"per_page": 25, // Sayfa başına dönen kayıt sayısı
"current_page": 1, // Aktif sayfa numarası
"total_pages": 50, // Toplam sayfa sayısı
"has_more": true, // Sonraki sayfa var mı? (true / false)
"prev_page": null, // Önceki sayfa no (veya null)
"next_page": 2 // Sonraki sayfa no (veya null)
}Eczane Veri Modeli (Şema Referansı)
API v2 genelindeki tüm nöbetçi ve standart eczane yanıtlarında dönen nesne alanları aşağıda detaylandırılmıştır:
| Alan Adı | Veri Tipi | Açıklama & Standartlar |
|---|---|---|
| id | int | Eczanenin veritabanındaki benzersiz kimlik numarası (örn: 1204). |
| city_id | int | İlin plaka/kimlik kodu (örn: 34 [İstanbul], 1 [Adana]). |
| district_id | int | İlçenin resmi ID değeri (örn: 440 [Kadıköy], 1757 [Çukurova]). |
| name | string | Eczanenin resmi tabela adı (örn: "Aygül Eczanesi"). |
| phone | string | Eczane sabit veya mobil iletişim numarası (örn: "02163456789"). |
| city | string | Bulunduğu ilin adı (örn: "İstanbul"). |
| district | string | Resmi TÜİK ilçe adı (örn: "Kadıköy"). |
| locality | string | Semt, mahalle veya nöbet bölgesi (örn: "Moda", "Alsancak"). |
| address | string | Tam açık adres metni. |
| address_description | string | Adres tarifi, referans bina veya yol notu (örn: "Devlet Hastanesi Karşısı"). |
| coordinates | object | Coğrafi koordinatlar: lat (enlem: float) ve lng (boylam: float). Harita kütüphaneleriyle (Google Maps, Leaflet, Mapbox) %100 uyumludur. |
| map_link | string | Kullanıcıyı doğrudan Google Maps navigasyonuna yönlendiren hazır bağlantı. |
| is_sentry | boolean | Eczanenin nöbetçi olup olmadığı (true / false). |
| workingHours | string | Nöbet veya mesai saati aralığı (örn: "24 Saat Açık"). |
API Uç Noktaları (Endpoints)
Aşağıdaki tüm uç noktalara HTTPS üzerinden ve X-Api-Key başlığı ile istek gönderilebilir:
Nöbetçi Eczane Servisleri
/pharmacies/sentry-pharmaciesTürkiye genelinde o gün nöbetçi olan eczaneleri sayfalı olarak listeler (GET veya POST metodu destekler).
İstek Parametreleri
pageSayfa numarası (opsiyonel query parametresi, varsayılan: 1)
limitSayfa başına kayıt sayısı (opsiyonel query parametresi: 1-50, varsayılan: 25, örn: ?limit=50)
{
"data": [
{
"id": 1204,
"city_id": 1,
"district_id": 1757,
"name": "Aygül Eczanesi",
"phone": "05070251485",
"city": "Adana",
"district": "Çukurova",
"locality": "Mahfesığmaz",
"address": "MAHFESIĞMAZ MAH.ŞEHİTLER BULV. KAROL SİTESİ NO:14/L",
"address_description": "Karol Sitesi altı, Şehitler Bulvarı üzeri",
"sentry_date": "2026-09-14",
"is_sentry": true,
"workingHours": "24 Saat Açık",
"note": "",
"status": "publish",
"coordinates": {
"lat": 37.03424072,
"lng": 35.30810547
},
"map_link": "https://www.google.com/maps/search/?api=1&query=37.03424072,35.30810547"
}
],
"pagination": {
"total": 1240,
"per_page": 25,
"current_page": 1,
"total_pages": 50,
"has_more": true,
"prev_page": null,
"next_page": 2
}
}/pharmacies/sentry-city-list/{city}/{page?}Belirtilen ildeki nöbetçi eczaneleri listeler (İl slug değeri VEYA Plaka/Şehir ID kabul eder).
İstek Parametreleri
cityİl slug değeri (örn: istanbul, adana) VEYA Plaka/Şehir ID (örn: 34, 1)
pageSayfa numarası (opsiyonel path parametresi, varsayılan: 1)
limitSayfa başına kayıt sayısı (opsiyonel query parametresi: 1-50, varsayılan: 25, örn: ?limit=50)
{
"city_id": 1,
"data": [
{
"id": 1204,
"city_id": 1,
"district_id": 1757,
"name": "Aygül Eczanesi",
"phone": "05070251485",
"city": "Adana",
"district": "Çukurova",
"locality": "Mahfesığmaz",
"address": "MAHFESIĞMAZ MAH.ŞEHİTLER BULV. KAROL SİTESİ NO:14/L",
"address_description": "Karol Sitesi altı, Şehitler Bulvarı üzeri",
"sentry_date": "2026-09-14",
"is_sentry": true,
"workingHours": "24 Saat Açık",
"note": "",
"status": "publish",
"coordinates": {
"lat": 37.03424072,
"lng": 35.30810547
},
"map_link": "https://www.google.com/maps/search/?api=1&query=37.03424072,35.30810547"
}
],
"pagination": {
"total": 5,
"per_page": 25,
"current_page": 1,
"total_pages": 1,
"has_more": false,
"prev_page": null,
"next_page": null
}
}/pharmacies/sentry-district-list/{city}/{district}/{page?}Belirli bir ilçedeki nöbetçi eczaneleri listeler (İl slug/ID ve İlçe slug/ID kabul eder).
sentry-city-list/34/440 şeklinde çağrı yaparsanız, sistem 440 değerini sayfa numarası kabul eder ve boş liste döner. İlçe sorguları için her zaman bu endpoint'i (sentry-district-list) kullanınız.İstek Parametreleri
cityİl slug değeri (örn: istanbul, adana) VEYA Şehir ID (örn: 34, 1)
districtİlçe slug değeri (örn: kadikoy, cukurova) VEYA İlçe ID (örn: 440, 1757)
pageSayfa numarası (opsiyonel path parametresi, varsayılan: 1)
limitSayfa başına kayıt sayısı (opsiyonel query parametresi: 1-50, varsayılan: 25, örn: ?limit=50)
{
"city_id": 1,
"district_id": 1757,
"data": [
{
"id": 1204,
"city_id": 1,
"district_id": 1757,
"name": "Aygül Eczanesi",
"phone": "05070251485",
"city": "Adana",
"district": "Çukurova",
"locality": "Mahfesığmaz",
"address": "MAHFESIĞMAZ MAH.ŞEHİTLER BULV. KAROL SİTESİ NO:14/L",
"address_description": "Karol Sitesi altı, Şehitler Bulvarı üzeri",
"sentry_date": "2026-09-14",
"is_sentry": true,
"workingHours": "24 Saat Açık",
"note": "",
"status": "publish",
"coordinates": {
"lat": 37.03424072,
"lng": 35.30810547
},
"map_link": "https://www.google.com/maps/search/?api=1&query=37.03424072,35.30810547"
}
],
"pagination": {
"total": 3,
"per_page": 25,
"current_page": 1,
"total_pages": 1,
"has_more": false,
"prev_page": null,
"next_page": null
}
}/pharmacies/pharmacies-nearbyKullanıcı koordinatlarına (enlem/boylam) göre en yakın eczaneleri mesafeye göre artan sırada listeler.
İstek Parametreleri
latfloatbodyZorunluKullanıcı enlemi (latitude) koordinatı (örn. 37.0342)
lonfloatbodyZorunluKullanıcı boylamı (longitude) koordinatı (örn. 35.3081)
is_sentryintegerbodyOpsiyonelVarsayılan: 1Nöbetçi filtreleme seçeneği. Zorunlu değildir; gönderilmediğinde varsayılan olarak 1 kabul edilir.
{
"lat": 37.0342,
"lon": 35.3081,
"is_sentry": 1
}{
"data": [
{
"id": 1204,
"city_id": 1,
"district_id": 1757,
"name": "Aygül Eczanesi",
"phone": "05070251485",
"city": "Adana",
"district": "Çukurova",
"locality": "Mahfesığmaz",
"address": "MAHFESIĞMAZ MAH.ŞEHİTLER BULV. KAROL SİTESİ NO:14/L",
"address_description": "Karol Sitesi altı, Şehitler Bulvarı üzeri",
"sentry_date": "2026-09-14",
"is_sentry": true,
"workingHours": "24 Saat Açık",
"note": "",
"status": "publish",
"coordinates": {
"lat": 37.03424072,
"lng": 35.30810547
},
"map_link": "https://www.google.com/maps/search/?api=1&query=37.03424072,35.30810547",
"distance_km": 0.74
}
]
}İl, İlçe ve Sistem Servisleri
/pharmacies/citiesTürkiye'deki tüm illeri plaka/id, isim, slug ve toplam kayıtlı eczane sayılarıyla listeler.
{
"status": true,
"cities": [
{
"id": 1,
"name": "Adana",
"slug": "adana",
"pharmacy_count": 860
},
{
"id": 34,
"name": "İstanbul",
"slug": "istanbul",
"pharmacy_count": 5240
}
]
}/pharmacies/districts/{city}Bir ile ait tüm resmi ilçeleri ve o ilçeye kayıtlı semt/bölge listesini (localities) döner (İl slug veya Şehir ID kabul eder).
İstek Parametreleri
cityİl slug (örn. istanbul, adana) VEYA Şehir ID (örn. 34, 1)
{
"status": true,
"city_id": 34,
"city_name": "İstanbul",
"city_slug": "istanbul",
"district": [
{
"id": 440,
"city_id": 34,
"city_name": "İstanbul",
"city_slug": "istanbul",
"district_name": "Kadıköy",
"district_slug": "kadikoy",
"pharmacy_count": 185,
"localities": [
"Bostancı",
"Caddebostan",
"Fenerbahçe",
"Fikirtepe",
"Göztepe",
"Koşuyolu",
"Moda"
]
}
]
}/pharmacies/api-account-infoAPI hesabı hakkında kalan gün, toplam istek adedi ve durum bilgilerini döner.
{
"status": true,
"api_info": {
"full_name": "Ahmet Yılmaz",
"email": "[email protected]",
"phone": "5551234567",
"is_active": "active",
"total_request": 1420,
"expires_at": "2026-12-31 23:59:59",
"remaining_days": 121
}
}/update-whitelistKullanıcının API hesabına erişim izni olan IP adreslerini doğrudan günceller (mevcut olanın üzerine yazar). Hem Eczane hem de Noter API hesapları için ortak ve genel uç noktadır.
İstek Parametreleri
ipsstring | string[]bodyZorunluTanımlanacak IP adres(ler)i. Wildcard (yıldızlı) IP için en az 2 blok sayısal olmalıdır (örn: '5.132.*' veya '23.45.67.*', tek IP). Standart IP için en fazla 2 IP belirtilebilir (örn: ['192.168.1.1', '10.0.0.1']).
{
"ips": "5.132.*"
}{
"status": true,
"message": "IP whitelist başarıyla güncellendi.",
"allowed_ip": "5.132.*",
"ips": [
"5.132.*"
],
"total": 1
}Premium Veri Servisi (Tüm Eczaneler)
/pharmacies/all-pharmaciesTürkiye'deki tüm eczaneleri (nöbetçi ve standart) listeler. İl / ilçe adı (metin veya slug) ve il / ilçe ID parametreleriyle gelişmiş filtrelemeyi destekler. Hem GET (query string) hem de POST (JSON body) metoduyla çağrılabilir. Bu özellik ekstra ücretli bir servis olarak sunulur. Ortalama +30.000 eczane kaydı bulunmaktadır.
İstek Parametreleri
citystring | intquery / bodyOpsiyonelİl adı, slug'ı veya il plaka/ID değeri (örn: 'İstanbul', 'adana', 34).
city_idintquery / bodyOpsiyonelResmi şehir ID / plaka kodu (örn: 34, 1).
districtstring | intquery / bodyOpsiyonelİlçe adı, slug'ı veya ilçe ID değeri (örn: 'Kadıköy', 'seyhan', 13).
district_idintquery / bodyOpsiyoneldistricts tablosundaki benzersiz ilçe ID değeri (örn: 13, 440). Belirtildiğinde il otomatik çözümlenir.
pageintquery / pathOpsiyonelVarsayılan: 1Sayfa numarası (opsiyonel query veya path parametresi: /all-pharmacies/2, varsayılan: 1).
limitintquery / bodyOpsiyonelVarsayılan: 25Sayfa başına kayıt sayısı (1-50 arası, varsayılan: 25, maksimum: 50).
{
"city": "adana",
"district": "seyhan",
"limit": 50
}{
"city_id": 1,
"city_name": "Adana",
"district_id": 13,
"district_name": "Seyhan",
"data": [
{
"id": 1204,
"city_id": 1,
"district_id": 13,
"name": "Aygül Eczanesi",
"phone": "03220000000",
"city": "Adana",
"district": "Seyhan",
"locality": "Cemalpaşa",
"address": "Cemalpaşa Mah. Toros Cad. No:14/A Seyhan/ADANA",
"address_description": "Toros Caddesi üzeri",
"sentry_date": "2026-09-14",
"is_sentry": false,
"workingHours": "08:30 - 19:00",
"note": "",
"status": "publish",
"coordinates": {
"lat": 36.9982,
"lng": 35.3284
},
"map_link": "https://www.google.com/maps/search/?api=1&query=36.9982,35.3284"
}
],
"pagination": {
"total": 385,
"per_page": 50,
"current_page": 1,
"total_pages": 8,
"has_more": true,
"prev_page": null,
"next_page": 2
}
}Entegrasyon Kod Örnekleri
API servisini kendi projenize entegre etmek için aşağıdaki hazır kod örneklerini doğrudan kopyalayabilirsiniz:
SENIN_API_ANAHTARIN alanını size iletilen anahtar ile değiştirin.typescriptHTTP Yanıt ve Hata Kodları
API isteklerinde karşılaşabileceğiniz standart HTTP durum kodları ve anlamları:
| Durum Kodu | Tanım | Açıklama & Olası Neden |
|---|---|---|
| 200 OK | Başarılı | İstek başarıyla işlendi ve beklenen veri JSON olarak döndürüldü. |
| 400 Bad Request | Geçersiz İstek | Eksik parametre, geçersiz koordinat aralığı veya hatalı JSON gövdesi. |
| 401 Unauthorized | Yetkisiz Erişim | X-Api-Key başlığı eksik veya gönderilen anahtar geçersiz. |
| 403 Forbidden | Erişim Engellendi | Hesap süresi dolmuş, IP whitelist listesinde olmayan adresten istek yapılmış veya yetkisiz endpoint. |
| 404 Not Found | Kayıt Bulunamadı | İlgili il veya ilçe kimliğinde eşleşen nöbetçi eczane bulunamadı. |
| 429 Rate Limit | Kota Aşımı | Tanımlı saatlik/dakikalık aşırı istek limiti aşıldı. Kısa süre bekleyip tekrar deneyin. |
| 500 Server Error | Sunucu Hatası | Sunucu tarafında beklenmeyen bir durum oluştu. Telegram üzerinden destek alabilirsiniz. |
Kullanım Kuralları ve Önbellek
- 10 Dakikalık Önbellek (Cache): Nöbetçi eczane verileri 10 dakikada bir otomatik güncellenir. Aynı parametrelerle art arda gereksiz istek atmak yerine yanıtları uygulamanızda önbelleklemeniz tavsiye edilir.
- IP Whitelist Güvenliği: API istekleri yalnızca hesabınıza tanımlı izinli IP adreslerinden kabul edilir.
- Dinamik IP Yönetimi:
POST /update-whitelistendpoint'i üzerinden tanımlı IP adreslerinizi güncelleyebilirsiniz (Güvenlik gereği günde sadece 1 kez güncelleme yapılabilir; en fazla 2 standart IP veya tek 1 wildcard IP örn:5.132.*). - Güvenli Saklama: API anahtarınızın çalınması durumunda hemen Telegram üzerinden destek ekibimizle iletişime geçerek anahtarınızı yenileyebilirsiniz.
Paketler ve Fiyatlandırma
İhtiyacınıza uygun API paketini seçerek 1 yıllık kesintisiz lisansa sahip olabilirsiniz:
Tüm Nöbetçi Eczaneler
Türkiye ve KKTC genelindeki 81 ilin tüm nöbetçi eczanelerine tam erişim.
- Türkiye ve KKTC tüm 81 ilin nöbetçi verisi
- Konum bazlı en yakın nöbetçi eczane sorgusu (Nearby)
- Sınırsız API isteği ve sayfalama desteği
- 7/24 Teknik destek ve Postman koleksiyonu
Belirli İl Paketi
Sadece seçtiğiniz tek bir ildeki (örn: yalnızca İzmir veya Ankara) nöbetçi eczaneler.
- Seçilen tek bir ile ait nöbetçi eczaneler
- İlçe ve semt bazlı filtreleme desteği
- Sınırsız API isteği
- Standart teknik destek
Sıkça Sorulan Sorular (S.S.S.)
Q.Nöbetçi eczane verileri ne sıklıkla güncellenir?
Nöbetçi eczane verileri her 60 dakikada bir resmi kaynaklarla senkronize edilerek otomatik güncellenir. Ayrıca sistemdeki 10 dakikalık akıllı önbellek mimarisi sayesinde tekrarlayan istekler milisaniyeler seviyesinde ultra hızlı yanıtlanır.
Q.IP adresi zorunlu mu? IP Whitelist mekanizması nasıl çalışır?
IP adresi tanımlamak zorunlu değildir. IP adresi tanımlanmadığı durumlarda standart kullanımlar için gayet yeterli düzeyde olan temel Rate Limit uygulanır. Sınırsız istek ve yüksek hacimli sorgulamalar için ise sunucu IP adresinizi tanımlamanız önerilir. Tanımlı IP adresinizi dilediğiniz zaman 'POST /update-whitelist' uç noktası üzerinden saniyeler içinde güncelleyebilirsiniz.
Q.Nöbetçi Eczane API'sini hangi resmi yazılım paketleri ve SDK'lar destekliyor?
API ekosistemimiz için geliştirilen 7 resmi kütüphane mevcuttur: JavaScript / TypeScript (npm: nobetci-eczane-api), PHP (Composer: mehmeterdogan/nobetci-eczane-api), Python (pip: nobetci-eczane-api), C# / .NET (NuGet: NobetciEczane.Api), Flutter / Dart (pub.dev: nobetci_eczane_api), Go (pkg.go.dev/github.com/mehmeterdogan/nobetci-eczane-api-go) ve Java / Android (JitPack: nobetci-eczane-api-java).
Q.Satın almadan önce API servisini ücretsiz test edebilir miyim?
Evet. Telegram üzerinden destek ekibimizle iletişime geçtiğinizde 3 günlük ücretsiz, tüm uç noktalara ve verilere tam erişim sunan test API anahtarınız hemen tanımlanır.
Q.Hangi il ve ilçelerin nöbetçi eczaneleri API kapsamında sunulmaktadır?
Türkiye'nin 81 ilinin ve 973 ilçesinin tamamı ile Kuzey Kıbrıs Türk Cumhuriyeti (KKTC - Lefkoşa, Gazimağusa, Girne, Güzelyurt, İskele, Lefke) genelindeki tüm nöbetçi eczaneler eksiksiz olarak listelenmektedir.
Q.GPS koordinatları (enlem / boylam) ile en yakın nöbetçi eczaneleri nasıl bulabilirim?
'POST /pharmacies/pharmacies-nearby' uç noktasına lat, lon ve is_sentry: 1 parametrelerini göndererek kullanıcının bulunduğu konuma en yakın nöbetçi eczaneleri metre cinsinden mesafe sıralı olarak çekebilirsiniz.
Q.Tüm eczaneler (nöbetçi olmayan aktif eczaneler dahil) verisini alabilir miyim ve filtreleyebilir miyim?
Evet. Türkiye genelindeki yaklaşık 30.000+ aktif eczaneyi içeren 'Tüm Eczaneler (Premium)' servisimiz mevcuttur. GET query parametreleri veya POST JSON gövdesi üzerinden il adı, ilçe adı, plaka (city_id) veya ilçe ID (district_id) göndererek hedeflenen bölgeye göre anında filtrelenmiş sonuçlar alabilirsiniz.
Q.API istek limiti (Rate Limit) ve kota kısıtlaması var mı?
API servisimizde herhangi bir yapay sorgu kotası veya kalan istek kısıtlaması bulunmaz. IP tanımlı olmayan isteklerde standart kullanıma uygun Rate Limit uygulanırken, IP Whitelist tanımlandığında tamamen sınırsız istek yapılabilir. 'GET /account' uç noktası bir kota sayacı değil; hesap sahibi, lisans durumu ve abonelik bitiş tarihlerini sorgulayan genel hesap bilgi servisidir.
Q.Eczane telefon numaraları, adres tarifleri ve konum koordinatları veride mevcut mu?
Evet. Dönen her eczane kaydında eczane adı, açık adres, il/ilçe adı, ilçe ID, telefon numarası (tel, gsm), coğrafi koordinatlar (enlem/lat, boylam/lon) ve nöbet bilgileri eksiksiz JSON formatında yer almaktadır.
İletişim & Teknik Destek
API anahtarı satın alma, 3 günlük ücretsiz test erişimi ve her türlü teknik entegrasyon sorularınız için Telegram üzerinden 7/24 bizimle doğrudan iletişime geçebilirsiniz.