من أجل التكامل
رمز QR في طلب واحد
إرسال إعدادات المحتوى والتصميم عبر GET والحصول على PNG أو SVG دون إجراء فحص إضافي.
مجاناً إلى الأبد.PNG و SVG و API - لا رسوم أو الاشتراكات.
كود QR المباشر لا إعادة توجيه ولا انتهاء الصلاحية
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: # → %23, + → %2B, و & داخل قيمة → %26.
استخدم HTTPS واحفظ المفتاح على خادمك.لا تضعها في JavaScript العام.يمكن أن تظهر المفاتيح والبيانات في عناوين 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 الشعار الخارجية.
أنواع المحتوى
المجالات تعتمد على المحتوىنوع.للعنوان URL، إعطاء عنوان كامل 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. Content-Type هو image/png أو image/svg+xml. Errors are returned as JSON:
{"error":"Invalid API key."}- 200 — صورة تم إنشاؤها
- 401 — المفاتيح المفقودة أو المفقودة.
- 405 — يُطلب منك الحصول
- 422 — المعايير غير الصحيحة أو المحتوى المفقود.
- 429 — الحد الأدنى للمعدل يتجاوز؛ بعد الانسحاب: 60.
- 503 — لا يتم تكوين الوصول إلى API أو الحماية غير متوفرة مؤقتًا.
- 500 — خطأ الجيل الداخلي
الحدود والتصديق
الحد الافتراضي هو 60 طلبًا في الدقيقة لكل IP. يقتصر المحتوى المشفر على 800 بايت. يدعم إنتاج PNG ما يصل إلى 2048 × 2048 بكسل.
تثبت API تنسيقات المعلمات والحجم والتباين، ولكنها لا تعمل على التخزين أو التحقق مما إذا كانت QR تتصفح.