{api} GET POST JSON REST AUTH 200 PUT DELETE TOKEN
Developer API v2.0

Güçlü RESTful API ile Entegrasyon

Modern, güvenli ve ölçeklenebilir API ile Bookify'ı kendi uygulamalarınıza dakikalar içinde entegre edin. Kapsamlı dokümantasyon ve SDK desteği ile.

curl -X GET "https://api.bookify.com/v2/appointments" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Kimlik Doğrulama

API isteklerinizi doğrulamak için Bearer token kullanın. API anahtarınızı Dashboard → Ayarlar → API bölümünden oluşturabilirsiniz. Tüm isteklerde Authorization header'ı zorunludur.

HTTP Header
// Her istekte bu header'ı gönderin
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
JavaScript
const response = await fetch('https://api.bookify.com/v2/appointments', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${API_KEY}`,
    'Content-Type': 'application/json'
  }
});

const data = await response.json();

Rate Limits

API istekleri plan türünüze göre sınırlıdır. Limit aşımında 429 Too Many Requests hatası alırsınız. Response header'larında kalan istek sayısını kontrol edebilirsiniz.

Başlangıç
100
istek / dakika
Profesyonel
500
istek / dakika
Kurumsal
Sınırsız
Response Headers
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1704628800

Hata Kodları

API, standart HTTP durum kodları kullanır. Hata durumlarında JSON formatında detaylı hata mesajı döner.

Kod Durum Açıklama
200 OK İstek başarılı
400 Bad Request Geçersiz istek parametreleri
401 Unauthorized Geçersiz veya eksik API anahtarı
403 Forbidden Bu kaynağa erişim izniniz yok
404 Not Found İstenen kaynak bulunamadı
429 Too Many Requests Rate limit aşıldı
500 Server Error Sunucu hatası, lütfen tekrar deneyin
Error Response
{
  "error": {
    "code": 401,
    "message": "Invalid API key provided",
    "details": "The API key in the Authorization header is invalid or expired."
  }
}

Resmi SDK'lar

Popüler programlama dilleri için resmi SDK'larımızı kullanarak hızlıca entegrasyon yapabilirsiniz.

Randevular

Randevu oluşturma, güncelleme, listeleme ve silme işlemleri için endpoint'ler.

GET /api/v2/appointments

Tüm randevuları listeler. Filtreleme ve sayfalama destekler.

Query Parameters
page integer Sayfa numarası (varsayılan: 1)
limit integer Sayfa başına kayıt (max: 100)
status string Durum filtresi: pending, confirmed, cancelled
date_from date Başlangıç tarihi (YYYY-MM-DD)
Response
{
  "data": [
    {
      "id": 1234,
      "customer_id": 567,
      "service_id": 12,
      "staff_id": 3,
      "date": "2026-01-15",
      "time": "14:00",
      "duration": 60,
      "status": "confirmed",
      "notes": "VIP müşteri",
      "created_at": "2026-01-10T09:30:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 10,
    "total_count": 250
  }
}
POST /api/v2/appointments

Yeni randevu oluşturur. Müsaitlik kontrolü otomatik yapılır.

Request Body
customer_id integer Müşteri ID Zorunlu
service_id integer Hizmet ID Zorunlu
staff_id integer Personel ID (opsiyonel, otomatik atanır)
date date Randevu tarihi (YYYY-MM-DD) Zorunlu
time time Randevu saati (HH:MM) Zorunlu
Request
{
  "customer_id": 567,
  "service_id": 12,
  "staff_id": 3,
  "date": "2026-01-15",
  "time": "14:00",
  "notes": "Özel istek: Pencere kenarı"
}
PUT /api/v2/appointments/{id}

Mevcut randevuyu günceller. Sadece değiştirmek istediğiniz alanları gönderin.

DELETE /api/v2/appointments/{id}

Randevuyu iptal eder. Müşteriye otomatik bildirim gönderilir.

Müşteriler

Müşteri bilgilerini yönetmek için kullanılan endpoint'ler.

GET /api/v2/customers

Tüm müşterileri listeler. Arama ve sayfalama destekler.

POST /api/v2/customers

Yeni müşteri oluşturur.

GET /api/v2/customers/{id}/appointments

Belirli bir müşterinin tüm randevularını getirir.

Hizmetler

Sunulan hizmetleri yönetmek için kullanılan endpoint'ler.

GET /api/v2/services

Tüm hizmetleri fiyat ve süre bilgileriyle listeler.

GET /api/v2/services/{id}/availability

Belirli bir hizmet için müsait zaman dilimlerini getirir.

Personel

Personel bilgilerini ve müsaitlik durumlarını yönetmek için endpoint'ler.

GET /api/v2/staff

Tüm personeli yetenekleri ve çalışma saatleriyle listeler.

GET /api/v2/staff/{id}/schedule

Belirli bir personelin haftalık programını getirir.

Webhooks

Gerçek zamanlı bildirimler almak için webhook'ları yapılandırın. Randevu oluşturma, güncelleme ve iptal olaylarını dinleyebilirsiniz.

Webhook Payload
{
  "event": "appointment.created",
  "timestamp": "2026-01-10T09:30:00Z",
  "data": {
    "appointment_id": 1234,
    "customer": {
      "id": 567,
      "name": "Ahmet Yılmaz",
      "email": "ahmet@example.com"
    },
    "service": "Saç Kesimi",
    "date": "2026-01-15",
    "time": "14:00"
  }
}
POST /api/v2/webhooks

Yeni webhook endpoint'i kaydedin.

Desteklenen Olaylar
appointment.created Yeni randevu oluşturulduğunda
appointment.updated Randevu güncellendiğinde
appointment.cancelled Randevu iptal edildiğinde
customer.created Yeni müşteri kaydedildiğinde
Geliştirici Desteği

API Entegrasyonunda Yardıma mı İhtiyacınız Var?

Uzman geliştirici ekibimiz sorularınızı yanıtlamak ve entegrasyonunuzda size yardımcı olmak için hazır. Canlı destek veya dokümantasyon için bize ulaşın.