API v1

RANDEVU AJANDAM API

Sağlık randevu deneyimini
bağlantılı hale getirin.

Hekim ve klinik web siteleri, yönetim panelleri ve mobil hasta uygulaması için tekil API başvuru kaynağı.

Uygun randevu saatleri
curl -G "http://127.0.0.1:8001/api/v1/public/slots" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "X-Api-Secret: YOUR_API_SECRET" \
  --data-urlencode "date=2026-07-20"
200 {"success":true,"data":{"slots":[...]}}
104+Endpoint
3Erişim katmanı
JSONYanıt biçimi
v1Kararlı sürüm

01 / GENEL BAKIŞ

API kök adresleri

Web sitesi ve panel API

http://127.0.0.1:8001/api/v1

api/ uygulaması; hekim, klinik ve hekim paneli isteklerini karşılar.

Mobil hasta API

http://127.0.0.1:8000/api/v1

site/ uygulamasında React Native hasta uygulaması için yayınlanır.

i
Yerel geliştirme

Varsayılan portlar: ana site 8000, API 8001, doktor sitesi 8002, klinik sitesi 8003.

02 / GÜVENLİK

Kimlik doğrulama

İstek türüne göre API anahtarı, Bearer token veya yönetim tokenı kullanılır.

01

Site anahtarı

Hekim ve klinik web sitesi uç noktalarında iki header zorunludur.

X-Api-Key: YOUR_API_KEY
X-Api-Secret: YOUR_API_SECRET
X-Secret-Key, secret için geriye uyumlu alternatif başlıktır.
02

Panel oturumu

Önce giriş yapın; dönen tokenı korumalı panel isteklerinde kullanın.

Authorization: Bearer {token}
X-Api-Key: YOUR_API_KEY
X-Api-Secret: YOUR_API_SECRET
Token yalnızca giriş yanıtında düz metin olarak döner.
03

Hasta oturumu

Mobil giriş veya kayıt sonrasında yalnızca Bearer token gönderilir.

Authorization: Bearer {token}
Accept: application/json
Content-Type: application/json
Token geçersiz, süresi dolmuş veya silinmişse 401 döner.
!
Anahtarları istemciye koymayın

X-Api-Secret yalnızca sunucu tarafında saklanmalıdır. Tarayıcıdaki herkese açık JavaScript paketi veya mobil uygulama içine gömülmemelidir.

03 / ENTEGRASYON

Randevu oluşturma akışı

Misafir randevusu, uygun slot seçimi ve gerekirse telefon doğrulamasından sonra oluşturulur.

  1. 1
    Profil ve hizmetleri getir

    GET /public/profile ve GET /public/services ile formu hazırlayın.

  2. 2
    Uygun saati sorgula

    GET /public/slots?date=YYYY-MM-DD çağrısındaki boş slotlardan birini seçin.

  3. 3
    OTP kullanın

    OTP etkinse /otp/send ve /otp/verify adımlarıyla telefonu doğrulayın.

  4. 4
    Randevu oluştur

    POST /public/appointments gövdesinde KVKK onayını, hasta ve randevu alanlarını gönderin.

POST/public/appointments
API key gerekli

Bireysel hekim sitesi üzerinden misafir randevu talebi oluşturur. Başarılı yanıtta yönetim bağlantısı döner.

JSON gövdesi

{
  "hizmet_id": 12,
  "tarih": "2026-07-20",
  "saat": "14:30",
  "ad": "Ayşe",
  "soyad": "Yılmaz",
  "telefon": "05321234567",
  "e_posta": "ayse@example.com",
  "not": "Kontrol randevusu",
  "gorusme_tipi": "yuz_yuze",
  "kvkk_onay": true,
  "otp_kod": "123456"
}

201 yanıtı

