QivoQR koodi studio
Luo QR-koodi

yhdentymistä varten

QR-koodi yhdessä pyynnössä

Lähetä sisällön ja suunnittelun asetukset GET: n kautta ja vastaanottaa PNG tai SVG ilman lisäkokeita.

Vapaa ja ikuisesti.PNG, SVG ja API – ei maksuja tai tilauksia.

Suorat QR koodit. Ei kierroksia, ei päättymistä

GEThttps://qivo.umind.group/

Pyyntö ja todentaminen

Kirjoita avain X-API-Key -päällikön sisällä.Editori istunnot ja evästeet eivät ole tarpeen.QIVO_API_KEY tässä esimerkissä on asiakasympäristön muuttuva, joka sisältää avaimen.

Kurssin esimerkki
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

Jos integrointi hyväksyy vain URL-osoitteen, siirry avain avaimen parametriin:

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

Vaihda YOUR_SECRET_KEY avaimella. otsikko on eturintamassa avainparametrin yläpuolella. URL-koodi parametriarvot: # → %23, + → %2B, ja & arvoon sisällä → %26.

Käytä HTTPS:tä ja pidä avain palvelimellasi. Älä aseta sitä julkisessa JavaScript-osoitteessa. Avaimet ja tiedot GET URL-osoitteissa saattavat näkyä selaimen historiassa tai palvelimen arkistoissa; mieluummin avaimen otsikko.

Esimerkkejä koodista

Tallenna avain QIVO_API_KEY ympäristömuutokseen; älä julkaise sitä sivukodissa.

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

Suunnitteluparametrit

parametritTyyppiVaatimuksetArvot
X-API-Key / keystringTarvitaan
Salainen avain: otsikko tai GET parametri
datastringTekstin ja URL:n
Tarvittava sisältö tekstille / URL:lle
contentTypestringValinnainen
texturlwifivcardwhatsapptelegramphoneviberemailsms
Oletusarvo: text
formatstringValinnainen
pngsvg
Oletusarvo: png
sizeintegerValinnainen
25651210242048
Oletusarvo: 1024
shapestringValinnainen
squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfetti
Oletusarvo: square
borderstringValinnainen
squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafrough
Oletusarvo: square
centerstringValinnainen
squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheart
Oletusarvo: square
foreground / eyeColorstringValinnainen
#RRGGBB
Oletusarvo: #192b39
backgroundstringValinnainen
#RRGGBB
Oletusarvo: #ffffff
levelstringValinnainen
LMQH
Oletusarvo: M
quietZoneintegerValinnainen
0–12 moduulia
Oletusarvo: 4
logostringValinnainen
nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamond
Oletusarvo: none
logoScaleintegerValinnainen
12–30
Oletusarvo: 24

Logo-koodit käyttävät automaattisesti tasoa H. GET tukee sisäänrakennettuja kuvioita; tiedostojen lataukset ja ulkoiset logo URL-osoitteet eivät ole tukea.

Sisällön tyypit

Sivut riippuvat sisällöstäTyppi. URL-osoitteiden osalta tarjoa täydellinen https:// tai http:// osoite. Puhelinnumerot sisältävät maan koodin.

contentTypeTarvittavat kentätValinnaiset kentät
text / urldata
phone / viberphone
whatsapp / smsphonemessage
telegramtelegram
emailemailsubject, message
wifissid; wifiSecurity≠nopass → wifiPasswordwifiSecurity (WPA), wifiHidden (0)
vcardfirstName / lastNameorganization, jobTitle, phone, email, website, address
Puhelin esimerkki
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svg

Ilman vastauksia

Menestyksekäs vastaus on kuvan tiedosto itse, ilman JSON-sovellusta. Sisältö-tyyppi on kuva/png tai kuva/svg+xml. Virheet palautetaan JSON:

JSON
{"error":"Invalid API key."}
  • 200 — Kuva on luotu.
  • 401 — Puuttuva tai puutteellinen avain.
  • 405 — GET on tarpeen.
  • 422 — Vaaralliset parametrit tai puuttuva sisältö.
  • 429 — Korko ylitettiin; Retry-After: 60
  • 503 — API-yhteys ei ole määritelty tai suoja on väliaikaisesti käytettävissä.
  • 500 — Sisäisen sukupolven virhe.

Rajoitukset ja validointi

Oletusraja on 60 pyyntöä minuutissa IP: n mukaan. koodattu sisältö on rajoitettu 800 bytiin. PNG-lähteen tuotto tukee jopa 2048 × 2048 px. SVG säilyttää vektorimuodot.

API vahvistaa parametrien muotoja, koon ja kontrastin, mutta ei käynnistä dekoderia tai tarkistaa, onko QR-skannat.

saada pääsy

API on ilmainen ja pysyy aina vapaana. Täytä lyhyt lomake pyytää salaista avainta.

Kaikki kolme kenttää vaaditaan. lomakkeen tiedot lähetetään Qivo-tiimiin pyyntösi ja vastauksesi tarkistamiseksi.