v2.0 REST APIGeliştirici Dokümantasyonu
Sistem Aktif

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.

Base URLHTTPS
API_BASE_URL
Yetkilendirme BaşlığıHeader
X-Api-Key: SENIN_API_ANAHTARIN

Genel 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.

Diğer API Servisimiz: Hafta sonu nöbetçi noter verilerine erişmek için nöbetçi noter servisini de kullanabilirsiniz.
Noter API Dokümanı

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.

Örnek İstek Başlığı (HTTP Header)
X-Api-Key:SENIN_API_ANAHTARIN
Güvenlik Uyarısı: API anahtarınızı istemci tarafında (tarayıcı Javascript dosyalarında veya açık kaynak kod depolarında) asla ifşa etmeyiniz. İsteklerinizi kendi backend sunucunuz üzerinden proxy ederek yönlendiriniz.

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:

VARSAYILAN LIMIT
25 Adet

Herhangi bir limit parametresi belirtilmediğinde sayfa başına dönen kayıt sayısıdır.

ÖZEL LIMIT (?limit=)
1 - 50

Query string'e ?limit=40 veya ?per_page=50 ekleyerek özelleştirilebilir.

MAKSİMUM TAVAN
50 Kayıt

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 TipiAçıklama & Standartlar
idintEczanenin veritabanındaki benzersiz kimlik numarası (örn: 1204).
city_idintİlin plaka/kimlik kodu (örn: 34 [İstanbul], 1 [Adana]).
district_idintİlçenin resmi ID değeri (örn: 440 [Kadıköy], 1757 [Çukurova]).
namestringEczanenin resmi tabela adı (örn: "Aygül Eczanesi").
phonestringEczane sabit veya mobil iletişim numarası (örn: "02163456789").
citystringBulunduğu ilin adı (örn: "İstanbul").
districtstringResmi TÜİK ilçe adı (örn: "Kadıköy").
localitystringSemt, mahalle veya nöbet bölgesi (örn: "Moda", "Alsancak").
addressstringTam açık adres metni.
address_descriptionstringAdres tarifi, referans bina veya yol notu (örn: "Devlet Hastanesi Karşısı").
coordinatesobjectCoğrafi koordinatlar: lat (enlem: float) ve lng (boylam: float). Harita kütüphaneleriyle (Google Maps, Leaflet, Mapbox) %100 uyumludur.
map_linkstringKullanıcıyı doğrudan Google Maps navigasyonuna yönlendiren hazır bağlantı.
is_sentrybooleanEczanenin nöbetçi olup olmadığı (true / false).
workingHoursstringNö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

GET/pharmacies/sentry-pharmacies
Tüm Nöbetçi Eczaneler

Türkiye genelinde o gün nöbetçi olan eczaneleri sayfalı olarak listeler (GET veya POST metodu destekler).

İstek Parametreleri
page

Sayfa numarası (opsiyonel query parametresi, varsayılan: 1)

limit

Sayfa başına kayıt sayısı (opsiyonel query parametresi: 1-50, varsayılan: 25, örn: ?limit=50)

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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
  }
}
GET/pharmacies/sentry-city-list/{city}/{page?}
İl Bazlı Nöbetçi Eczaneler

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)

page

Sayfa numarası (opsiyonel path parametresi, varsayılan: 1)

limit

Sayfa başına kayıt sayısı (opsiyonel query parametresi: 1-50, varsayılan: 25, örn: ?limit=50)

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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
  }
}
GET/pharmacies/sentry-district-list/{city}/{district}/{page?}
İlçe Bazlı Nöbetçi Eczaneler

Belirli bir ilçedeki nöbetçi eczaneleri listeler (İl slug/ID ve İlçe slug/ID kabul eder).

Önemli Entegrasyon Notu:İlçe aramalarında 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)

page

Sayfa numarası (opsiyonel path parametresi, varsayılan: 1)

limit

Sayfa başına kayıt sayısı (opsiyonel query parametresi: 1-50, varsayılan: 25, örn: ?limit=50)

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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
  }
}
POST/pharmacies/pharmacies-nearby
Koordinat Bazlı En Yakın Eczaneler

Kullanıcı koordinatlarına (enlem/boylam) göre en yakın eczaneleri mesafeye göre artan sırada listeler.

İstek Parametreleri
latfloatbodyZorunlu

Kullanıcı enlemi (latitude) koordinatı (örn. 37.0342)

lonfloatbodyZorunlu

Kullanıcı boylamı (longitude) koordinatı (örn. 35.3081)

is_sentryintegerbodyOpsiyonelVarsayılan: 1

Nöbetçi filtreleme seçeneği. Zorunlu değildir; gönderilmediğinde varsayılan olarak 1 kabul edilir.

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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

GET/pharmacies/cities
İller Listesi

