Randevu Ajandam

Kamu & Okuma (Read-Only) Rotaları

Hekim veya klinik web sitelerinde ziyaretçilere gösterilecek dinamik içerikleri çekmek için kullanılan endpoint'lerdir.

Profil Bilgilerini Getir

GET /api/v1/profile

Hekimin veya Kliniğin detaylı profil verilerini döner. Bireysel hekim anahtarlarında hekim unvanı ve branşı gelirken, klinik anahtarlarında klinikteki genel adres ve çalışma saatleri gibi klinik detayları döner.

İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/profile" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": {
        "id": 1,
        "unvan": "Prof. Dr.",
        "ad": "Ahmet",
        "soyad": "Yılmaz",
        "brans": "Kardiyoloji",
        "foto_url": "https://api.randevuajandam.com/uploads/doctor-1.jpg",
        "biyografi": "Kardiyoloji alanında 20 yıllık tecrübe...",
        "sosyal_medya": {
            "instagram": "https://instagram.com/drahmetyilmaz",
            "linkedin": "https://linkedin.com/in/drahmetyilmaz"
        },
        "iletisim": {
            "telefon": "0555 123 4567",
            "eposta": "ahmet@yilmaz.com",
            "adres": "Şişli, İstanbul"
        }
    }
}

Doktor Listesini Getir (Sadece Klinik Bağlamı)

GET /api/v1/doctors

Klinik bünyesinde çalışan tüm aktif doktorların listesini döner. Hekim bağlamındaki anahtarlar ile bu isteğin yapılması durumunda 403 Forbidden hatası alınır.

İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/doctors" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 1,
            "unvan": "Prof. Dr.",
            "ad": "Ahmet",
            "soyad": "Yılmaz",
            "brans": "Kardiyoloji",
            "foto_url": "https://api.randevuajandam.com/uploads/doctor-1.jpg"
        },
        {
            "id": 2,
            "unvan": "Doç. Dr.",
            "ad": "Ayşe",
            "soyad": "Kaya",
            "brans": "Pediatri",
            "foto_url": "https://api.randevuajandam.com/uploads/doctor-2.jpg"
        }
    ]
}

Hizmet Listesini Getir

GET /api/v1/services

Hekim veya kliniğe tanımlı tüm aktif hizmetlerin (muayene, tetkik vb.) listesini döner.

İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/services" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 1,
            "ad": "Kardiyoloji Muayenesi",
            "sure_dakika": 30,
            "ucret": 1500,
            "aciklama": "İlk muayene ve kardiyolojik değerlendirme."
        },
        {
            "id": 2,
            "ad": "Eko Testi",
            "sure_dakika": 20,
            "ucret": 1000,
            "aciklama": "Ekokardiyografi incelemesi."
        }
    ]
}

Yayınlanmış Blog Yazılarını Getir

GET /api/v1/blogs

Sistemde yayınlanmış olan tüm blog yazılarını listeler.

İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/blogs" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 5,
            "baslik": "Kalp Sağlığını Korumanın Yolları",
            "slug": "kalp-sagligini-korumanin-yollari",
            "ozet": "Gündelik hayatımızda kalbimizi korumak için yapabileceğimiz basit adımlar.",
            "kapak_resmi": "https://api.randevuajandam.com/uploads/blog-5.jpg",
            "created_at": "2026-06-25 10:00:00"
        }
    ]
}

Randevu Boş Slotlarını Hesapla

GET /api/v1/slots

Belirli bir tarihteki çalışma saatleri, dolu randevular ve izin durumları otomatik olarak hesaplanarak rezerve edilebilecek boş saat dilimlerini (slotları) döner.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
date string Evet Sorgulanacak tarih (Format: YYYY-MM-DD). Örn: 2026-07-15
doctor_id integer Hayır Klinik bağlamında sorgulama yaparken hangi doktorun slotlarının bakılacağını belirtir. Hekim bağlamında yoksayılır.
İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/slots" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": {
        "date": "2026-07-15",
        "doctor_id": 1,
        "slots": [
            {
                "time": "09:00",
                "available": true
            },
            {
                "time": "09:30",
                "available": false
            },
            {
                "time": "10:00",
                "available": true
            }
        ]
    }
}

