REST API v1
Geliştirici API
QR oluşturma, güncelleme ve organizasyonu backend, script veya CI pipeline'larınızdan otomatikleştirin.
Uç noktalar
| Metot | Yol | Açıklama |
|---|---|---|
GET | /api/v1/qr | QR kodlarınızı listele |
POST | /api/v1/qr | QR kodu oluştur |
POST | /api/v1/qr/bulk | Toplu QR oluştur (JSON items veya CSV) |
GET | /api/v1/qr/:id | Tek QR kodu getir |
GET | /api/v1/qr/:id/analytics | Tek QR için tarama analitikleri |
PATCH | /api/v1/qr/:id | QR kodunu güncelle |
DELETE | /api/v1/qr/:id | QR kodunu sil |
GET | /api/v1/folders | Klasörleri listele |
POST | /api/v1/folders | Klasör oluştur |
GET | /api/v1/folders/:id | Tek klasör getir |
PATCH | /api/v1/folders/:id | Klasörü güncelle |
DELETE | /api/v1/folders/:id | Klasörü sil |
Kimlik doğrulama
Panel → Ayarlar'da API anahtarı oluşturun. Şu şekilde gönderin:
Authorization: Bearer qb_live_... # or X-API-Key: qb_live_...
Tarama Webhook'ları
Ayarlar → Tarama Webhook'ları'nda HTTPS uç noktaları ekleyin. Tarama, landing lead ve CTA tıklamaları X-QRbanner-Signature (HMAC-SHA256) ile JSON POST gönderir. Zapier, Make, n8n ve özel backend'lerle çalışır.
{
"event": "scan",
"qr_code_id": "...",
"qr_name": "Store Istanbul",
"short_code": "abc12",
"scan": {
"country": "TR",
"city": "Istanbul",
"device": "mobile",
"scanned_at": "2026-06-29T12:00:00.000Z"
}
}Entegrasyonları gör →İmza doğrulama
Ham istek gövdesini okuyun, imza gizli anahtarınızla HMAC-SHA256 hesaplayın ve X-QRbanner-Signature başlığı (sha256= öneki) ile karşılaştırın. Başarısız teslimatlar 3 kez otomatik yeniden denenir; uç noktanızı Ayarlar'daki Test gönder ile doğrulayın.
const crypto = require('crypto');
function verifyWebhook(body, signatureHeader, secret) {
const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signatureHeader),
Buffer.from(expected)
);
}OpenAPI spesifikasyonu
REST API v1, Mobil API ve SCIM 2.0 için makine tarafından okunabilir OpenAPI 3.0 — Postman, Insomnia veya API gateway'e aktarın.
Hız limitleri
Plan başına iki limit: dakikalık ani istek limiti ve aylık kota. Başlıklar: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Quota, X-RateLimit-Quota-Remaining, X-RateLimit-Quota-Reset. Limit aşılırsa Retry-After ile 429 döner.
- Free — 60/dk · 1.000/ay
- Pro — 120/dk · 10.000/ay
- Business — 300/dk · 100.000/ay
- Agency — 600/dk · 500.000/ay
Temel URL
https://qrbanner.com
Mobil API
PWA ve özel mobil istemciler için yardımcı uç noktalar. Oturum çerezi veya REST v1 ile aynı API anahtarı ile kimlik doğrulayın. Yanıt alanları camelCase kullanır (OpenAPI MobileQr).
PWA ve mobil uygulamalar sayfası →
| Metot | Yol | Açıklama |
|---|---|---|
GET | /api/mobile/v1/summary | Plan kullanımı ve son taramalar |
GET | /api/mobile/v1/qr | QR kodlarını listele (mobil şekil) |
POST | /api/mobile/v1/qr | QR kodu oluştur |
GET | /api/mobile/v1/qr/:id | QR detayı ve son taramalar |
PATCH | /api/mobile/v1/qr/:id | QR kodunu güncelle |
DELETE | /api/mobile/v1/qr/:id | QR kodunu sil |
SCIM 2.0 provizyon
Business ve Agency ekip çalışma alanları Okta, Microsoft Entra ID (Azure AD), Google Workspace veya herhangi bir SCIM 2.0 IdP'den üyeleri senkronize edebilir. Ayarlar → Ekip'te SCIM'i açın, bearer token'ı bir kez kopyalayın ve IdP'nizi aşağıdaki temel URL'ye yönlendirin.
SCIM uç noktalarını etkileşimli API referansında görüntüleyin →IdP kurulumu
- Panel → Ayarlar → Ekip → SCIM'i açın ve provizyonu etkinleştirin.
- Bir kez gösterilen bearer token'ı (qrb_scim_ öneki) kopyalayıp IdP'nizde saklayın.
- SCIM temel URL'yi https://qrbanner.com/api/scim/v2 ve Authorization: Bearer <token> olarak ayarlayın.
- IdP gruplarını veya rol atamalarını sanal Groups admin, editor veya viewer ile eşleyin — bunlar çalışma alanı üye rollerini kontrol eder.
Base URL: https://qrbanner.com/api/scim/v2 Authorization: Bearer qrb_scim_... # Roles ↔ virtual Groups: admin | editor | viewer
| Metot | Yol | Açıklama |
|---|---|---|
GET | /api/scim/v2/Users | Çalışma alanı üyelerini listele |
POST | /api/scim/v2/Users | Üye davet et veya provizyon et |
GET | /api/scim/v2/Users/:id | Tek üyeyi getir |
PATCH | /api/scim/v2/Users/:id | Üye özniteliklerini veya rolünü güncelle |
PUT | /api/scim/v2/Users/:id | Üyeyi değiştir (PATCH ile aynı) |
DELETE | /api/scim/v2/Users/:id | Üyeyi kaldır |
GET | /api/scim/v2/Groups | Sanal rol gruplarını listele |
POST | /api/scim/v2/Groups | Sanal rol grubunun varlığını sağla (idempotent) |
GET | /api/scim/v2/Groups/:id | Tek rol grubunu ve üyelerini getir |
PATCH | /api/scim/v2/Groups/:id | Grup üyeliğini / rol eşlemesini güncelle |
PUT | /api/scim/v2/Groups/:id | Grup üyeliğini değiştir (PATCH ile aynı) |
DELETE | /api/scim/v2/Groups/:id | Grubu sil (sanal rol grupları 400 döner) |
GET | /api/scim/v2/ServiceProviderConfig | SCIM servis sağlayıcı yapılandırması |
GET | /api/scim/v2/ResourceTypes | Desteklenen kaynak türleri |
GET | /api/scim/v2/Schemas | SCIM şemaları |
İlgili sayfalar
Örnek istek
curl -X POST https://qrbanner.com/api/v1/qr \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Store Istanbul",
"category": "url",
"qr_data": { "url": "https://example.com/tr" }
}'