สําหรับการรวม
รหัส QR ในคําขอเดียว
เพิ่มการสร้างรหัส QR ไปยังบริการของคุณ ส่งการตั้งค่าเนื้อหาและการออกแบบผ่าน GET และรับ PNG หรือ SVG โดยไม่ต้องตรวจสอบการสแกนเพิ่มเติม
ฟรีตลอดเวลาPNG, SVG และ API - ไม่มีค่าธรรมเนียมหรือสมาชิก
รหัส QR ที่ตรง ไม่มี redirects ไม่หมดอายุ
GEThttps://qivo.umind.group/
คําขอและการรับรอง
ใส่กุญแจของคุณในหัว X-API-Key ไม่จําเป็นต้องมีการแก้ไขเซสชันและคุกกี้ QIVO_API_KEY ในตัวอย่างนี้เป็นแปรรูปสภาพแวดล้อมของลูกค้าที่มีกุญแจของคุณ
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หากการบูรณาการของคุณยอมรับ URL เท่านั้นโปรดส่งคีย์ในพารามิเตอร์หลัก:
https://qivo.umind.group/?key=YOUR_SECRET_KEY&data=https%3A%2F%2Fumind.group&format=png&size=1024เปลี่ยน YOUR_SECRET_KEY ด้วยคีย์ของคุณ หัวจะได้รับความสําคัญกว่าพารามิเตอร์คีย์ URL-encode พารามิเตอร์ค่า: # → %23, + → %2B, และ & ภายในค่า → %26.
ใช้ HTTPS และเก็บคีย์บนเซิร์ฟเวอร์ของคุณ อย่าใส่คีย์และข้อมูลใน URL GET อาจปรากฏในประวัติเบราว์เซอร์หรือบันทึกเซิร์ฟเวอร์ คุณต้องการหัวสําหรับคีย์ของคุณ
ตัวอย่างรหัส
ปล่อยตัวอย่างเหล่านี้บนเซิร์ฟเวอร์ของคุณ เก็บกุญแจไว้ใน QIVO_API_KEY สภาพแวดล้อมที่เปลี่ยนแปลง อย่าเผยแพร่มันในรหัสหน้า
<?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);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()));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())พารามิเตอร์การออกแบบ
| พารามิเตอร์ | ประเภท | ความต้องการ | คะแนน |
|---|---|---|---|
X-API-Key / key | string | ความต้องการ | คีย์ความลับ: หัวหรือ GET พารามิเตอร์ |
data | string | สําหรับข้อความและ URL | เนื้อหาที่จําเป็นสําหรับข้อความ / URL |
contentType | string | ตัวเลือก | texturlwifivcardwhatsapptelegramphoneviberemailsmsคู่มือ: text |
format | string | ตัวเลือก | pngsvgคู่มือ: png |
size | integer | ตัวเลือก | 25651210242048คู่มือ: 1024 |
shape | string | ตัวเลือก | squaresoftroundeddotsleaf-softleafhorizontalverticalpointednotchedstardiamondxx-roundedplusplus-roundedheartsparkleconfettiคู่มือ: square |
border | string | ตัวเลือก | squarecircleroundedskewdrop-tldrop-brleafleaf-inner-brleaf-circleleaf-inner-tlsquare-circlesoft-tlsoft-brsoft-leafroughคู่มือ: square |
center | string | ตัวเลือก | squarecircleroundedskewroughdrop-tldrop-brleafgearstardiamondxx-roundedplusplus-roundedheartคู่มือ: square |
foreground / eyeColor | string | ตัวเลือก | #RRGGBB คู่มือ: #192b39 |
background | string | ตัวเลือก | #RRGGBB คู่มือ: #ffffff |
level | string | ตัวเลือก | LMQHคู่มือ: M |
quietZone | integer | ตัวเลือก | 0-12 โมดูล คู่มือ: 4 |
logo | string | ตัวเลือก | nonewhatsapplinklocationwificredentialemailscanbellmenuscan-mescan-me-v2paypalbitcoinsparkplusdiamondคู่มือ: none |
logoScale | integer | ตัวเลือก | 12–30 คู่มือ: 24 |
รหัสที่มีโลโก้จะใช้ระดับ H โดยอัตโนมัติ GET สนับสนุนไอคอนที่บูรณาการ ไฟล์อัปโหลดและ URL ของโลโก้ภายนอกไม่ได้สนับสนุน
ประเภทเนื้อหา
Fields depends on contentType สําหรับ URLs ให้ https:// หรือ http:// ที่อยู่ที่สมบูรณ์ สําหรับหมายเลขโทรศัพท์รวมถึงรหัสประเทศ
| contentType | พื้นที่ที่จําเป็น | พื้นที่ทางเลือก |
|---|---|---|
| text / url | data | — |
| phone / viber | phone | — |
| whatsapp / sms | phone | message |
| telegram | telegram | — |
| subject, message | ||
| wifi | ssid; wifiSecurity≠nopass → wifiPassword | wifiSecurity (WPA), wifiHidden (0) |
| vcard | firstName / lastName | organization, jobTitle, phone, email, website, address |
https://qivo.umind.group/?key=YOUR_SECRET_KEY&contentType=phone&phone=%2B380671234567&format=svgตอบไฟ
คําตอบที่ประสบความสําเร็จคือไฟล์ภาพตัวเองโดยไม่มี JSON Wrapper Content-Type เป็น image/png หรือ image/svg+xml ข้อผิดพลาดจะถูกส่งคืนเป็น JSON:
{"error":"Invalid API key."}- 200 — ภาพที่สร้างขึ้น
- 401 — คีย์ที่หายไปหรือผิดพลาด
- 405 — GET ต้องใช้
- 422 — พารามิเตอร์ที่ไม่ถูกต้องหรือเนื้อหาที่หายไป
- 429 — อัตราจํากัดเกิน; Retry-After: 60
- 503 — การเข้าถึง API ไม่มีการกําหนดค่าหรือการป้องกันไม่สามารถใช้ได้ชั่วคราว
- 500 — ข้อผิดพลาดการสร้างภายใน
ข้อ จํากัด และการยืนยัน
ปัจจุบัน จํากัด เป็น 60 คําขอต่อนาทีต่อ IP. เนื้อหาที่เข้ารหัสจะ จํากัด 800 บิต PNG สนับสนุนได้ถึง 2048 × 2048 px SVG รักษารูปแบบ vector
API ได้รับการรับรองรูปแบบพารามิเตอร์ขนาดและข้อตกลง แต่ไม่ทํางาน decoder หรือตรวจสอบว่า QR scans Test decorative combinations and printed output with a camera.