Türkiye'deki tüm illeri plaka/id, isim, slug ve toplam kayıtlı eczane sayılarıyla listeler.

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "status": true,
  "cities": [
    {
      "id": 1,
      "name": "Adana",
      "slug": "adana",
      "pharmacy_count": 860
    },
    {
      "id": 34,
      "name": "İstanbul",
      "slug": "istanbul",
      "pharmacy_count": 5240
    }
  ]
}
GET/pharmacies/districts/{city}
İlçeler ve Semtler Listesi

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)

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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"
      ]
    }
  ]
}
GET/pharmacies/api-account-info
API Hesap ve Kota Bilgisi

API hesabı hakkında kalan gün, toplam istek adedi ve durum bilgilerini döner.

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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
  }
}
POST/update-whitelist
IP Whitelist Ekleme ve Güncelleme

Kullanı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.

Önemli Uyarı:IP adresi güncelleme işlemi güvenlik gereği günde sadece 1 (bir) kez yapılabilir. Gün içinde tek bir IP değiştirme hakkınız bulunmaktadır.
İstek Parametreleri
ipsstring | string[]bodyZorunlu

Tanı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']).

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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)

PREMIUM SERVIS
GET/pharmacies/all-pharmacies
Tüm Eczaneler (Premium)

Tü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
page

Sayfa numarası (opsiyonel query parametresi, varsayılan: 1)

limit

Sayfa başına kayıt sayısı (opsiyonel query parametresi: 1-50, varsayılan: 25, maksimum: 50)

Örnek Yanıt (JSON Response)200 OK
application/json
HTTP/1.1 200 OK
{
  "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:

// Kurulum: npm install nobetci-eczane-api

import { EczaneAPI } from 'nobetci-eczane-api';

const api = new EczaneAPI({
  apiKey: 'SENIN_API_ANAHTARIN'
});

// 1. Şehir ID (34 - İstanbul) ile 50 Nöbetçi Eczane Çekme
const istanbul = await api.getSentryByCity(34, { limit: 50 });
console.log('İstanbul Nöbetçileri:', istanbul.data);

// 2. İlçe ID (440 - Kadıköy) ile Nöbetçi Eczaneleri Çekme
const kadikoy = await api.getSentryByDistrict(34, 440);
console.log('Kadıköy Nöbetçileri:', kadikoy.data);

// 3. Konum Bazlı En Yakın Nöbetçi Eczaneler
const enYakinlar = await api.getNearby({
  lat: 41.0082,
  lon: 28.9784,
  isSentry: true,
  limit: 10
});
console.log('En Yakın Eczaneler:', enYakinlar.data);
Örneklerdeki SENIN_API_ANAHTARIN alanını size iletilen anahtar ile değiştirin.
Resmi kütüphanelerle entegrasyonu saniyeler içinde tamamlayabilirsiniz:

HTTP Yanıt ve Hata Kodları

API isteklerinde karşılaşabileceğiniz standart HTTP durum kodları ve anlamları:

Durum KoduTanımAçıklama & Olası Neden
200 OKBaşarılıİstek başarıyla işlendi ve beklenen veri JSON olarak döndürüldü.
400 Bad RequestGeçersiz İstekEksik parametre, geçersiz koordinat aralığı veya hatalı JSON gövdesi.
401 UnauthorizedYetkisiz ErişimX-Api-Key başlığı eksik veya gönderilen anahtar geçersiz.
403 ForbiddenErişim EngellendiHesap süresi dolmuş, IP whitelist listesinde olmayan adresten istek yapılmış veya yetkisiz endpoint.
404 Not FoundKayıt Bulunamadıİlgili il veya ilçe kimliğinde eşleşen nöbetçi eczane bulunamadı.
429 Rate LimitKota AşımıTanımlı saatlik/dakikalık aşırı istek limiti aşıldı. Kısa süre bekleyip tekrar deneyin.
500 Server ErrorSunucu HatasıSunucu tarafında beklenmeyen bir durum oluştu. Telegram üzerinden destek alabilirsiniz.

Kullanım Kuralları ve Önbellek

Kullanım Limiti Yoktur (Sınırsız İstek):Eczaneler.org API servisinde standart paketlerde yapay istek sınırlaması bulunmaz. Adil kullanım (fair-use) kurallarına uyulduğu sürece dilediğiniz kadar istek yapabilirsiniz.
  • 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-whitelist endpoint'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:

En Çok Tercih Edilen

Tüm Nöbetçi Eczaneler

Türkiye ve KKTC genelindeki 81 ilin tüm nöbetçi eczanelerine tam erişim.

₺1.000/ yıllık
  • 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
Satın Al / Lisans Başlat

Belirli İl Paketi

Sadece seçtiğiniz tek bir ildeki (örn: yalnızca İzmir veya Ankara) nöbetçi eczaneler.

₺500/ yıllık
  • 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
İl Paketi Satın Al

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

Telegram Doğrudan Destek & Başvuru

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.

Telegram'da Mesaj Gönder