API Dokümantasyonu

Beyan.pro REST API

Beyan.pro API ile dilekçe oluşturma, kullanıcı yönetimi ve faturalandırma işlemlerini programatik olarak gerçekleştirin.

Hızlı Başlangıç

# 1. Kullanıcı kaydı

curl -X POST https://api.beyan.pro/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email": "avukat@firma.com", "password": "...", "name": "Av. Mehmet", "phone": "5XXXXXXXXX",
"consent_terms": true, "consent_privacy_kvkk": true, "consent_whatsapp_data": true}'

# 2. E-posta doğrulama: kayıttan sonra gelen e-postadaki bağlantıyı açın (24 saat geçerli). Doğrulanmamış hesap girişte 403 EMAIL_NOT_VERIFIED alır. Aynı işlem, bağlantıdaki token ile:

curl -X POST https://api.beyan.pro/api/v1/auth/verify-email \
-H "Content-Type: application/json" \
-d '{"email": "avukat@firma.com", "token": "..."}'

# 3. Giriş ve token alma

curl -X POST https://api.beyan.pro/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "avukat@firma.com", "password": "..."}'

# 4. API kullanımı

curl https://api.beyan.pro/api/v1/dashboard/stats \
-H "Authorization: Bearer <access_token>"

Kimlik Doğrulama

Beyan.pro API, JWT (JSON Web Token) tabanlı kimlik doğrulama kullanır. Başarılı giriş sonrasında bir access token ve refresh token alırsınız. Bu uçlar Beyan.pro web uygulamasının kullandığı API'dir; ayrıca verilen genel amaçlı bir API anahtarı yoktur (tarayıcı eklentisi anahtarı yalnız eklenti uçlarında geçer).

Access Token

Süre: 24 saat. Her API isteğinin Authorization header'ında gönderilir.

Refresh Token

Süre: 7 gün. Access token süresi dolduğunda yeni token almak için kullanılır; her kullanımda yenisiyle değiştirilir.

Güvenlik: Token'ları güvenli bir şekilde saklayın. Parolalar bcrypt (cost 12) ile özetlenir. İki faktörlü kimlik doğrulama (TOTP) opsiyonel olarak desteklenmektedir.

API Endpoint'leri

MetodEndpointAuth
POST/api/v1/auth/registerHayır
POST/api/v1/auth/verify-emailHayır
POST/api/v1/auth/loginHayır
POST/api/v1/auth/refreshHayır
GET/api/v1/auth/meEvet
GET/api/v1/tenantEvet
GET/api/v1/tenant/quotaEvet
GET/api/v1/dashboard/statsEvet
GET/api/v1/dashboard/usage-chartEvet
GET/api/v1/petitions/fullEvet
GET/api/v1/petitions/:idEvet
GET/api/v1/billing/subscriptionEvet
POST/api/v1/billing/checkoutEvet
GET/api/v1/dashboard/drive-statusEvet
GET/healthHayır

Rate Limitleri

Giriş / kayıt (e-posta başına)5 deneme / 15 dakika

Rate limit aşıldığında HTTP 429 (Too Many Requests) yanıtı döndürülür. Retry-After header'ı beklemeniz gereken süreyi saniye cinsinden belirtir.

Yanıt Formatı

Yanıt gövdesinin biçimi uç grubuna göre değişir; tek tip bir zarf yoktur. Başarıyı ve hatayı HTTP durum kodu belirler.

// GET /api/v1/dashboard/stats — başarılı yanıt

{
  "success": true,
  "data": {
    "stats": { … },
    "quota": { … }
  }
}

// GET /api/v1/auth/me — başarılı yanıt (zarfsız)

{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "email": "avukat@firma.com",
  "name": "Av. Mehmet Yilmaz",
  …
}

// 401 — JWT isteyen her uç, Authorization başlığı yoksa

{
  "error": "missing authentication token"
}

// Hata yanıtı — kimlik doğrulama uçları

{
  "error": "email, password, and name are required"
}

Entegrasyon Desteği

API entegrasyonu hakkında sorularınız mı var? Teknik ekibimiz size yardımcı olmaktan memnuniyet duyar.

Teknik Destek