{
  "success": true,
  "message": "Randevu talebiniz alındı.",
  "data": {
    "id": 145,
    "tarih": "2026-07-20",
    "saat": "14:30",
    "durum": "beklemede",
    "yonetim_url": "https://.../randevu-yonet/..."
  }
}
AlanTürDurumAçıklama
hizmet_idintegerZorunluSeçilen aktif hizmetin ID değeri.
tarihstringZorunluY-m-d; bugün veya sonrası olmalıdır.
saatstringZorunluH:i biçiminde, uygun bir slot olmalıdır.
ad, soyad, telefonstringZorunluHasta iletişim bilgileri.
kvkk_onaybooleanZorunlutrue veya kabul edilen form değeri olmalıdır.
gorusme_tipienumOpsiyonelyuz_yuze (varsayılan) veya online.
otp_kodstringKoşulluOTP aktifse altı haneli doğrulama kodu.

04 / ÖRNEKLER

Sık kullanılan uç noktalar

GET/public/slots?date=2026-07-20
60 istek/dk

Hekimin seçilen gün için boş randevu saatlerini döndürür. Geçmiş tarih kabul edilmez; bugünün geçmiş saatleri yanıttan çıkarılır.

date zorunlu Y-m-d
POST/public/otp/verify
15 istek/dk

Gönderilen SMS kodunu doğrular. Kod altı karakter olmalıdır ve telefon ile ilişkilidir.

{ "telefon": "05321234567", "kod": "123456" }
POST/doctor/auth/login
12 istek/dk

Site anahtarıyla doğrulanan hekim için panel oturumu üretir. Klinik panelinde eşdeğer uç nokta /clinic/doctor/auth/login adresidir.

{ "e_posta": "doktor@example.com", "sifre": "guvenli-parola" }
POST/auth/register
Mobil API

Mobil hasta hesabı oluşturur ve doğrudan Bearer token döner.

{ "ad": "Ayşe", "soyad": "Yılmaz", "e_posta": "ayse@example.com", "telefon": "05321234567", "sifre": "en-az-6-karakter", "device": "ios" }

05 / API REFERANSI

Tüm uç noktalar

Arama kutusu, yol, HTTP metodu, açıklama ve paket adlarında filtreler.

Hekim Web Sitesi

http://127.0.0.1:8001/api/v1/public

10 endpoint
GET /profile

Hekim profilini ve çalışma bilgisini getirir.

GET /services

Aktif hizmet listesini getirir.

GET /site-content

Blog, SSS, galeri, yorum ve eğitim paketini getirir.

GET /educations

Yayındaki eğitimleri listeler.

GET /educations/{slugOrId}

Eğitim detayı ve form alanlarını getirir.

POST /educations/apply

Misafir eğitim başvurusu oluşturur.

GET /slots?date=YYYY-MM-DD

Seçilen günün uygun saatlerini getirir.

POST /otp/send

Randevu telefonu için doğrulama kodu gönderir.

POST /otp/verify

Altı haneli telefon doğrulama kodunu onaylar.

POST /appointments

Misafir randevu talebi oluşturur.

Klinik Web Sitesi

http://127.0.0.1:8001/api/v1/public/clinic

9 endpoint
GET /profile

Klinik profilini ve hekim sayısını getirir.

GET /doctors

Aktif klinik hekimlerini listeler.

GET /doctors/{idOrSlug}

Hekim detayını getirir.

GET /services?doktor_id={id}

Klinik hizmetlerini, isteğe bağlı hekim filtresiyle getirir.

GET /site-content

Klinik hekimlerinin içeriklerini birleştirir.

GET /slots?date=YYYY-MM-DD&doktor_id={id}

Hekim için uygun saatleri getirir.

POST /otp/send

Hekim seçimiyle telefon doğrulama kodu gönderir.

POST /otp/verify

Telefon doğrulama kodunu onaylar.

POST /appointments

Klinik üzerinden randevu talebi oluşturur.

Randevu Yönetimi

http://127.0.0.1:8001/api/v1/public/manage

2 endpoint
GET /{token}

Yönetim bağlantısındaki randevuyu görüntüler.