Temel Yazma & İşlem Rotaları

Harici web sitelerinden ana platforma randevu kaydı, hasta kaydı veya yorum iletmek için kullanılan endpoint'lerdir.

Yeni Randevu Oluştur

POST /api/v1/appointments

Hasta, hekim veya klinik için randevu talebi oluşturur. Randevu oluşturulmadan önce belirtilen tarihin ve saat diliminin (slot) müsaitliği sistem tarafından kontrol edilir.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
service_id integer Evet Randevu alınacak hizmetin ID'si.
date string Evet Randevu tarihi (Format: YYYY-MM-DD).
slot string Evet Randevu saati (Format: HH:MM).
doctor_id integer Hayır Klinik bağlamında randevu alınırken hekimin ID'si girilmelidir.
patient_ad string Evet Hastanın adı.
patient_soyad string Evet Hastanın soyadı.
patient_telefon string Evet Hastanın telefon numarası.
patient_eposta string Evet Hastanın e-posta adresi.
not string Hayır Varsa hastanın iletmek istediği not.
İstek Örneği
curl -X POST "https://api.randevuajandam.com/api/v1/appointments" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash" \
  -d '{
    "service_id": 1,
    "date": "2026-07-15",
    "slot": "10:00",
    "patient_ad": "Hakan",
    "patient_soyad": "Demir",
    "patient_telefon": "0532 987 6543",
    "patient_eposta": "hakan@demir.com",
    "not": "Lütfen ilk kez geleceğimi bildirin."
}'
Başarılı Yanıt (200 OK)
{
    "success": true,
    "message": "Randevu başarıyla oluşturuldu. Yönetici onayı bekleniyor.",
    "data": {
        "id": 128,
        "randevu_kodu": "RA-128-Z5",
        "date": "2026-07-15",
        "slot": "10:00",
        "durum": "beklemede",
        "patient": {
            "ad": "Hakan",
            "soyad": "Demir",
            "telefon": "0532 987 6543"
        }
    }
}

Hekim/Klinik için Yorum Ekle

POST /api/v1/comments

Ziyaretçi tarafından harici sitede yapılan yorum/değerlendirmeleri ana sisteme iletir. Gelen yorumlar doğrudan onaylı olmaz, yönetim panelindeki onay havuzuna düşer.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
ad_soyad string Evet Yorumu yapan kişinin adı ve soyadı.
puan integer Evet 1 ile 5 arasında verilecek memnuniyet puanı.
icerik string Evet Yorum içeriği.
doctor_id integer Hayır Klinik bağlamında yorum yapılıyorsa hangi hekime yapıldığı belirtilmelidir.
İstek Örneği
curl -X POST "https://api.randevuajandam.com/api/v1/comments" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash" \
  -d '{
    "ad_soyad": "Esra Şahin",
    "puan": 5,
    "icerik": "Ahmet Bey gerçekten çok ilgili bir hekim. Kendisine çok teşekkür ederim."
}'
Başarılı Yanıt (200 OK)
{
    "success": true,
    "message": "Yorumunuz alınmıştır. Yönetici onayının ardından yayınlanacaktır."
}

Hekim Yönetim Rotaları

Hekimlerin kendi profil, blog, hizmet, galeri, takvim, çalışma saatleri ve finansal kayıtlarını yönetmesini sağlayan endpoint'lerdir.

Hekim Profil Bilgilerini Güncelle

PUT /api/v1/profile

Hekimin unvan, ad, soyad, biyografi, sosyal medya linkleri gibi profil alanlarını günceller.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
ad string Evet Hekim adı.
soyad string Evet Hekim soyadı.
unvan string Hayır Hekim unvanı (örn: Doç. Dr.).
biyografi string Hayır Özgeçmiş bilgisi.
İstek Örneği
curl -X PUT "https://api.randevuajandam.com/api/v1/profile" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash" \
  -d '{
    "unvan": "Prof. Dr.",
    "ad": "Ahmet",
    "soyad": "Yılmaz Yeni",
    "biyografi": "Kardiyoloji uzmanı."
}'
Başarılı Yanıt (200 OK)
{
    "success": true,
    "message": "Profil bilgileri başarıyla güncellendi."
}

