Nöbetçi Eczane Api
Nöbetçi Eczane Api ile Türkiye ve KKTC genelindeki güncel nöbetçi eczane listelerine, il/ilçe sorgularına ve 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 & Kütüphane Ekosistemi
Node.js, React, Next.js, PHP ve Python projelerinize tek komutla kurun.
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: "08:00 - 23:59"). |
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": "08:00 - 23:59",
"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": "08:00 - 23:59",
"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": "08:00 - 23:59",
"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.
{
"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": "08:00 - 23:59",
"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']).
{
"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 listeler. Bu özellik extra ücretli bir özellik olarak sunulur. Standart API hizmeti satın aldıktan sonra bu hizmeti satın alabilirsiniz. Ortalama +30.000 eczane kaydı bulunmaktadır.
İ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, maksimum: 50)
{
"data": [
{
"id": 15420,
"city_id": 16,
"district_id": 161,
"name": "Çalı Derman Eczanesi",
"phone": "02244823218",
"city": "Bursa",
"district": "Nilüfer",
"locality": "Çalı",
"address": "ÇALI MAH. BURSA CAD. NO:3",
"address_description": "İcap nöbetçidir",
"sentry_date": "2026-09-14",
"is_sentry": false,
"workingHours": "08:00 - 19:00",
"note": "",
"status": "publish",
"coordinates": {
"lat": 40.1686614,
"lng": 28.9193624
},
"map_link": "https://www.google.com/maps/search/?api=1&query=40.1686614,28.9193624"
}
],
"pagination": {
"total": 28291,
"per_page": 50,
"current_page": 1,
"total_pages": 566,
"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.)
Satın almadan önce API servisini test edebilir miyim?
Evet. Telegram üzerinden bizimle iletişime geçtiğinizde 3 günlük ücretsiz tam yetkili test API anahtarı tanımlanıp size iletilir.
IP adresim değiştiğinde ne yapmalıyım?
API üzerinden POST /update-whitelist uç noktasını çağırarak tanımlı IP adresinizi saniyeler içinde güncelleyebilirsiniz (Güvenlik gereği günde 1 kez IP değiştirme hakkı tanınmaktadır). Ayrıca Telegram üzerinden destek ekibimize de bildirebilirsiniz.
Nöbetçi eczane verileri ne sıklıkla güncellenir?
Nöbetçi Eczane verileri her 60 dakikada bir senkronize edilir.
Tüm eczaneler (nöbetçi olmayanlar dahil) verisini alabilir miyim?
Evet, Türkiye genelindeki yaklaşık +30.000 aktif eczaneyi kapsayan Tüm Eczaneler (Premium) paketimiz mevcuttur. Detaylar için iletişime geçebilirsiniz.
İ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.