QivoMẫu QR Code Studio
Tạo QR Code

Đối với Integration

Mã QR trong một yêu cầu

Gửi nội dung và thiết kế cài đặt thông qua GET và nhận một PNG hoặc SVG mà không cần kiểm tra quét thêm.

Tự do, mãi mãiPNG, SVG và API – không có phí hoặc đăng ký.

Mã QR trực tiếp Không chuyển hướng, không hết hạn.

GEThttps://qivo.umind.group/

Yêu cầu và xác thực

Nhập chìa khóa của bạn vào tiêu đề X-API-Key. phiên chỉnh sửa và cookie không được yêu cầu. QIVO_API_KEY trong ví dụ này là một biến môi trường khách hàng có chứa chìa khóa của bạn.

Curl ví dụ
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

Nếu sự tích hợp của bạn chỉ chấp nhận một URL, hãy chuyển khóa vào thông số chìa khóa:

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

Thay thế YOUR_SECRET_KEY với khóa của bạn. tiêu đề chiếm ưu thế trên thông số khóa. URL-code thông số giá trị: # → %23, + → %2B, và & trong một giá trị → %26.

Sử dụng HTTPS và giữ chìa khóa trên máy chủ của bạn. đừng đặt nó trong JavaScript công cộng. Chìa khóa và dữ liệu trong URL GET có thể xuất hiện trong lịch sử trình duyệt hoặc hồ sơ máy chủ; chọn tiêu đề cho chìa khóa của bạn.

Ví dụ code

Lưu chìa khóa trong biến môi trường QIVO_API_KEY; đừng xuất bản nó trong mã trang.

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

Thiết kế Parameters

Các ParameterKiểuYêu cầugiá trị
X-API-Key / keystringcần thiết
Chìa khóa bí mật: header hoặc GET parameter
datastringVăn bản và URL
Nội dung cần thiết cho text/url
contentTypestringTùy chọn
texturlwifivcardwhatsapptelegramphoneviberemailsms
giả định: text
formatstringTùy chọn
pngsvg
giả định: png
sizeintegerTùy chọn
25651210242048
giả định: 1024
shapestringTùy chọn
squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfetti
giả định: square
borderstringTùy chọn
squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafrough
giả định: square
centerstringTùy chọn
squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheart
giả định: square
foreground / eyeColorstringTùy chọn
#RRGGBB
giả định: #192b39
backgroundstringTùy chọn
#RRGGBB
giả định: #ffffff
levelstringTùy chọn
LMQH
giả định: M
quietZoneintegerTùy chọn
0 - 12 module
giả định: 4
logostringTùy chọn
nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamond
giả định: none
logoScaleintegerTùy chọn
12–30
giả định: 24

Mã có logo tự động sử dụng cấp độ H. GET hỗ trợ biểu tượng tích hợp; file upload và URL logo bên ngoài không được hỗ trợ.

Loại nội dung

Các trường phụ thuộc vào nội dungType.Đối với URL, cung cấp một địa chỉ https:// hoặc http:// đầy đủ.Đối với số điện thoại, bao gồm mã quốc gia.

contentTypeCác lĩnh vực cần thiếtCác trường tùy chọn
text / urldata
phone / viberphone
whatsapp / smsphonemessage
telegramtelegram
emailemailsubject, message
wifissid; wifiSecurity≠nopass → wifiPasswordwifiSecurity (WPA), wifiHidden (0)
vcardfirstName / lastNameorganization, jobTitle, phone, email, website, address
Ví dụ điện thoại
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svg

Câu trả lời API

Một phản ứng thành công là tệp hình ảnh chính nó, mà không có một JSON wrapper. Content-Type là image/png hoặc image/svg+xml. Errors are returned as JSON:

JSON
{"error":"Invalid API key."}
  • 200 — hình ảnh được tạo ra.
  • 401 — Chìa khóa bị mất hoặc không có hiệu lực
  • 405 — GET là cần thiết.
  • 422 — Các thông số không hợp lệ hoặc nội dung thiếu.
  • 429 — Tỷ lệ vượt quá; Retry-After: 60.
  • 503 — Truy cập API không được cấu hình hoặc bảo vệ tạm thời không sẵn dùng.
  • 500 — Lỗi thế hệ nội bộ

Giới hạn và xác nhận

Giới hạn mặc định là 60 yêu cầu mỗi phút cho mỗi IP. Nội dung mã hóa được giới hạn đến 800 byte. PNG output hỗ trợ lên đến 2048 × 2048 px. SVG duy trì các hình dạng vector.

API xác nhận các định dạng thông số, kích thước và tương phản, nhưng không chạy một decoder hoặc kiểm tra xem QR có quét hay không.

Truy cập

API là miễn phí và sẽ luôn luôn miễn phí. hoàn thành biểu mẫu ngắn để yêu cầu một khóa bí mật.

Tất cả ba trường được yêu cầu. thông tin biểu mẫu sẽ được gửi đến nhóm Qivo để xem xét yêu cầu và trả lời của bạn.