QivoPengenalan QR Code Studio
Mencipta kod QR

untuk integrasi

Kod QR dalam satu permintaan

Hantar kandungan dan tetapan reka bentuk melalui GET dan menerima PNG atau SVG tanpa pemeriksaan pemindaian tambahan.

Percuma dan selamanyaPNG, SVG dan API - tiada yuran atau langganan.

Kod QR secara langsung. Tiada pengubahsuaian. tiada tamat tempoh.

GEThttps://qivo.umind.group/

Permintaan dan pengesahan

Masukkan kunci anda ke dalam tajuk kunci X-API. sesi editor dan kuki tidak diperlukan. QIVO_API_KEY dalam contoh ini ialah variabel persekitaran klien yang mengandungi kunci anda.

contoh curl
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.svg

Jika integrasi anda hanya menerima URL, masukkan kunci dalam parameter kunci:

Contoh url
https://qivo.umind.group/?key=YOUR_SECRET_KEY&data=https%3A%2F%2Fumind.group&format=png&size=1024

Menggantikan YOUR_SECRET_KEY dengan kunci anda. tajuk mengambil keutamaan di atas parameter kunci. nilai parameter kod URL: # → %23, + → %2B, dan & dalam nilai → %26.

Gunakan HTTPS dan simpan kunci pada pelayan anda.Jangan letakkan ia dalam JavaScript awam.Kunci dan data dalam URL GET mungkin muncul dalam sejarah pelayar atau log pelayan; lebih suka tajuk untuk kunci anda.

Contoh Kod

Simpan kunci dalam variabel persekitaran QIVO_API_KEY; jangan menerbitkannya dalam kod halaman.

qr-code.php
<?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);
qr-code.mjs
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()));
qr-code.py
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())

Reka bentuk parameter

parameterJenisKeperluannilai-nilai
X-API-Key / keystringdiperlukan
Kunci rahsia: tajuk atau parameter GET
datastringuntuk teks dan url
Kandungan yang diperlukan untuk teks/url
contentTypestringPilihan
texturlwifivcardwhatsapptelegramphoneviberemailsms
Perkataan default: text
formatstringPilihan
pngsvg
Perkataan default: png
sizeintegerPilihan
25651210242048
Perkataan default: 1024
shapestringPilihan
squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfetti
Perkataan default: square
borderstringPilihan
squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafrough
Perkataan default: square
centerstringPilihan
squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheart
Perkataan default: square
foreground / eyeColorstringPilihan
#RRGGBB
Perkataan default: #192b39
backgroundstringPilihan
#RRGGBB
Perkataan default: #ffffff
levelstringPilihan
LMQH
Perkataan default: M
quietZoneintegerPilihan
0 - 12 modul
Perkataan default: 4
logostringPilihan
nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamond
Perkataan default: none
logoScaleintegerPilihan
12–30
Perkataan default: 24

Kod dengan logo secara automatik menggunakan tahap H. GET menyokong ikon terbina dalam; muat naik fail dan URL logo luaran tidak disokong.

Jenis Kandungan

Untuk URL, berikan alamat https:// atau http:// lengkap. untuk nombor telefon, termasuk kod negara.

contentTypeLapangan yang diperlukanLapangan Pilihan
text / urldata
phone / viberphone
whatsapp / smsphonemessage
telegramtelegram
emailemailsubject, message
wifissid; wifiSecurity≠nopass → wifiPasswordwifiSecurity (WPA), wifiHidden (0)
vcardfirstName / lastNameorganization, jobTitle, phone, email, website, address
contoh telefon
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svg

Penyelesaian api

Jawapan yang berjaya ialah fail imej itu sendiri, tanpa pengikat JSON. Jenis kandungan ialah imej/png atau imej/svg+xml. Kesilapan dikembalikan sebagai JSON:

JSON
{"error":"Invalid API key."}
  • 200 — imej yang dihasilkan.
  • 401 — kekurangan atau kekurangan kunci.
  • 405 — GET yang diperlukan.
  • 422 — parameter yang tidak sah atau kandungan yang hilang.
  • 429 — Kadar yang melebihi; Retry-After: 60.
  • 503 — Akses API tidak dikonfigurasi atau perlindungan sementara tidak tersedia.
  • 500 — Kesilapan Generasi Dalam

Batas dan Validasi

Batas lalai ialah 60 permintaan per minit per IP. Kandungan yang disulitkan terhad kepada 800 byte. output PNG menyokong sehingga 2048 × 2048 px. SVG mengekalkan bentuk vektor.

API mengesahkan format parameter, saiz dan kontras, tetapi tidak menjalankan decoder atau memeriksa sama ada QR memindai.

Dapatkan akses

API percuma dan akan sentiasa kekal percuma. lengkapkan borang pendek untuk meminta kunci rahsia.

Semua tiga medan diperlukan. butiran borang akan dihantar kepada pasukan Qivo untuk meninjau permintaan dan jawapan anda.