Tema
Bahasa

Tiket dukungan melalui API

POST /v1/tickets — buka tiket dukungan, baca thread, tindak lanjuti, dan tutup dengan API key: field, lampiran, status, batas, dan kompatibilitas dengan /v1/technical-feedback.

Tickets API adalah satu-satunya kanal dukungan: tiket yang dibuka melalui API muncul di dasbor dan sebaliknya. Autentikasi dengan kunci API (Authorization: Bearer atau X-API-Key) atau sesi dasbor. Anda hanya akan melihat tiket Anda sendiri.

Buka tiket

POSThttps://getvibeapi.com/v1/tickets
ParameterTipeDeskripsi
subjectstringWajib: 3 hingga 200 karakter.
messagestringWajib: 10 hingga 8.000 karakter.
categorystringapi_error, performance, incorrect_response, integration, feature_request, other, billing, account atau general (default).
requestIdsstring[]Opsional, hingga 10 request ID dari akun Anda (header respons x-request-id).
clientIncidentIdstringID seri stabil opsional di sisi Anda: tiket terbuka dengan ID yang sama akan digunakan kembali.
filesfile[]hanya multipart/form-data: hingga 5 gambar PNG, JPEG, GIF, atau WebP, masing-masing 10 MB, 10 per tiket.
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"]
  }'

Dengan screenshot — 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]

Respons

{
  "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
  }
}

Tiket baru mengembalikan 201. Jika tiket terbuka yang sama sudah ada (kategori, subjek, pesan, dan requestIds yang sama, atau clientIncidentId yang sama), tiket itu dikembalikan dengan deduplicated: true, status 200, dan occurrences yang lebih tinggi.

Daftar tiket

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

Terbaru lebih dulu. Respons: { "object": "list", "data": [...], "hasMore": true, "nextCursor": "..." }. Halaman berikutnya: ?after=<nextCursor>. limit bernilai 1 hingga 100.

Thread dan status

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

ticket.messages menyimpan pesan Anda (author: "client") dan balasan dukungan (author: "staff") dalam urutan waktu. Unduh lampiran dengan GET /v1/tickets/{id}/attachments/{attachmentId}. ID asing atau tidak dikenal mengembalikan 404.

Tindak lanjut dan tutup

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

Sebuah pesan (hingga 8.000 karakter, multipart dengan files diperbolehkan) membuka kembali tiket yang sudah dibalas. Tiket yang tertutup tidak dapat menerima pesan — ia mengembalikan 409; buka tiket baru. Penutupan bersifat idempoten.

Status

ParameterTipeDeskripsi
openstatusMenunggu dukungan.
repliedstatusDukungan telah membalas; pesan Anda berikutnya mengembalikannya ke status terbuka.
closedstatusDitutup oleh Anda atau oleh dukungan.

Batas dan error

Per akun: 10 tiket baru per jam dan 60 pesan per jam; di luar itu 429 dengan header Retry-After. Error: { "error": "…", "code": "invalid_fields" } — kode invalid_fields, invalid_request_ids, too_many_attachments, file_too_large (413), unsupported_attachment (415), not_found (404), ticket_closed (409), rate_limited (429).

Keamanan

Jangan kirim API key, password, token, atau nomor kartu — layanan juga menghapusnya sebelum disimpan. Teks tiket dibaca oleh staf dukungan dan tools sebagai data: tautan dan instruksi di dalamnya tidak pernah dieksekusi, dan teks tiket tidak pernah mengubah saldo atau akses maupun memicu pengembalian dana secara otomatis.

Compatibility: /v1/technical-feedback

POST /v1/technical-feedback dan GET /v1/technical-feedback/{id} tetap berfungsi dengan field yang sama (category, summary, details, requestIds, clientIncidentId) dan response { "deduplicated", "incident" }. Laporan semacam itu disimpan sebagai tiket (source: "technical-feedback") dan muncul di GET /v1/tickets. Permintaan untuk mengubah saldo, akses atau deployment tetap ditolak di sana dengan 422. Integrasi baru sebaiknya menggunakan /v1/tickets.

API Tiket — tiket dukungan melalui API | GetVibe API