POST /{token}/cancel

Randevuyu yönetim tokenı ile iptal eder.

Hekim Yönetim Paneli

http://127.0.0.1:8001/api/v1/doctor

35 endpoint
POST /auth/login

Hekim paneli için Bearer token üretir.

GET /auth/me

Oturumdaki hekimin ayrıntılı profilini getirir.

POST /auth/logout

Mevcut tokenı iptal eder.

GET /dashboard

Panel özet verilerini getirir.

PUT /profile

Profil bilgilerini günceller.

POST /profile

Profil bilgisi ve fotoğrafını multipart olarak günceller.

PUT /password

Panel parolasını günceller.

GET /randevu-ayarlari

Randevu ayarlarını getirir.

PUT /randevu-ayarlari

Randevu ayarlarını günceller.

PUT /calisma-saatleri

Çalışma saatlerini günceller.

GET /randevular

Randevuları filtreleyerek listeler.

POST /randevular

Kayıtlı hasta için randevu oluşturur.

POST /randevular/misafir

Misafir hasta için randevu oluşturur.

PUT /randevular/{id}

Randevu bilgilerini günceller.

PUT /randevular/{id}/durum

Randevu durumunu günceller.

PUT /randevular/{id}/reschedule

Randevu tarih ve saatini değiştirir.

DELETE /randevular/{id}

Randevuyu siler.

GET /takvim/events

Takvim olaylarını getirir.

POST /takvim/periyot

Randevu periyodunu günceller.

GET /hastalar

Hastaları listeler.

GET /hastalar/ara

Hasta araması yapar.

POST /hastalar

Yeni hasta oluşturur.

GET /izinler

İzin kayıtlarını listeler.

POST /izinler

İzin kaydı oluşturur.

DELETE /izinler/{id}

İzin kaydını siler.

GET /hizli-kapat/slots

Hızlı kapatma için slotları getirir.

POST /hizli-kapat

Seçili slotları kapatır veya açar.

GET /hizmetler

Hizmetleri listeler.

POST /hizmetler

Hizmet oluşturur.

PUT /hizmetler/{id}

Hizmeti günceller.

DELETE /hizmetler/{id}

Hizmeti siler.

GET /branslar

Branş listesini getirir.

GET /web-sitesi

Web sitesi ve API anahtarı bilgisini getirir.

POST /web-sitesi

Web sitesi kurulumunu kaydeder.

POST /web-sitesi/api-anahtari

API anahtarlarını yeniler.

Paket Özellikleri

http://127.0.0.1:8001/api/v1/doctor

27 endpoint
PUT /hakkimda

Hakkımda içeriğini günceller. [hakkimda]

GET /bloglar

Blogları listeler. [blog]

POST /bloglar

Blog oluşturur. [blog]

PUT /bloglar/{id}

Blog günceller. [blog]

DELETE /bloglar/{id}

Blog siler. [blog]

GET /faqs

SSS listesini getirir. [faq]

POST /faqs

SSS oluşturur. [faq]

PUT /faqs/{id}

SSS günceller. [faq]

DELETE /faqs/{id}

SSS siler. [faq]

POST /faqs/{id}/toggle

SSS yayını değiştirir. [faq]

GET /galeri

Galeri listesini getirir. [galeri]

POST /galeri

Galeri görseli ekler. [galeri]

POST /galeri/sirala

Galeri sırasını günceller. [galeri]

PUT /galeri/{id}

Galeri girdisini günceller. [galeri]

DELETE /galeri/{id}

Galeri girdisini siler. [galeri]

GET /yorumlar

Yorumları listeler. [yorum]

POST /yorumlar/{id}/yanit

Yoruma yanıt ekler. [yorum]

PUT /yorumlar/{id}/durum

Yorum durumunu günceller. [yorum]

GET /egitimler

Eğitimleri listeler. [egitimler]

POST /egitimler

Eğitim oluşturur. [egitimler]

