QivoQR koder studio
Skaper QR-kode

For integrasjon

En QR-kode i en enkelt forespørsel

Send innhold og designinnstillinger gjennom GET og motta en PNG eller SVG uten ekstra skannekontroll.

Fri og evig.PNG, SVG og API – ingen avgifter eller abonnementer.

direkte QR koder. Ingen omdirigeringer, ingen utløp.

GEThttps://qivo.umind.group/

Forespørsel og autentisering

Pass nøkkelen din i X-API-Key header. Editorssesjoner og cookies er ikke nødvendig. QIVO_API_KEY i dette eksemplet er en klientermiljø variabel som inneholder nøkkelen din.

Curl for eksempel
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 integrasjonen aksepterer bare en URL, pass nøkkelen i nøkkelparameteren:

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

Endre YOUR_SECRET_KEY med nøkkelen din. overskriften tar forutse over nøkkelparameteren. URL-kodeparameteren verdier: # → %23, + → %2B, og & innenfor en verdi → %26.

Bruk HTTPS og hold nøkkelen på serveren din. Ikke legg den i offentlig JavaScript. Nøkler og data i GET URL-er kan vises i nettleserhistorien eller serverlogger; foretrekker header for nøkkelen din.

Eksempler på kode

Lagre nøkkelen i QIVO_API_KEY miljøvariabelen; ikke publisere den 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())

Designparameter

ParameterTypeKravetVerdier
X-API-Key / keystringBehovet
Hemmelig nøkkel: header eller GET parameter
datastringTekst og url
Nødvendig innhold for tekst/url
contentTypestringAlternativt
texturlwifivcardwhatsapptelegramphoneviberemailsms
Default: text
formatstringAlternativt
pngsvg
Default: png
sizeintegerAlternativt
25651210242048
Default: 1024
shapestringAlternativt
squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfetti
Default: square
borderstringAlternativt
squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafrough
Default: square
centerstringAlternativt
squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheart
Default: square
foreground / eyeColorstringAlternativt
#RRGGBB
Default: #192b39
backgroundstringAlternativt
#RRGGBB
Default: #ffffff
levelstringAlternativt
LMQH
Default: M
quietZoneintegerAlternativt
0 - 12 moduler
Default: 4
logostringAlternativt
nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamond
Default: none
logoScaleintegerAlternativt
12–30
Default: 24

Koder med et logo bruker automatisk nivå H. GET støtter innebygde ikoner; filopptak og eksterne logo URL-er støttes ikke.

Innholdstyper

Felt avhenger av innholdType. for URL-er, gi en komplett https:// eller http://adresse. for telefonnummer, inkluderer landkoden.

contentTypeNødvendige feltvalgfrie felt
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 respons er bildefilen selv, uten en JSON-vrapper. innholdstype er bilde/png eller bilde/svg+xml. Feil returneres som JSON:

JSON
{"error":"Invalid API key."}
  • 200 — Bildet er generert.
  • 401 — Manglende eller ulovlige nøkler.
  • 405 — GET er nødvendig.
  • 422 — Invalid parameter eller manglende innhold.
  • 429 — Rate grense overskridte; Retry-After: 60.
  • 503 — API-tilgang er ikke konfigurert eller beskyttelse er midlertidig utilgjengelig.
  • 500 — intern generasjonsfeil.

Grenser og validering

Standardgrensen er 60 forespørsler per minutt per IP. Kodet innhold er begrenset til 800 byter. PNG utgang støtter opptil 2048 × 2048 px. SVG beholder vektorform.

API validerer parametrformater, størrelse og kontrast, men kjører ikke en dekoder eller sjekker om QR scans.

Få tilgang

API er gratis og vil alltid være gratis.Fyll ut skjemaet for å be om en hemmelig nøkkel.

Detaljene om skjemaet vil bli sendt til Qivo-teamet for å vurdere din forespørsel og svar.