Blog Yazılarını Yönetim Modunda Getir

GET /api/v1/blogs/manage

Hekimin kendi oluşturduğu tüm blogları (aktif, pasif, taslak) detaylı olarak listeler.

İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/blogs/manage" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 5,
            "baslik": "Kalp Sağlığını Korumanın Yolları",
            "durum": "yayinlandi",
            "okunma_sayisi": 1240,
            "created_at": "2026-06-25 10:00:00"
        }
    ]
}

Yeni Blog Yazısı Oluştur

POST /api/v1/blogs

Sisteme yeni bir blog yazısı ekler.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
baslik string Evet Blog başlığı.
icerik string Evet Blog HTML veya metin içeriği.
durum string Evet Yazı durumu ('taslak' veya 'yayinlandi').
İstek Örneği
curl -X POST "https://api.randevuajandam.com/api/v1/blogs" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash" \
  -d '{
    "baslik": "Beslenme ve Spor",
    "icerik": "Sağlıklı beslenme ve spor ilişkisi...",
    "durum": "yayinlandi"
}'
Başarılı Yanıt (200 OK)
{
    "success": true,
    "message": "Blog yazısı başarıyla oluşturuldu.",
    "data": {
        "id": 6,
        "baslik": "Beslenme ve Spor",
        "slug": "beslenme-ve-spor",
        "durum": "yayinlandi"
    }
}

Randevu Listesini Getir (Hekim Yönetim)

GET /api/v1/appointments

Hekimin takvim görünümü için tüm randevularını listeler. Tarih aralığına göre filtrelenebilir.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
start_date string Hayır Başlangıç tarihi (YYYY-MM-DD).
end_date string Hayır Bitiş tarihi (YYYY-MM-DD).
İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/appointments" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 128,
            "tarih": "2026-07-15",
            "saat": "10:00",
            "durum": "onaylandi",
            "hasta": {
                "ad": "Hakan",
                "soyad": "Demir",
                "telefon": "0532 987 6543"
            },
            "hizmet": "Kardiyoloji Muayenesi"
        }
    ]
}

Randevu Durumunu Güncelle

POST /api/v1/appointments/{id}/status

Belirtilen randevunun durumunu (onaylandı, iptal edildi, tamamlandı vb.) günceller.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
status string Evet Yeni durum ('onaylandi', 'reddedildi', 'tamamlandi', 'iptal').
İstek Örneği
curl -X POST "https://api.randevuajandam.com/api/v1/appointments/{id}/status" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash" \
  -d '{
    "status": "onaylandi"
}'
Başarılı Yanıt (200 OK)
{
    "success": true,
    "message": "Randevu durumu başarıyla güncellendi.",
    "data": {
        "id": 128,
        "durum": "onaylandi"
    }
}

Çalışma Saatlerini Getir

GET /api/v1/working-hours

Hekimin haftalık çalışma saatlerini, gün bazlı başlangıç/bitiş saatlerini ve öğle arası dilimlerini döner.

İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/working-hours" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": {
        "pazartesi": {
            "aktif": true,
            "baslangic": "09:00",
            "bitis": "17:00",
            "ogle_baslangic": "12:00",
            "ogle_bitis": "13:00"
        },
        "sali": {
            "aktif": true,
            "baslangic": "09:00",
            "bitis": "17:00",
            "ogle_baslangic": "12:00",
            "ogle_bitis": "13:00"
        }
    }
}

Finansal Özet Tablosu

GET /api/v1/finance/summary

Hekimin belirli bir dönemdeki gelir, gider ve hakediş tutarlarını özet olarak döner.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
period string Hayır Dönem ('bugun', 'bu_ay', 'bu_yil', 'hepsi'). Varsayılan: 'bu_ay'
İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/finance/summary" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": {
        "toplam_gelir": 45000,
        "toplam_gider": 12500,
        "net_bakiye": 32500,
        "tahsil_bekleyen": 5000
    }
}

Klinik Yönetim Rotaları

Klinik yöneticilerinin veya yetkilendirilmiş klinik personelinin tüm şube, doktor, personel, takvim ve klinik finansını yönetmesini sağlayan endpoint'lerdir.