GET /egitimler/{id}/basvurular

Eğitim başvurularını getirir. [egitimler]

GET /finans/ozet

Finansal özeti getirir. [finans]

GET|POST /finans/kategoriler

Finans kategorilerini listeler veya oluşturur. [finans]

GET|POST /finans/gelirler

Gelirleri listeler veya oluşturur. [finans]

GET|POST /finans/giderler

Giderleri listeler veya oluşturur. [finans]

GET /finans/hasta-bakiyeleri

Hasta bakiyelerini getirir. [finans]

GET /finans/rapor

Finans raporunu getirir. [finans]

Mobil Hasta Uygulaması

http://127.0.0.1:8000/api/v1

21 endpoint
POST /auth/login

Hasta girişi yapar ve token üretir.

POST /auth/register

Hasta kaydı yapar ve token üretir.

POST /auth/social

Google/Apple giriş uç noktası; henüz 501 döner.

GET /meta/filters

Branş, il ve görüşme tipi filtrelerini getirir.

GET /doctors

Hekimleri sayfalı olarak listeler.

GET /doctors/{id}

Hekim detayını getirir.

GET /doctors/{id}/slots?tarih=YYYY-MM-DD

Hekim slotlarını getirir.

GET /clinics

Klinikleri sayfalı olarak listeler.

GET /clinics/{id}

Klinik detayını getirir.

GET /map/pins

Harita işaretçilerini getirir.

GET /blogs

Blogları sayfalı olarak listeler.

GET /blogs/{id}

Blog detayını getirir.

GET /services

Hizmetleri sayfalı olarak listeler.

GET /services/{id}

Hizmet detayını getirir.

GET /auth/me

Hasta profilini getirir.

PUT /auth/profile

Hasta profilini günceller.

PUT /auth/password

Hasta parolasını günceller.

POST /auth/logout

Hasta oturumunu kapatır.

GET /appointments

Hastanın randevularını getirir.

POST /appointments

Hasta adına randevu oluşturur.

POST /appointments/{id}/cancel

Hastanın randevusunu iptal eder.

06 / HATALAR

Tutarlı hata sözleşmesi

Başarılı JSON yanıtları success: true taşır. Doğrulama ve iş kuralı hataları açıklayıcı message alanıyla döner.

422

Doğrulama / iş kuralı

Eksik alan, geçersiz format, dolu slot, yanlış parola veya geçersiz OTP.

401

Kimlik doğrulama

Eksik veya yanlış API anahtarı, secret ya da geçersiz Bearer token.

403

Yetki / paket

Pasif hesap, yanlış site sahibi veya pakette olmayan özellik.

429

Hız limiti

Uç noktaya ait dakikalık istek sınırı aşıldı. Geri çekilme uygulayın.

404

Kaynak bulunamadı

İstenen hekim, eğitim veya başka bir kayıt mevcut değil.

500

Sunucu hatası

Beklenmeyen hata. İsteği güvenli biçimde yeniden deneyin ve kayıt altına alın.

{
  "success": false,
  "message": "API anahtarı gerekli. X-Api-Key başlığını gönderin."
}

07 / UYGULAMA NOTLARI

Entegrasyon için notlar

İçerik türü

JSON isteklerinde Content-Type: application/json gönderin. Fotoğraf içeren panel güncellemeleri için multipart/form-data kullanın.

Sayfalama

Liste uç noktaları page ve per_page kabul eder. Maksimum sayfa boyutu uç noktaya göre 40 veya 50'dir. Yanıtlar data.items ve data.meta içerir.

Paket kısıtları

Blog, SSS, galeri, yorum, eğitim ve finans uç noktaları ilgili hekim paket özelliğini gerektirir. Bu durumda API 403 döner.

Randevu güvenliği

Randevu uç noktaları hız limiti, honeypot ve yapılandırmaya göre OTP doğrulaması uygular. İstemci, kullanıcıya API hata mesajını anlaşılır biçimde göstermelidir.