Geliştirici

REST API Dokümantasyonu

QR Publish API'si, QR kodlarınızı kendi sisteminizden (ERP, CRM, otomasyon aracınız) oluşturmanıza, güncellemenize, listelemenize ve silmenize olanak verir. API erişimi aktif bir Pro pakete dahildir.

API HTTPS üzerinden sunuluyor

Tüm örneklerdeki URL'ler doğrudan kopyalanabilir.

Kimlik Doğrulama

Her isteğe x-api-key header'ı ile API anahtarınızı ekleyin. Anahtarınızı Ayarlar sayfasından oluşturabilirsiniz — anahtar sadece oluşturulduğu anda gösterilir, sonradan tekrar görüntülenemez.

curl https://qrpublish.com/api/v1/qrcodes \
  -H "x-api-key: qrk_xxxxxxxxxxxxxxxxxxxxxxxx"

Alternatif olarak Authorization: Bearer qrk_xxx header'ı da kabul edilir.

Endpoint'ler

Tüm endpoint'ler https://qrpublish.com base URL'i ile kullanılır.

GET/api/v1/qrcodesTüm QR kodlarınızı listeler (en fazla 500).
POST/api/v1/qrcodesYeni bir QR kod oluşturur.
GET/api/v1/qrcodes/{id}Tek bir QR kodun detayını getirir.
PUT/api/v1/qrcodes/{id}Mevcut bir QR kodu günceller (içerik, URL, başlık, stil…).
DELETE/api/v1/qrcodes/{id}Bir QR kodu siler (soft delete, slug rezerve kalır).
GET/api/v1/statsHesap genelinde tarama ve QR istatistikleri.
GET/api/v1/reportsTarama raporlarını ve özet istatistikleri getirir.
GET/api/v1/profileOturumdaki kullanıcı profilini getirir.
GET/api/v1/keysAPI anahtarlarınızı listeler.
POST/api/v1/keysYeni API anahtarı oluşturur.
DELETE/api/v1/keysBir API anahtarını iptal eder.

Örnek: QR Kodlarını Listeleme

curl "https://qrpublish.com/api/v1/qrcodes" \
  -H "x-api-key: qrk_xxxxxxxxxxxxxxxxxxxxxxxx"

Cevap

{
  "qrcodes": [
    {
      "id": "5b1f...",
      "title": "Ana Sayfa",
      "short_slug": "anasayfa",
      "target_url": "https://example.com",
      "qr_type": "url",
      "is_active": true,
      "scan_count": 142,
      "created_at": "2026-06-01T09:00:00.000Z"
    }
  ],
  "total": 1
}

Örnek: QR Oluşturma

curl -X POST "https://qrpublish.com/api/v1/qrcodes" \
  -H "x-api-key: qrk_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Yaz Kampanyası",
    "short_slug": "yaz-kampanya",
    "target_url": "https://example.com/yaz-kampanya",
    "qr_type": "url"
  }'

Cevap

{
  "qrcode": {
    "id": "5b1f...",
    "title": "Yaz Kampanyası",
    "short_slug": "yaz-kampanya",
    "target_url": "https://example.com/yaz-kampanya",
    "qr_type": "url",
    "is_active": true,
    "scan_count": 0,
    "created_at": "2026-06-26T12:00:00.000Z"
  }
}

Örnek: QR Güncelleme

curl -X PUT "https://qrpublish.com/api/v1/qrcodes/5b1f..." \
  -H "x-api-key: qrk_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "target_url": "https://example.com/yeni-hedef",
    "is_active": true
  }'

Örnek: İstatistikler

curl "https://qrpublish.com/api/v1/stats" \
  -H "x-api-key: qrk_xxxxxxxxxxxxxxxxxxxxxxxx"

Cevap

{
  "total_qrcodes": 24,
  "total_scans": 1830,
  "active_qrcodes": 20,
  "scans_today": 47,
  "scans_this_month": 612
}

Hız Sınırları ve Hata Kodları

200İşlem başarılı.
301HTTP → HTTPS yönlendirmesi. URL'yi https:// ile başlatın.
400Geçersiz istek gövdesi veya eksik alan.
401Geçersiz veya iptal edilmiş API anahtarı.
402Plan limiti doldu — QR oluşturma reddedildi.
404QR kodu bulunamadı veya erişim izniniz yok.
429Hız limiti aşıldı. Dakikada sınırlı sayıda istek kabul edilir.
500Sunucu hatası. Lütfen tekrar deneyin.
Hata yanıtları { "error": "açıklama" } formatında döner.