Geliştiriciler İçin QR Kod REST API Dokümantasyonu
Stateless mimariyle çalışan, harici kimlik doğrulama gerektirmeyen, vektörel SVG ve Base64 Data-URI çıktıları üreten, PHP 8.4 ve BaconQrCode motoru ile güçlendirilmiş yüksek performanslı REST API.
curl -s "https://clskn.net/api/qr?text=https://example.com"
Stateless RESTful QR Kod Servisi
clskn.net QR Kod API; oturum, çerez veya karmaşık API anahtarları gerektirmeyen tamamen stateless, milisaniyeler seviyesinde çalışan ve modern web standartlarına tam uyumlu bir mikroservistir. Web bağlantıları, Wi-Fi erişim matrisleri, vCard kartvizitler veya dinamik içerikler için doğrudan vektörel SVG ya da uygulamalarınızda kolayca gömebileceğiniz Base64 Data-URI formatında çıktı üretir.
Karmaşık kimlik doğrulama gerekmez. Standart HTTP GET istekleriyle doğrudan tarayıcıya veya backend servislerinize yanıt verir.
Pikselleşmeyen saf SVG vektör matrisi veya anında <img> etiketine bağlanabilen Base64 Data-URI şeması sunar.
Endüstri standardı Reed-Solomon matematiksel hata düzeltme motoru ile %30'a varan veri kurtarma garantisi sağlar.
API Uç Noktaları (Endpoints)
HTTP GETTüm istekler güvenli HTTPS protokolü ve standart HTTP GET metodu ile gerçekleştirilir. İhtiyacınıza göre doğrudan ham SVG görseli veya JSON yanıt alabilirsiniz.
https://clskn.net/api/qr
Standart üretim uç noktası (Varsayılan: image/svg+xml)
https://clskn.net/api/v1/qr
Sürümlendirilmiş v1 RESTful üretim uç noktası
https://clskn.net/api/qrcode
Genişletilmiş URI takma adı (Alias)
İstek Parametreleri
| Parametre | Konum | Tip | Durum | Varsayılan | Açıklama |
|---|---|---|---|---|---|
| text | Query | string | Zorunlu | - | QR koda kodlanacak ham içerik, URL veya format şablonu (Wi-Fi, vCard vb.). Minimum 1, maksimum 2048 karakter uzunluğunda olmalıdır. URL encode edilmiş veri desteklenir. |
| size | Query | integer | Opsiyonel | 300 |
Üretilecek QR kodun piksel cinsinden genişlik ve yüksekliği. 64 ile 2048 piksel arasında bir tam sayı olmalıdır.
|
| margin | Query | integer | Opsiyonel | 2 |
QR matrisinin çevresindeki sessiz alan (quiet zone) modül genişliği. 0 ile 10 arasında bir değer alabilir.
|
| ecc | Query | string | Opsiyonel | M |
Reed-Solomon hata düzeltme seviyesi. Değerler: L (%7 kurtarma), M (%15 kurtarma), Q (%25 kurtarma), H (%30 kurtarma). Büyük veya küçük harf duyarsızdır.
|
| color | Query | string (HEX) | Opsiyonel | #000000 |
QR matris noktalarının (ön plan) rengi. Geçerli 3 veya 6 haneli HEX renk kodu olmalıdır (örnek: #000000, #2563eb). URL içinde # karakteri %23 olarak kodlanmalıdır.
|
| bgcolor | Query | string (HEX) | Opsiyonel | #ffffff |
Arka plan rengi. HEX renk kodu veya saydam arka plan için transparent değeri gönderilebilir.
|
| format | Query | string | Opsiyonel | svg |
Çıktı formatı: svg (ham SVG görseli), json veya base64 (SVG string'i ve Base64 Data-URI içeren JSON nesnesi). İstemci Accept: application/json başlığı gönderdiğinde de otomatik JSON yanıt verilir.
|
| download | Query | boolean | Opsiyonel | false |
1 veya true gönderildiğinde HTTP yanıtına Content-Disposition: attachment; filename="qrcode.svg" başlığı eklenerek doğrudan dosya indirmesi tetiklenir.
|
Hız Sınırı (Rate Limit) & HTTP Başlıkları
Sunucu kaynaklarını korumak ve kesintisiz hizmet sunmak amacıyla QR üretim uç noktaları IP adresi başına dakikada 60 istek ile sınırlandırılmıştır. Kota durumunuz her yanıtta HTTP başlıklarında iletilir:
X-RateLimit-Limit
İstemciye tanınan dakikalık tavan istek hakkı (60).
X-RateLimit-Remaining
Mevcut 1 dakikalık zaman penceresinde kalan istek hakkınız.
Retry-After
Hız limiti aşıldığında (429) yeni istek atmadan önce beklenmesi gereken saniye.
Canlı İstek ve Entegrasyon Örnekleri
curl -s "https://clskn.net/api/qr?text=https://example.com" -o qrcode.svg
curl -s "https://clskn.net/api/qr?text=https://example.com&size=512&ecc=H&color=%232563eb&bgcolor=transparent" -o brand-qr.svg
curl -s "https://clskn.net/api/qr?text=https://example.com&format=json"
<img src="https://clskn.net/api/qr?text=https://example.com&size=256" alt="QR Kod" width="256" height="256" loading="lazy">
// JSON formatında SVG ve Base64 Data-URI alma
const params = new URLSearchParams({
text: 'https://example.com',
size: '300',
ecc: 'M',
format: 'json'
});
fetch(`https://clskn.net/api/qr?${params.toString()}`, {
headers: {
'Accept': 'application/json'
}
})
.then(response => {
if (!response.ok) throw new Error(`HTTP Hata: ${response.status}`);
return response.json();
})
.then(payload => {
console.log('SVG Çıktısı:', payload.data.svg);
console.log('Data-URI:', payload.data.data_uri);
// Örnek: Görsel kaynağına bağlama
// document.getElementById('my-qr-img').src = payload.data.data_uri;
})
.catch(error => console.error('QR Kod API Hatası:', error));
Yanıt Şemaları (Response Schemas)
Doğrudan tarayıcıda render edilebilir veya <img src="..."> olarak bağlanabilir saf vektör XML verisi döner.
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="300" viewBox="0 0 300 300">
<rect x="0" y="0" width="300" height="300" fill="#ffffff"/>
<path fill="#000000" d="M20 20h70v70h-70z M30 30h50v50h-50z..."/>
</svg>
?format=json veya Accept: application/json istendiğinde dönen yapılandırılmış REST yanıtı.
{
"status": "success",
"data": {
"svg": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>...",
"data_uri": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0...",
"text": "https://example.com",
"format": "svg",
"size": 300,
"margin": 2,
"ecc": "M",
"color": "#000000",
"bgcolor": "#ffffff"
},
"meta": {
"execution_time_ms": 3.42,
"timestamp": "2026-09-07T15:08:00+00:00"
}
}
HTTP Durum Kodları (Status Codes)
QR kod parametrelere göre hatasız üretildi; ham SVG görseli veya JSON gövdesi iletildi.
text parametresi eksik, 2048 karakter sınırını aşıyor, renk formatı geçersiz veya boyut aralık dışı.
Dakikalık istek sınırı (60 istek/dk) aşıldığında döner. Retry-After başlığını kontrol edin.
Matris hesaplanırken veya SVG derlenirken beklenmeyen bir hata meydana geldiğinde döner.