API Referansı

API Referansı

Base URL: https://heptacert.com/api

Tüm istekler Authorization: Bearer hc_live_... başlığı gerektirir.

Etkinlikler

GET /admin/events

Hesabınızdaki tüm etkinlikleri listeler.

Yanıt:

[
  {
    "id": 42,
    "name": "Python Summit 2026",
    "event_date": "2026-09-15T09:00:00",
    "event_type": "conference",
    "visibility": "public",
    "certificate_enabled": true,
    "registration_enabled": true,
    "registration_closed": false,
    "checkin_enabled": true,
    "attendee_count": 150
  }
]

GET /admin/events/{id}

Tek etkinliğin tam detayını getirir.

POST /admin/events

Yeni etkinlik oluşturur.

İstek gövdesi:

{
  "name": "React Workshop",
  "template_image_url": "placeholder",
  "event_type": "workshop",
  "event_date": "2026-10-01T10:00:00",
  "event_location": "İstanbul",
  "event_description": "İleri seviye React eğitimi.",
  "certificate_enabled": true,
  "registration_enabled": true,
  "checkin_enabled": true,
  "visibility": "private"
}

PATCH /admin/events/{id}

Etkinlik bilgilerini günceller. Yalnızca gönderilen alanlar değişir.

DELETE /admin/events/{id}

Etkinliği kalıcı olarak siler. Geri alınamaz.


Katılımcılar

GET /admin/events/{id}/attendees

ParametreTipAçıklama
pageintSayfa numarası (varsayılan: 1)
limitintSayfa başına kayıt (varsayılan: 20, maks: 200)
searchstringİsim veya e-posta filtresi

POST /admin/events/{id}/attendees

Tek katılımcı ekler.

{ "first_name": "Ahmet", "last_name": "Yılmaz", "email": "ahmet@example.com" }

PATCH /admin/events/{event_id}/attendees/{attendee_id}

Katılımcı bilgilerini günceller (first_name, last_name, email).

DELETE /admin/events/{event_id}/attendees/{attendee_id}

Katılımcıyı etkinlikten kaldırır.


Sertifikalar

GET /admin/events/{id}/certificates

ParametreTipAçıklama
pageintSayfa numarası
limitintSayfa başına kayıt
searchstringİsim filtresi
statusstringactive | revoked | expired

POST /admin/events/{id}/certificates

Sertifika yayımlama işlemi başlatır.

{ "attendee_ids": [1, 2, 3] }

attendee_ids boş bırakılırsa tüm uygun katılımcılar için yayımlanır.

POST /admin/certificates/{cert_id}/revoke

Sertifikayı iptal eder. PDF linki erişilemez hale gelir.


Oturumlar

GET /admin/events/{id}/sessions

Etkinliğin oturumlarını (agenda) listeler.

POST /admin/events/{id}/sessions

{
  "title": "Keynote: Web'in Geleceği",
  "start_time": "2026-09-15T09:00:00",
  "end_time": "2026-09-15T10:00:00",
  "location": "Ana Salon",
  "speaker": "Dr. Ayşe Kaya",
  "capacity": 300
}

PATCH /admin/events/{event_id}/sessions/{session_id}

DELETE /admin/events/{event_id}/sessions/{session_id}


Check-in

GET /admin/events/{id}/checkin-lookup

ParametreTipAçıklama
querystringİsim veya e-posta araması

POST /admin/events/{event_id}/sessions/{session_id}/checkin

Manuel check-in yapar.

{ "email": "ahmet@example.com" }

GET /admin/events/{id}/attendance

Etkinlik devam istatistiklerini döner (toplam, check-in yapılan, oran, oturum bazlı).


Otomasyon Kuralları

GET /admin/events/{id}/automations

POST /admin/events/{id}/automations

{
  "name": "Sertifika Sonrası E-posta",
  "trigger": "certificate_issued",
  "actions": [
    { "type": "send_email", "template_id": 5, "delay_hours": 0 }
  ],
  "enabled": true
}

Trigger tipleri: attended_event, registered_no_show, certificate_issued, survey_not_completed, badge_earned, lms_course_completed, compliance_overdue


Hata Kodları

HTTPAçıklama
400Geçersiz istek — eksik veya hatalı alan
401Kimlik doğrulama başarısız — geçersiz anahtar
403Yetkisiz — gerekli scope eksik
404Kayıt bulunamadı
409Çakışma — kayıt zaten var (örn. aynı e-posta)
422Doğrulama hatası
429Hız sınırı aşıldı
500Sunucu hatası

Hata yanıtı formatı:

{ "detail": "Bu etkinliğe ait kayıt bulunamadı." }