API v1

API Dokümantasyonu

Bu sayfa, üçüncü tarafların kullanması için açılan uçları anlatır: satın alınan yazılımların lisans doğrulaması ve bayilerin müşteri kayıtları. Makine tarafında okunabilir şema: /openapi.json.

Temel bilgiler

Taban adreshttps://yazilimal.com
Biçimİstek ve yanıt gövdeleri JSON (application/json)
Şema/openapi.json (OpenAPI 3.1)
Katalog/.well-known/api-catalog (RFC 9727)

Kimlik doğrulama

İki farklı yüzey, iki farklı yöntem kullanır:

  • Lisans uçları — ayrı bir anahtar yoktur; kimlik doğrulaması gönderdiğiniz lisans kodunun kendisidir. Kod bir sırdır: son kullanıcının cihazında saklanabilir ama üçüncü kişilerle paylaşılmamalıdır.
  • Bayi uçları x-reseller-key başlığı ile. Anahtarı bayi panelinizden alırsınız.

Bayi anahtarınızı yalnızca sunucu tarafında kullanın. Tarayıcıya inen bir kodda (JavaScript, mobil uygulama paketi) anahtar taşımak, onu herkese açık etmek anlamına gelir. Anahtarınızın sızdığını düşünüyorsanız panelden yenileyin.

Hız sınırları

Lisans uçlarıIP başına dakikada 10 istek
Bayi uçlarıIP başına dakikada 120 istek
Sınır aşımıHTTP 429 + Retry-After başlığı

Lisans doğrulamasını her istekte değil, uygulama açılışında ve günde bir kez yapmanız yeterlidir; sonucu yerel olarak önbelleğe alın.

Lisans uçları

POST/api/v1/license/activate

Lisansı bir makineye kilitler. İlk kurulumda çağırın. Aynı machineId ile tekrar çağırmak güvenlidir.

curl -X POST https://yazilimal.com/api/v1/license/activate \
  -H "Content-Type: application/json" \
  -d '{"key":"XXXX-XXXX-XXXX-XXXX","machineId":"makine-kimliginin-karmasi"}'

Başarılı yanıt

{
  "ok": true,
  "reason": "Aktivasyon başarılı.",
  "expiresAt": "2027-01-01T00:00:00.000Z",
  "customerName": "Örnek Müşteri",
  "productSlug": "urun-adi"
}

Hata durumları

400key veya machineId eksik
403Lisans iptal edilmiş veya süresi dolmuş
404Lisans kodu bulunamadı
409Lisans başka bir makineye kayıtlı
429Hız sınırı aşıldı
POST/api/v1/license/verify

Lisansın hâlâ geçerli olup olmadığını sorar. Geçersiz lisansta da HTTP 200 döner — sonuç gövdedeki valid alanındadır. Aktive edilmemiş lisans için valid: false döner; önce aktivasyon ucunu çağırın.

curl -X POST https://yazilimal.com/api/v1/license/verify \
  -H "Content-Type: application/json" \
  -d '{"key":"XXXX-XXXX-XXXX-XXXX","machineId":"makine-kimliginin-karmasi"}'

Geçerli lisans

{
  "valid": true,
  "reason": "OK",
  "expiresAt": "2027-01-01T00:00:00.000Z",
  "customerName": "Örnek Müşteri",
  "productSlug": "urun-adi"
}

Geçersiz lisans (yine HTTP 200)

{ "valid": false, "reason": "Makine kimliği eşleşmiyor." }

machineId nasıl üretilmeli?

Aynı makinede her zaman aynı değeri üreten kararlı bir kimlik olmalı — örneğin anakart/işlemci kimliklerinin karması. Her açılışta değişen bir değer (rastgele sayı, oturum kimliği) kullanırsanız lisans ilk makineye kilitlenir ve sonraki doğrulamalar "Makine kimliği eşleşmiyor" döner.

Bayi uçları

Bayi ağı kapalıysa bu uçlar 403 döner. Bayilik hakkında bilgi: bayilik programı.

GET/api/v1/reseller/clients

Anahtarın sahibi olan bayinin müşteri kayıtlarını listeler. Başka bir bayinin kayıtları hiçbir koşulda dönmez.

curl https://yazilimal.com/api/v1/reseller/clients \
  -H "x-reseller-key: BAYI_ANAHTARINIZ"
POST/api/v1/reseller/clients

Yeni müşteri kaydı oluşturur. Her kayıt bayi kredinizden 50 kredi düşer. Kredi yetersizse 402 döner ve kayıt oluşmaz.

curl -X POST https://yazilimal.com/api/v1/reseller/clients \
  -H "Content-Type: application/json" \
  -H "x-reseller-key: BAYI_ANAHTARINIZ" \
  -d '{"clientDomain":"musteri-alan-adi.com"}'

Hata durumları

400clientDomain eksik
401Anahtar eksik veya geçersiz
402Bayi kredisi yetersiz
403Bayi ağı kapalı
409Bu alan adı zaten kayıtlı
429Hız sınırı aşıldı

Kapsam dışındakiler

Yukarıdaki dört uç dışındaki adresler genel kullanım için açılmamıştır ve dokümante edilmez: yönetim uçları, dağıtım ucu, sitenin kendi sohbet asistanı ve WordPress eklentimizin kendi protokolü. Bunlar habersiz değişebilir. İhtiyacınız olan bir şey listede yoksa bize yazın.