bütünleşmeler için
Bir QR kodu tek bir talep içinde
Hizmetinize QR kod üretimi ekleyin.GET aracılığıyla içerik ve tasarım ayarlarını gönderin ve ek bir tarama kontrolü olmadan bir PNG veya SVG alın.
Ücretsiz ve sonsuza dek.PNG, SVG ve API – ücret veya abonelik yok.
Doğrudan QR kodları Yönlendirme yok, geçerli değil.
GEThttps://qivo.umind.group/
İstek ve Doğrulama
Anahtarınızı X-API-Key başlığına girin. Düzenleyici oturumları ve çerezleri gerektirmez. QIVO_API_KEY bu örnekte anahtarınızı içeren bir müşteri ortamı değişkenidir.
curl --fail --show-error --get 'https://qivo.umind.group/' \
--header "X-API-Key: $QIVO_API_KEY" \
--data-urlencode 'data=https://umind.group' \
--data-urlencode 'contentType=url' \
--data-urlencode 'format=svg' \
--data-urlencode 'shape=rounded' \
--data-urlencode 'size=1024' \
--output qr-code.svgEğer entegrasyonunuz yalnızca bir URL'yi kabul ederse, anahtar parametrede anahtarı geçin:
https://qivo.umind.group/?key=YOUR_SECRET_KEY&data=https%3A%2F%2Fumind.group&format=png&size=1024Anahtarı anahtar parametreden öncülük alır. URL kodlama parametresi değerleri: # → %23, + → %2B, ve & içinde bir değer → %26.
HTTPS'i kullanın ve anahtarı sunucunuzda tutun. bunu kamu JavaScript'e koymayın. GET URL'lerinde anahtarlar ve veriler tarayıcı geçmişinde veya sunucunun günlüğünde görünebilir; anahtarınız için başlık tercih edin.
Kod örnekleri
Bu örnekleri sunucunuzda çalıştırın. anahtarı QIVO_API_KEY çevre değişkenine kaydedin; sayfa kodunda yayınlamayın.
<?php
$key = getenv('QIVO_API_KEY');
if (!$key) throw new RuntimeException('Set QIVO_API_KEY');
$query = http_build_query([
'data' => 'https://umind.group', 'format' => 'svg',
'shape' => 'rounded', 'size' => 1024,
], '', '&', PHP_QUERY_RFC3986);
$curl = curl_init('https://qivo.umind.group/?' . $query);
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-Key: ' . $key],
CURLOPT_TIMEOUT => 30,
]);
$image = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
if ($image === false || $status !== 200) {
throw new RuntimeException('Qivo request failed: ' . $status);
}
file_put_contents('qr-code.svg', $image);import { writeFile } from 'node:fs/promises';
const key = process.env.QIVO_API_KEY;
if (!key) throw new Error('Set QIVO_API_KEY');
const url = new URL('https://qivo.umind.group/');
url.search = new URLSearchParams({
data: 'https://umind.group', format: 'svg',
shape: 'rounded', size: '1024'
});
const response = await fetch(url, {
headers: { 'X-API-Key': key },
signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`Qivo request failed: ${response.status}`);
await writeFile('qr-code.svg', Buffer.from(await response.arrayBuffer()));import os
from pathlib import Path
from urllib.parse import urlencode
from urllib.request import Request, urlopen
key = os.environ['QIVO_API_KEY']
query = urlencode({
'data': 'https://umind.group', 'format': 'svg',
'shape': 'rounded', 'size': 1024,
})
request = Request('https://qivo.umind.group/?' + query,
headers={'X-API-Key': key})
# urlopen raises HTTPError for unsuccessful HTTP responses.
with urlopen(request, timeout=30) as response:
Path('qr-code.svg').write_bytes(response.read())Tasarım Parametreleri
| Parametreler | Tür | İhtiyaç | Değerler |
|---|---|---|---|
X-API-Key / key | string | İhtiyaç | Gizli anahtar: başlık veya GET parametresi |
data | string | Yazı ve URL | Yazı / URL için gerekli içerik |
contentType | string | seçmeli | texturlwifivcardwhatsapptelegramphoneviberemailsmsŞanlıurfa: text |
format | string | seçmeli | pngsvgŞanlıurfa: png |
size | integer | seçmeli | 25651210242048Şanlıurfa: 1024 |
shape | string | seçmeli | squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfettiŞanlıurfa: square |
border | string | seçmeli | squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafroughŞanlıurfa: square |
center | string | seçmeli | squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheartŞanlıurfa: square |
foreground / eyeColor | string | seçmeli | #RRGGBB Şanlıurfa: #192b39 |
background | string | seçmeli | #RRGGBB Şanlıurfa: #ffffff |
level | string | seçmeli | LMQHŞanlıurfa: M |
quietZone | integer | seçmeli | 0 - 12 Modüller Şanlıurfa: 4 |
logo | string | seçmeli | nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamondŞanlıurfa: none |
logoScale | integer | seçmeli | 12–30 Şanlıurfa: 24 |
Logo ile kodlar otomatik olarak H seviyesini kullanır. GET yerleşik simgeleri destekler; dosya yükleme ve dış logo URL'leri desteklenmez.
içerik türleri
Alanlar içeriğe bağlıdırType. URL'ler için, tam bir https:// veya http:// adresi verin. telefon numaraları için, ülke kodunu içerir.
| contentType | Gerekli alanlar | Seçmeli alanlar |
|---|---|---|
| text / url | data | — |
| phone / viber | phone | — |
| whatsapp / sms | phone | message |
| telegram | telegram | — |
| subject, message | ||
| wifi | ssid; wifiSecurity≠nopass → wifiPassword | wifiSecurity (WPA), wifiHidden (0) |
| vcard | firstName / lastName | organization, jobTitle, phone, email, website, address |
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svgateş yanıtları
Başarılı bir cevap, görüntü dosyasının kendisidir, bir JSON çubuk olmadan. içerik tipi görüntü/png veya görüntü/svg+xml'dir. hatalar JSON olarak iade edilir:
{"error":"Invalid API key."}- 200 — Görüntü oluşturuldu.
- 401 — Kayıp veya eksik anahtar.
- 405 — GET gereklidir.
- 422 — Geçersiz parametreler veya eksik içerikler.
- 429 — Fiyat sınırı aşılmıştır; Geri dönüş sonrası: 60.
- 503 — API erişimi ayarlanmamıştır veya koruma geçici olarak kullanılamaz.
- 500 — İç nesil hatası.
Sınırlar ve Validasyon
Varsayılan sınırı IP başına dakikada 60 taleptir. kodlanmış içerik 800 byte ile sınırlıdır. PNG çıkışı 2048 × 2048 px'a kadar destekler. SVG vektor şekilleri korur.
API parametreler biçimleri, boyutları ve kontrastları doğrulamaktadır, ancak bir dekoder çalıştırmaz veya QR tarama olup olmadığını kontrol etmez.