المظهر
اللغة

تذاكر الدعم عبر API

POST /v1/tickets — افتح تذكرة دعم، واقرأ المحادثة، وتابع، وأغلقها باستخدام مفتاح API: الحقول والمرفقات والحالات والحدود والتوافق مع /v1/technical-feedback.

واجهة Tickets API هي قناة الدعم الوحيدة: التذكرة المفتوحة عبر API تظهر في لوحة التحكم والعكس صحيح. صادِق بمفتاح API ‏(Authorization: Bearer أو X-API-Key) أو بجلسة لوحة تحكم. ولن ترى سوى تذاكرك أنت.

افتح تذكرة

POSThttps://getvibeapi.com/v1/tickets
المعلمةالنوعالوصف
subjectstringمطلوب: من 3 إلى 200 حرف.
messagestringمطلوب: من 10 إلى 8,000 حرف.
categorystringapi_error أو performance أو incorrect_response أو integration أو feature_request أو other أو billing أو account أو general (الافتراضي).
requestIdsstring[]اختياري، حتى 10 معرفات طلبات من حسابك (ترويسة الاستجابة x-request-id).
clientIncidentIdstringمعرف سلسلة ثابت اختياري من جانبك: تُعاد استخدام التذكرة المفتوحة بالمعرف نفسه.
filesfile[]multipart/form-data فقط: حتى 5 صور PNG أو JPEG أو GIF أو WebP، بحجم 10 MB لكل صورة، و10 لكل تذكرة.
curl https://getvibeapi.com/v1/tickets \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "Stream stops after 30 seconds",
    "message": "stream=true on /v1/chat/completions stops after about 30 seconds; retrying does not help.",
    "category": "api_error",
    "requestIds": ["req_123"]
  }'

مع لقطة شاشة — multipart:

curl https://getvibeapi.com/v1/tickets \
  -H "Authorization: Bearer $API_KEY" \
  -F subject="Wrong response" \
  -F message="The model returns an empty answer, screenshot attached." \
  -F category=incorrect_response \
  -F [email protected]

الاستجابة

{
  "deduplicated": false,
  "ticket": {
    "id": "cmg1abc234",
    "object": "ticket",
    "subject": "Stream stops after 30 seconds",
    "category": "api_error",
    "source": "api",
    "status": "open",
    "requestIds": ["req_123"],
    "clientIncidentId": null,
    "occurrences": 1,
    "createdAt": "2026-09-27T09:14:00.000Z",
    "updatedAt": "2026-09-27T09:14:00.000Z",
    "repliedAt": null
  }
}

تعيد التذكرة الجديدة 201. وإذا كانت التذكرة المفتوحة نفسها موجودة بالفعل (التصنيف نفسه والموضوع والرسالة وrequestIds نفسها، أو clientIncidentId نفسه)، تُعاد تلك التذكرة مع deduplicated: true، والحالة 200، وoccurrences أعلى.

عرض التذاكر

GEThttps://getvibeapi.com/v1/tickets?limit=20&status=open

الأحدث أولًا. الاستجابة: { "object": "list", "data": [...], "hasMore": true, "nextCursor": "..." }. الصفحة التالية: ?after=<nextCursor>. تتراوح قيمة limit بين 1 و100.

المحادثة والحالة

GEThttps://getvibeapi.com/v1/tickets/{id}
curl https://getvibeapi.com/v1/tickets/cmg1abc234 \
  -H "Authorization: Bearer $API_KEY"

يحتفظ ticket.messages برسائلك (author: "client") وردود الدعم (author: "staff") مرتّبة زمنيًا. نزّل المرفقات بـ GET /v1/tickets/{id}/attachments/{attachmentId}. وأي معرّف غريب أو غير معروف يعيد 404.

المتابعة والإغلاق

POSThttps://getvibeapi.com/v1/tickets/{id}/messages
curl https://getvibeapi.com/v1/tickets/cmg1abc234/messages \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "It happened again today at 10:05 UTC, request id req_456."}'
POSThttps://getvibeapi.com/v1/tickets/{id}/close

رسالة (حتى 8,000 حرف، ويُسمح بـ multipart مع files) تعيد فتح تذكرة تم الرد عليها. ولا يمكن للتذكرة المغلقة استقبال رسائل — فهي تعيد 409؛ افتح تذكرة جديدة. الإغلاق عملية عديمة الأثر عند التكرار.

الحالات

المعلمةالنوعالوصف
openstatusبانتظار الدعم.
repliedstatusردّ فريق الدعم؛ رسالتك التالية تعيد حالة التذكرة إلى مفتوحة.
closedstatusمغلقة بواسطتك أو بواسطة الدعم.

الحدود والأخطاء

لكل حساب: 10 تذاكر جديدة في الساعة و60 رسالة في الساعة؛ وما يتجاوز ذلك 429 مع ترويسة Retry-After. الأخطاء: { "error": "…", "code": "invalid_fields" } — الأكواد invalid_fields و invalid_request_ids و too_many_attachments و file_too_large (413) و unsupported_attachment (415) و not_found (404) و ticket_closed (409) و rate_limited (429).

الأمان

لا ترسل مفاتيح API أو كلمات المرور أو الرموز أو أرقام البطاقات — فالخدمة تجرّدها قبل التخزين كذلك. يقرأ فريق الدعم نصّ التذكرة والأدوات كبيانات: لا تُنفَّذ الروابط والتعليمات الواردة فيه أبدًا، ولا يغيّر نص التذكرة رصيدًا أو صلاحية ولا يُطلق استردادًا تلقائيًا.

Compatibility: /v1/technical-feedback

يظل POST /v1/technical-feedback و GET /v1/technical-feedback/{id} يعملان بالحقول نفسها (category و summary و details و requestIds و clientIncidentId) مع استجابة { "deduplicated", "incident" }. ويُخزَّن هذا التقرير كتذكرة (source: "technical-feedback") ويظهر في GET /v1/tickets. أما طلبات تغيير الرصيد أو الوصول أو عمليات النشر فما زالت تُرفض هناك بـ 422. وينبغي أن تستخدم التكاملات الجديدة /v1/tickets.

واجهة برمجة التذاكر — تذاكر الدعم عبر الـ API | GetVibe API