QivoQR kodestudio
Skab QR-kode

For integration

En QR-kode i én enkelt anmodning

Send indhold og designindstillinger via GET og modtage en PNG eller SVG uden yderligere scancheck.

Fri og evigt.PNG, SVG og API – ingen gebyrer eller abonnementer.

direkte QR koder. Ingen omdirigeringer, ingen udløb.

GEThttps://qivo.umind.group/

Forespørgsel og autentisering

Pass din nøgle i X-API-Key-hovedet. Editor sessioner og cookies er ikke nødvendige. QIVO_API_KEY i dette eksempel er en klientsmiljø variabel, der indeholder din nøgle.

Curl eksempler
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

Hvis din integration kun accepterer en URL, send nøglen i nøgleparameteren:

Et eksempel på URL
https://qivo.umind.group/?key=YOUR_SECRET_KEY&data=https%3A%2F%2Fumind.group&format=png&size=1024

Udskift YOUR_SECRET_KEY med din nøgle. overskriften tager forrang over nøgleparameteren. URL-kodeparameteren værdier: # → %23, + → %2B, og & inden for en værdi → %26.

Brug HTTPS og hold nøglen på din server. Lad den ikke placeres i offentlig JavaScript. Nøgler og data i GET URL'er kan vises i browsers historie eller serverlogs; foretrækker overskriften for din nøgle.

Eksempler på kode

Spil nøglen i QIVO_API_KEY-miljøvariablen; offentliggør den ikke i sidekode.

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())

Design parametre

ParameterTypeKravetVærdier
X-API-Key / keystringBehovet
Hemmelig nøgle: header eller GET parameter
datastringTekst og url
Nødvendigt indhold til tekst/url
contentTypestringOptionelt
texturlwifivcardwhatsapptelegramphoneviberemailsms
Default: text
formatstringOptionelt
pngsvg
Default: png
sizeintegerOptionelt
25651210242048
Default: 1024
shapestringOptionelt
squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfetti
Default: square
borderstringOptionelt
squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafrough
Default: square
centerstringOptionelt
squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheart
Default: square
foreground / eyeColorstringOptionelt
#RRGGBB
Default: #192b39
backgroundstringOptionelt
#RRGGBB
Default: #ffffff
levelstringOptionelt
LMQH
Default: M
quietZoneintegerOptionelt
0–12 moduler
Default: 4
logostringOptionelt
nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamond
Default: none
logoScaleintegerOptionelt
12–30
Default: 24

Koder med et logo bruger automatisk niveau H. GET understøtter indbyggede ikoner; filopladninger og eksterne logo URL'er er ikke understøttet.

Indholdstyper

Felder afhænger af indholdType. for URL'er, give en komplet https:// eller http:// adresse. for telefonnumre, inkluderer landkoden.

contentTypeDe nødvendige felterOptionelle felter
text / urldata
phone / viberphone
whatsapp / smsphonemessage
telegramtelegram
emailemailsubject, message
wifissid; wifiSecurity≠nopass → wifiPasswordwifiSecurity (WPA), wifiHidden (0)
vcardfirstName / lastNameorganization, jobTitle, phone, email, website, address
Eksempel på telefon
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svg

Fire svar

En vellykket svar er billedfilen i sig selv, uden en JSON vrapper. Content-Type er billed/png eller billed/svg+xml. Fejl returneres som JSON:

JSON
{"error":"Invalid API key."}
  • 200 — Et billede genereret.
  • 401 — Manglende eller ugyldige nøgler.
  • 405 — GET er nødvendigt.
  • 422 — Invalideret indhold eller manglende indhold.
  • 429 — Rentegrænsen overskrides; Retry-After: 60.
  • 503 — API adgang er ikke konfigureret eller beskyttelse er midlertidigt utilgængelig.
  • 500 — intern generationsfejl.

Begrænsninger og validation

Den standardgrænse er 60 anmodninger pr. IP. Kodet indhold er begrænset til 800 byte. PNG-udledning understøtter op til 2048 × 2048 px. SVG bevarer vektorformater.

API validerer parameterformater, størrelse og kontrast, men kører ikke en decoder eller kontrollerer, om QR scanner.

Få adgang

API'en er gratis og vil altid forblive fri.Fyll kort formular for at anmode om en hemmelig nøgle.

Formularer vil blive sendt til Qivo-teamet for at gennemgå din anmodning og svar.