GetQR API في مرحلة تجريبية (beta) ومتاحة لمساحات عمل مختارة. قد تتغير التفاصيل قبل الإصدار العام.
بيانات رمز QR حسب النوع
صيغة
data لكل نوع من الأنواع الستة عشر.التخصيص
أنماط النقاط والألوان والإطارات والشعارات.
قواعد الوصول
الجدول الزمني وحد المسح وكلمة المرور.
كائن رمز QR
تُرجع كل نقطة نهاية لرموز QR هذا الكائن، باستثناء الحذف والتنزيل. وتُرجع القائمة مصفوفة منها.string
المعرّف الفريد لرمز QR، مثل
qr_1EPcVfeHZAY2iNoVLsgW2Aqf.string
نوع رمز QR، مثل
website. راجع بيانات رمز QR حسب النوع للاطلاع على القيم الست عشرة كلها.string | null
اسم رمز QR، المعروض في لوحة التحكم.
string | null
ملاحظة نصية حرة عن رمز QR.
string
الحمولة المحفوظة. في
wifi وvcard وsocial وmultilink وevent وsms هي الحمولة التي أرسلتها. وفي كل الأنواع الأخرى هي الرابط القصير، لذا اقرأ الوجهة من url.boolean
true عندما يكون رمز QR موقوفًا مؤقتًا.boolean
true لرمز QR ثابت أُنشئ في لوحة التحكم ولا رابط قصيرًا له. تُنشئ API دائمًا رموز QR ديناميكية.string | null
الرابط القصير الكامل، مثل
https://getqr.sh/x7Kd2p1.string | null
نطاق الرابط القصير.
string | null
المعرّف النصي (slug) للرابط القصير.
boolean
true عندما يكون المعرّف النصي قد اختير بدلًا من توليده.string | null
الوجهة التي يعيد الرابط القصير التوجيه إليها.
string | null
الوجهة لزوار iOS، في رموز QR من نوع
app.string | null
الوجهة لزوار Android، في رموز QR من نوع
app.integer
إجمالي عدد عمليات المسح.
object
قواعد الوصول. لا تُرجع كلمة المرور نفسها أبدًا. راجع قواعد الوصول.
string
للقراءة فقط.
custom تصميم يمكن لـ API تعديله بالكامل. branded وai تصميم بعلامة تجارية أو تصميم بالذكاء الاصطناعي أُنشئ في لوحة التحكم. لا تستطيع API تعديل صورته، لكنها تحتفظ بها عند تغيير الحقول الأخرى.object
التصميم المحفوظ:
styles وframeOptions وlogoOptions، وكل منها كائن أو null. لها البنية نفسها لحقول الطلب، فيمكنك إرسالها مرة أخرى. راجع التخصيص.object | null
ملف رمز QR من نوع
pdf أو image أو video: id وname وsize بالبايت.string | null
للقراءة فقط. الاسم المعروض لرمز QR من نوع
app أُنشئ في لوحة التحكم.object | null
للقراءة فقط. رمز QR من نوع
pdf يضم عدة ملفات، أُنشئ في لوحة التحكم: title وlayout وfiles.object | null
للقراءة فقط. رمز QR من نوع
image يضم عدة صور، أُنشئ في لوحة التحكم: title وlayout وfiles.string
تاريخ الإنشاء، بصيغة ISO 8601.
string
تاريخ آخر تحديث، بصيغة ISO 8601.
password، userId، workspaceId، projectId) أبدًا.
عرض قائمة رموز QR
GET /api/v1/qrs
يُرجع رموز QR في مساحة عملك، صفحة تلو الأخرى.
integer
افتراضي:"1"
الصفحة التي تُعاد، 1 أو أكثر.
integer
افتراضي:"100"
رموز QR في كل صفحة، من 1 إلى 100. تُرفض القيمة الأكبر.
string
يطابق عنوان رمز QR. الاستعلامات التي تزيد على حرفين تطابق أيضًا
data المحفوظة. في أنواع الروابط تكون data المحفوظة هي الرابط القصير، لذا لا يمكن البحث في روابط الوجهة.string
افتراضي:"createdAt"
حقل الترتيب:
createdAt أو updatedAt أو clicks (إجمالي عمليات المسح) أو lastClicked (أحدث عملية مسح) أو type. يرتّب type دائمًا تنازليًا ويتجاهل sortOrder.string
افتراضي:"desc"
اتجاه الترتيب:
asc أو desc.boolean
افتراضي:"false"
تضمين رموز QR الموقوفة مؤقتًا.
boolean
افتراضي:"false"
إرجاع رموز QR الموقوفة مؤقتًا فقط. يتجاوز
showArchived.true أو false. اطلب الصفحة التالية ما دام pagination.hasMore يساوي true. راجع ترقيم الصفحات.
إنشاء رمز QR
POST /api/v1/qrs
يُنشئ رمز QR ورابطه القصير معًا. يُرجع 201 Created مع رمز QR الجديد.
string
رمز إعادة المحاولة الخاص بك. تكرار الطلب بالمفتاح نفسه خلال 24 ساعة يُرجع الاستجابة الأصلية بدلًا من إنشاء رمز QR ثانٍ. راجع إعادة المحاولة والتكرار.
string
مطلوب
ما يرمّزه رمز QR. يحدد أيضًا الصيغة التي يجب أن تكون عليها
data. إحدى القيم: website، pdf، image، video، whatsapp، social، wifi، app، feedback، vcard، sms، payment، location، multilink، email، event.string
مطلوب
حمولة النوع، ويُتحقق منها وفق
qrType. السلسلة الفارغة تتخطى الفحص. صيغة كل نوع موجودة في بيانات رمز QR حسب النوع.object
الرابط القصير الذي يعمل رمز QR من خلاله. اختياري: إذا حُذف، يتبع
link.url قيمة data.string
اسم رمز QR، المعروض في لوحة التحكم. تُزال المسافات من طرفيه، من 1 إلى 40 حرفًا. إذا حُذف، يكون رمز QR بلا عنوان.
string
ملاحظة نصية حرة عن رمز QR. حتى 280 حرفًا.
string
ملف رمز QR من نوع
pdf أو image أو video، مرفوع بالغرض المطابق. وفي vcard وsocial وmultilink، صورة ملف شخصي اختيارية مرفوعة بالغرض logo. يقبله event أيضًا، لكن صفحته تقرأ صورة الغلاف من data.fileId. تحصل الأنواع الأخرى على 422. ارفع الملف أولًا عبر الملفات. راجع الملفات في رموز QR.string
القالب الذي يُطبَّق تصميمه على رمز QR الجديد. تُدمج حقول التصميم التي ترسلها فوقه. القالب ذو التصميم بعلامة تجارية أو بالذكاء الاصطناعي يحصل على
422 (art_template_unsupported). القالب غير المعروف، أو القالب من مساحة عمل أخرى، يحصل على 404.object
الشعار في الوسط: شعار مقترح أو ملفك الخاص المرفوع بالغرض
logo. يُرفض الملف غير المعروف، أو الرفع غير المكتمل، أو الملف من غرض آخر. راجع التخصيص.object
الجدول الزمني وحد المسح وحماية كلمة المرور. راجع قواعد الوصول.
boolean
ما إذا كان رمز QR موقوفًا مؤقتًا.
true تُنشئه موقوفًا مؤقتًا: تعرض عمليات المسح صفحة الإيقاف المؤقت بدلًا من الوجهة.إعادة المحاولة والتكرار
- مع مفتاح. مع الترويسة
Idempotency-Key، تُعاد الاستجابة نفسها لمدة 24 ساعة. - دون مفتاح. يُعامَل الجسم المطابق المُرسَل خلال 30 ثانية على أنه مكرر.
- الإعادات. تُرجع الإعادة الاستجابة المحفوظة مع
x-idempotent-replay: true. ويُرجع رمز QR الجديدfalse. - قيد التنفيذ. الطلب الثاني أثناء تنفيذ الأول يحصل على
409 conflict. - الإخفاقات. الإنشاء الفاشل يحرّر المفتاح فورًا، فيمكنك إعادة المحاولة بالمفتاح نفسه.
- أفضل جهد. إذا لم تكن آلية الحماية متاحة، تُنفَّذ عمليات الإنشاء دون حماية.
الحصول على رمز QR
GET /api/v1/qrs/{qrId}
يُرجع رمز QR مع رابطه القصير وقواعد الوصول والتصميم، وملفه في الأنواع المعتمدة على الملفات.
string
مطلوب
معرّف رمز QR، من استجابة القائمة أو الإنشاء.
تحديث رمز QR
PATCH /api/v1/qrs/{qrId}
يغيّر محتوى رمز QR أو وجهته أو تصميمه أو قواعد الوصول الخاصة به. أرسل فقط الحقول التي تريد تغييرها. يُرجع رمز QR المحدَّث.
string
مطلوب
معرّف رمز QR.
templateId. غير مقبول.link. جزئي. تُحفظ الوجهة الحالية عند حذفlink.url. يحصلlink.domainوlink.keyعلى422: الرابط القصير هو ما يرمّزه الرمز المطبوع، لذا أنشئ رمز QR جديدًا لاستخدام رابط مختلف.data. يُتحقق منها وفق النوع الناتج فقط عند تغيّرdataأوqrType. يُرفض تبديلqrTypeدونdataمطابقة. راجع تبديل النوع.- التصميم. تُدمج
stylesوframeOptionsوlogoOptionsفي التصميم المحفوظ، لذا لا يغيّر الكائن الجزئي إلا ما يذكره. اختيار شعار آخر يستبدله لكنه يحتفظ بحجمه. access. يُطبَّق كل مفتاح عند وجوده.nullتمسح قاعدة. تنتمي قواعد الوصول إلىaccess: إرسالها ضمنlinkيحصل على422.archived. يوقف رمز QR ورابطه القصير مؤقتًا أو يعيد تفعيلهما معًا، مثل الإيقاف المؤقت وإعادة التفعيل.
ضبط حالة الإيقاف المؤقت
PUT /api/v1/qrs/{qrId}
يضبط حالة الإيقاف المؤقت مباشرة. يؤدي الإيقاف المؤقت وإعادة التفعيل المهمة نفسها بصورة أوضح.
string
مطلوب
معرّف رمز QR.
boolean
مطلوب
true لإيقاف رمز QR مؤقتًا، وfalse لإعادة تفعيله.إيقاف رمز QR مؤقتًا
POST /api/v1/qrs/{qrId}/pause
يمنع رمز QR من التوجيه إلى وجهته: تعرض عمليات المسح صفحة الإيقاف المؤقت بدلًا من ذلك. يظل الرمز المطبوع ورابطه القصير صالحين. لا يوجد جسم طلب.
string
مطلوب
معرّف رمز QR.
إعادة تفعيل رمز QR
POST /api/v1/qrs/{qrId}/activate
يجعل رمز QR الموقوف مؤقتًا يوجّه إلى وجهته مرة أخرى. يظل أي جدول زمني أو حد مسح ساريًا. لا يوجد جسم طلب.
string
مطلوب
معرّف رمز QR.
تكرار رمز QR
POST /api/v1/qrs/{qrId}/duplicate
يُنشئ نسخة بالمحتوى والتصميم نفسيهما. لا يوجد جسم طلب. يُرجع 201 Created مع رمز QR الجديد.
string
مطلوب
معرّف رمز QR المراد نسخه.
- الرابط القصير. تحصل النسخة على رابط قصير خاص بها، بمعرّف نصي عشوائي على النطاق الافتراضي لمساحة العمل، لا على نطاق المصدر. تُحتسب عمليات مسحها بشكل منفصل.
- العنوان. يُضاف إلى العنوان اللاحقة
(Copy). تبقى النتيجة ضمن 40 حرفًا: يُختصر العنوان الطويل أولًا. يبقى رمز QR الذي بلا عنوان بلا عنوان. - ما لا يُنسخ. قواعد الوصول (كلمة المرور، الجدول الزمني، حد المسح) وحالة الإيقاف المؤقت. تكون النسخة نشطة دائمًا.
- الملفات. تُنسخ ملفات PDF والصور، بما فيها ملفات الحزم والمعارض، فتصبح النسخة مالكة لها. أما ملفات الفيديو وملفات التصميم، مثل الشعارات، فتُشارك مع المصدر.
حذف رمز QR
DELETE /api/v1/qrs/{qrId}
يحذف رمز QR ورابطه القصير. يُرجع المعرّف المحذوف.
string
مطلوب
معرّف رمز QR.
string
معرّف رمز QR المحذوف.
boolean
دائمًا
true.تنزيل صورة رمز QR
GET /api/v1/qrs/{qrId}/download
يرسم رمز QR بتصميمه ويُرجع الملف.
string
مطلوب
معرّف رمز QR المراد رسمه، من استجابة القائمة أو الإنشاء.
string
افتراضي:"jpg"
صيغة الإخراج:
jpg أو png أو svg أو pdf (صفحة A4) أو eps. يُنزَّل التصميم بعلامة تجارية أو بالذكاء الاصطناعي بصيغة jpg أو png أو pdf فقط.integer
افتراضي:"1024"
حجم الصورة بالبكسل:
1024 أو 2048 أو 4096. يتجاهله svg وpdf. يُنزَّل التصميم بعلامة تجارية أو بالذكاء الاصطناعي بحجم 1024 فقط.- الجسم. جسم الاستجابة هو الملف نفسه. اسم الملف المقترح موجود في الترويسة
Content-Disposition، ويُبنى من العنوان، أوqr-codeلرمز QR بلا عنوان. - التخزين المؤقت. تحمل الاستجابات
ETagوCache-Control: private, max-age=3600, must-revalidate. أرسلETagمرة أخرى فيIf-None-Matchللحصول على304 Not Modifiedعندما لا يتغير رمز QR. - الأخطاء. الصيغة أو الدقة غير المدعومة تحصل على
400 bad_request. تذكر رسالة الخطأ السبب:qr_download_invalid_formatأوqr_download_invalid_resolutionأوqr_download_art_format_unsupportedأوqr_download_art_resolution_unsupported.
قواعد الوصول
أرسل كائنaccess عند الإنشاء أو التحديث لجدولة بداية ونهاية، أو تحديد عدد عمليات المسح، أو طلب كلمة مرور. تبقى القواعد المحذوفة دون تغيير، وnull تمسح قاعدة. السلوك الكامل، مع أمثلة، موجود في قواعد الوصول.
كائنات التصميم
تحددstyles وframeOptions وlogoOptions أشكال النقاط والزوايا، والألوان، والإطار، والشعار. تعمل بالطريقة نفسها مع رموز QR والقوالب والإنشاء المجمّع. تُرفض الأشكال أو الإطارات أو الشعارات غير المعروفة. جميع القيم المقبولة ومثال تطبيقي موجودة في التخصيص.
المشكلات الشائعة
الخطأ 422 عند ضبط كلمة مرور أو جدول زمني أو حد مسح
الخطأ 422 عند ضبط كلمة مرور أو جدول زمني أو حد مسح
أرسل القاعدة ضمن
access، لا ضمن link.الخطأ 422 عند تغيير link.domain أو link.key
الخطأ 422 عند تغيير link.domain أو link.key
لا يمكن تغيير الرابط القصير بعد الإنشاء، لأن الرمز المطبوع يرمّزه. أنشئ رمز QR جديدًا بدلًا من ذلك.
422 "Expected … for qrType"
422 "Expected … for qrType"
data لا تطابق صيغة qrType. تحقّق من النوع في بيانات رمز QR حسب النوع.الخطأ 409 conflict عند إنشاء رمز QR
الخطأ 409 conflict عند إنشاء رمز QR
عملية إنشاء مطابقة لا تزال قيد التنفيذ، أو أن
link.key مستخدم. أعد المحاولة بعد انتهاء الطلب الأول. مع Idempotency-Key، تُرجع إعادة المحاولة رمز QR الأصلي.الملف المُنزَّل بصيغة JPEG لا PNG
الملف المُنزَّل بصيغة JPEG لا PNG
المعاملان هما
format وresolution، والقيمة الافتراضية لـ format هي jpg. أرسل format=png.الخطأ 404 لرمز QR أراه في لوحة التحكم
الخطأ 404 لرمز QR أراه في لوحة التحكم
يُنفَّذ كل طلب في مساحة العمل الخاصة بمفتاح API. تحقّق من أن رمز QR ينتمي إليها. راجع المصادقة.