Kimlik Doğrulama
Tüm API isteklerinde X-API-Key header'ı gereklidir. API anahtarınızı dashboard'dan alabilirsiniz.
curl -X GET "https://eczaneapi.com/api/v1/pharmacies/on-duty?city=istanbul" \
-H "X-API-Key: eczane_api_xxxxx..."Rate Limits & Kotalar
API kullanımınız planınıza göre sınırlandırılmıştır. Kota aşımında 429 hatası alırsınız.
| Plan | Aylık Limit | Fiyat |
|---|---|---|
| Free | 200 istek | Ücretsiz |
| Pro | 5.000 istek | $5.99/ay |
| Unlimited | Sınırsız | $19.99/ay |
Nöbetçi Eczaneler
/pharmacies/on-dutyBelirtilen il ve/veya ilçedeki nöbetçi eczaneleri döndürür. Tarih belirtilmezse bugünkü nöbetçiler döner.
Query Parameters
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| city | string | Hayır | İl adı veya slug (örn: istanbul, İstanbul) |
| district | string | Hayır | İlçe adı veya slug (örn: kadikoy) |
| date | string | Hayır | Tarih (YYYY-MM-DD formatı, varsayılan: bugün) |
Örnek İstek
GET /v1/pharmacies/on-duty?city=istanbul&district=kadikoyÖrnek Response
{
"success": true,
"data": {
"date": "2024-12-26",
"count": 3,
"pharmacies": [
{
"id": "uuid-xxx",
"name": "Şifa Eczanesi",
"address": "Caferağa Mah. Moda Cad. No:45",
"phone": "0216 345 67 89",
"phone2": null,
"location": {
"latitude": 40.9876,
"longitude": 29.0234
},
"city": {
"id": "city-uuid",
"name": "İstanbul",
"slug": "istanbul"
},
"district": {
"id": "district-uuid",
"name": "Kadıköy",
"slug": "kadikoy"
},
"duty": {
"date": "2024-12-26T00:00:00.000Z",
"startTime": null,
"endTime": null,
"isVerified": true
}
}
]
},
"meta": {
"requestId": "api-key-id"
}
}Eczane Detayı
/pharmacies/:pharmacyIdBelirtilen eczanenin detaylı bilgilerini ve yaklaşan nöbet tarihlerini döndürür.
Örnek Response
{
"success": true,
"data": {
"id": "uuid-xxx",
"name": "Şifa Eczanesi",
"address": "Caferağa Mah. Moda Cad. No:45",
"phone": "0216 345 67 89",
"phone2": null,
"email": "sifa@example.com",
"ownerName": "Ecz. Ahmet Yılmaz",
"location": {
"latitude": 40.9876,
"longitude": 29.0234
},
"city": {
"id": "city-uuid",
"name": "İstanbul",
"slug": "istanbul"
},
"district": {
"id": "district-uuid",
"name": "Kadıköy",
"slug": "kadikoy"
},
"is24Hour": false,
"hasDelivery": true,
"workingHours": {
"monday": "08:30-19:00",
"tuesday": "08:30-19:00"
},
"upcomingDuties": [
{
"date": "2024-12-28T00:00:00.000Z",
"startTime": null,
"endTime": null
}
]
}
}Unlimited API (Özel Erişim)
/pharmacies/unlimitedTüm eczaneleri ve bugünün nöbetçilerini döndürür. İsteğe bağlı olarak il ve ilçe filtresi eklenebilir.
Query Parameters
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| city | string | Hayır | Şehir adı veya slug (örn: istanbul) |
| district | string | Hayır | İlçe adı veya slug (örn: kadikoy) |
Örnek Response
{
"success": true,
"data": {
"date": "2024-12-26",
"counts": {
"totalPharmacies": 4250,
"onDutyCount": 385
},
"onDuty": [
{
"id": "uuid-xxx",
"name": "Şifa Eczanesi",
"address": "Caferağa Mah. Moda Cad. No:45",
"phone": "0216 345 67 89",
"location": { "latitude": 40.9876, "longitude": 29.0234 },
"city": { "name": "İstanbul", "slug": "istanbul" },
"district": { "name": "Kadıköy", "slug": "kadikoy" }
}
],
"allPharmacies": [
{
"id": "uuid-xxx",
"name": "Hayat Eczanesi",
"address": "Moda Cad. No:12",
"phone": "0216 111 22 33",
"location": { "latitude": 40.98, "longitude": 29.03 },
"city": { "name": "İstanbul", "slug": "istanbul" },
"district": { "name": "Kadıköy", "slug": "kadikoy" },
"is24Hour": false
}
]
}
}Yakındaki Nöbetçi Eczaneler (Konum Bazlı)
/pharmacies/nearbyBelirtilen konuma yakın nöbetçi eczaneleri, mesafe bilgisi ile birlikte döndürür.
Query Parameters
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| latitude | number | Evet | Kullanıcının enlemi (-90 ile 90 arası) |
| longitude | number | Evet | Kullanıcının boylamı (-180 ile 180 arası) |
| radius | number | Hayır | Arama yarıçapı km (varsayılan: 5, max: 50) |
| date | string | Hayır | Tarih (YYYY-MM-DD, varsayılan: bugün) |
Örnek İstek
GET /v1/pharmacies/nearby?latitude=40.9876&longitude=29.0234&radius=5Örnek Response
{
"success": true,
"data": {
"date": "2026-03-01",
"searchLocation": {
"latitude": 40.9876,
"longitude": 29.0234
},
"radius": 5,
"count": 2,
"pharmacies": [
{
"id": "uuid-xxx",
"name": "Şifa Eczanesi",
"address": "Caferağa Mah. Moda Cad. No:45",
"phone": "0216 345 67 89",
"phone2": null,
"location": {
"latitude": 40.9875,
"longitude": 29.0287
},
"city": {
"id": "city-uuid",
"name": "İstanbul",
"slug": "istanbul"
},
"district": {
"id": "district-uuid",
"name": "Kadıköy",
"slug": "kadikoy"
},
"duty": {
"date": "2026-03-01T00:00:00.000Z",
"isVerified": true
},
"distance": 0.48
}
]
},
"meta": {
"requestId": "api-key-id"
}
}İller
/citiesTürkiye'deki tüm illeri, plaka kodları ve eczane/ilçe sayılarıyla birlikte listeler.
Örnek Response
{
"success": true,
"data": [
{
"id": "uuid-xxx",
"name": "Adana",
"slug": "adana",
"plateCode": "01",
"districtsCount": 15,
"pharmaciesCount": 245
},
{
"id": "uuid-yyy",
"name": "İstanbul",
"slug": "istanbul",
"plateCode": "34",
"districtsCount": 39,
"pharmaciesCount": 3450
}
]
}İlçeler
/cities/:citySlug/districtsBelirtilen ilin tüm ilçelerini ve eczane sayılarını listeler.
Örnek İstek
GET /v1/cities/istanbul/districtsÖrnek Response
{
"success": true,
"data": {
"city": {
"id": "city-uuid",
"name": "İstanbul",
"slug": "istanbul"
},
"districts": [
{
"id": "district-uuid-1",
"name": "Kadıköy",
"slug": "kadikoy",
"pharmaciesCount": 156
},
{
"id": "district-uuid-2",
"name": "Üsküdar",
"slug": "uskudar",
"pharmaciesCount": 134
}
]
}
}Hata Kodları
API standart HTTP durum kodlarını ve tutarlı hata formatı kullanır.
Hata Response Formatı
{
"success": false,
"error": "Aylık istek kotanız doldu",
"code": "QUOTA_EXCEEDED",
"quota": {
"limit": 10,
"used": 10
}
}| Kod | HTTP | Açıklama |
|---|---|---|
| MISSING_API_KEY | 401 | X-API-Key header'ı eksik |
| INVALID_API_KEY | 401 | API anahtarı geçersiz veya deaktif |
| NO_SUBSCRIPTION | 403 | Aktif abonelik bulunamadı |
| QUOTA_EXCEEDED | 429 | Aylık istek kotası doldu |
| CITY_NOT_FOUND | 404 | İl bulunamadı |
| DISTRICT_NOT_FOUND | 404 | İlçe bulunamadı |
| PHARMACY_NOT_FOUND | 404 | Eczane bulunamadı |
| PLAN_RESTRICTION | 403 | Plan yetersiz (Pro veya Unlimited gerekli) |
| MISSING_PARAMETERS | 400 | Zorunlu parametre eksik |
| INTERNAL_ERROR | 500 | Sunucu hatası |