Klinik Genel Randevu Listesi

GET /api/v1/clinic/appointments

Klinik altındaki tüm hekimlerin randevularını toplu veya hekim bazlı filtreleyerek listeler.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
doctor_id integer Hayır Belirli bir doktorun randevularını çekmek için kullanılır.
start_date string Hayır Başlangıç tarihi (YYYY-MM-DD).
end_date string Hayır Bitiş tarihi (YYYY-MM-DD).
İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/clinic/appointments" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 129,
            "doctor_id": 1,
            "doctor_ad_soyad": "Prof. Dr. Ahmet Yılmaz",
            "tarih": "2026-07-15",
            "saat": "11:00",
            "durum": "beklemede",
            "hasta": {
                "ad": "Murat",
                "soyad": "Can"
            }
        }
    ]
}

Hekimi Kliniğe Davet Et

POST /api/v1/clinic/doctors/invite

Randevu Ajandam sisteminde kayıtlı bir hekimi, e-posta adresi üzerinden kliniğe katılmaya davet eder.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
eposta string Evet Davet edilecek hekimin sisteme kayıtlı e-posta adresi.
hakedis_orani number Evet Hekime tanımlanacak yüzde hakediş oranı (örn: 60 veya 0.60).
İstek Örneği
curl -X POST "https://api.randevuajandam.com/api/v1/clinic/doctors/invite" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash" \
  -d '{
    "eposta": "drahmetyilmaz@gmail.com",
    "hakedis_orani": 65
}'
Başarılı Yanıt (200 OK)
{
    "success": true,
    "message": "Klinik katılım davetiyesi hekime başarıyla gönderildi."
}

Klinik Personel Listesi

GET /api/v1/clinic/staff

Klinikte yetkilendirilmiş sekreter, asistan veya diğer idari personellerin listesini döner.

İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/clinic/staff" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 3,
            "ad": "Merve",
            "soyad": "Kaya",
            "rol": "Sekreter",
            "durum": "aktif",
            "son_giris_tarihi": "2026-07-03 12:45:00"
        }
    ]
}

Yeni Klinik Personeli Ekle

POST /api/v1/clinic/staff

Klinik paneline erişebilecek yeni bir yardımcı personel veya yönetici ekler.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
ad string Evet Personel adı.
soyad string Evet Personel soyadı.
eposta string Evet Giriş için kullanılacak e-posta adresi.
sifre string Evet Giriş şifresi (En az 8 karakter).
rol string Evet Personel rolü ('sekreter', 'admin', 'asistan').
İstek Örneği
curl -X POST "https://api.randevuajandam.com/api/v1/clinic/staff" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash" \
  -d '{
    "ad": "Cem",
    "soyad": "Güler",
    "eposta": "cem@klinik.com",
    "sifre": "klinik12345*",
    "rol": "asistan"
}'
Başarılı Yanıt (200 OK)
{
    "success": true,
    "message": "Personel kaydı başarıyla oluşturuldu.",
    "data": {
        "id": 4,
        "ad": "Cem",
        "soyad": "Güler",
        "rol": "asistan",
        "durum": "aktif"
    }
}

Ortak Hasta Havuzunu Listele

GET /api/v1/clinic/patients

Klinik altındaki tüm doktorlara kayıtlı olan ortak hasta kayıtlarını döner. Bu sayede sekreterlik klinik bazında hasta kaydı arayabilir veya yeni randevu oluştururken ortak kartı kullanabilir.

İstek Parametreleri

Parametre Tip Zorunlu Açıklama
q string Hayır İsim, soyisim, e-posta veya telefon ile arama kelimesi.
İstek Örneği
curl -X GET "https://api.randevuajandam.com/api/v1/clinic/patients" \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your_api_key" \
  -H "X-Timestamp: 1783080763" \
  -H "X-Signature: signature_hash"
Başarılı Yanıt (200 OK)
{
    "success": true,
    "data": [
        {
            "id": 50,
            "ad": "Hakan",
            "soyad": "Demir",
            "telefon": "0532 987 6543",
            "eposta": "hakan@demir.com",
            "kayit_tarihi": "2026-05-10 14:00:00"
        }
    ]
}