QivoCoduri QR Studio
Crearea codului QR

Pentru integrare

Un cod QR într-o singură cerere

Trimiteți setările de conținut și design prin GET și primiți un PNG sau SVG fără verificarea suplimentară a scanării.

liberă pentru totdeauna.PNG, SVG și API – fără taxe sau abonamente.

Coduri QR directe. Nu se reîntoarce, nu expiră.

GEThttps://qivo.umind.group/

Cerere și autentificare

Pasă cheia în titlul X-API-Key. sesiunile de editare și cookie-urile nu sunt necesare. QIVO_API_KEY în acest exemplu este o variabilă a mediului client care conține cheia ta.

Exemplul curlului
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

Dacă integrarea acceptă doar un URL, treceți cheia în parametru cheie:

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

Înlocuiește-ți_SECRET_KEY cu cheia ta. titlul are predecesorul asupra parametrului cheie. URL-encodează valorile parametrului: # → %23, + → %2B, și & în cadrul unei valori → %26.

Utilizați HTTPS și păstrați cheia pe serverul dvs. Nu puneți-o în JavaScript public. Cheile și datele din URL-urile GET pot apărea în istoria browserului sau în jurnalele serverului; Preferă titlul pentru cheia dvs.

Exemple de cod

Salvați cheia în variabilul mediului QIVO_API_KEY; nu o publicați în codul de pagină.

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

Parametrii de proiectare

ParametruTipCerințeValoare
X-API-Key / keystringnecesar
Cheia secretă: titlu sau parametru GET
datastringPentru text și url
Conținutul necesar pentru text/url
contentTypestringOpțional
texturlwifivcardwhatsapptelegramphoneviberemailsms
Definiţie: text
formatstringOpțional
pngsvg
Definiţie: png
sizeintegerOpțional
25651210242048
Definiţie: 1024
shapestringOpțional
squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfetti
Definiţie: square
borderstringOpțional
squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafrough
Definiţie: square
centerstringOpțional
squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheart
Definiţie: square
foreground / eyeColorstringOpțional
#RRGGBB
Definiţie: #192b39
backgroundstringOpțional
#RRGGBB
Definiţie: #ffffff
levelstringOpțional
LMQH
Definiţie: M
quietZoneintegerOpțional
0 - 12 module
Definiţie: 4
logostringOpțional
nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamond
Definiţie: none
logoScaleintegerOpțional
12–30
Definiţie: 24

Codurile cu un logo folosesc automat nivelul H. GET susține pictograme încorporate; nu sunt susținute upload-uri de fișiere și URL-uri externe ale logo-ului.

Tipuri de conținut

Pentru URL-uri, furnizați o adresă completă https:// sau http:// pentru numere de telefon, includeți codul țării.

contentTypecâmpuri necesarecâmpuri opționale
text / urldata
phone / viberphone
whatsapp / smsphonemessage
telegramtelegram
emailemailsubject, message
wifissid; wifiSecurity≠nopass → wifiPasswordwifiSecurity (WPA), wifiHidden (0)
vcardfirstName / lastNameorganization, jobTitle, phone, email, website, address
Exemplu telefonic
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svg

Răspunsuri la API

Un răspuns de succes este fișierul imaginii în sine, fără un JSON Wrapper. tipul de conținut este imaginea/png sau imaginea/svg+xml. Erorile sunt returnate ca JSON:

JSON
{"error":"Invalid API key."}
  • 200 — Imaginea este generată.
  • 401 — Un cheie lipsită sau invalidă.
  • 405 — GET este necesar.
  • 422 — Parametri invalide sau conținutul lipsit.
  • 429 — Limita de rată depășită; Return-After: 60.
  • 503 — Accesul la API nu este configurat sau protecția nu este disponibilă temporar.
  • 500 — Erori de generaţie interioară.

Limitele și validarea

Limitul de standard este de 60 de solicitări pe minut pe IP. Conținutul codat este limitat la 800 de byte. PNG suportă până la 2048 × 2048 px. SVG păstrează formele vectorului.

API validă formatele de parametri, dimensiunea și contrastul, dar nu rulează un decoder sau verifică dacă QR scanează.

Obțineți acces

API-ul este gratuit și va rămâne întotdeauna gratuit. Completează formularul scurt pentru a solicita o cheie secretă.

Toate cele trei câmpuri sunt necesare. detaliile formularului vor fi trimise echipei Qivo pentru a vă examina solicitarea și răspunsul.