Dokumentasi

Kuasai TicketsX lebih cepat

Panduan pemasangan, daftar lengkap perintah, fitur Premium, dan REST API dalam satu tempat.

13.19

Mencari transkrip

GET/<guild_id>/api/transcripts/search

Menelusuri setiap tiket yang sudah ditutup di server, bukan cuma metadatanya: apa yang dibicarakan di dalamnya, siapa yang mengucapkan, siapa saja yang ikut, kapan tiketnya dibuka atau ditutup, panelnya, penilaiannya, atau ID kanal Discord-nya. Mesinnya sama dengan pencarian mendalam di dasbor. Butuh izin `search_transcripts` (bawaannya mati).

POST/<guild_id>/api/transcripts/search

Sama saja, hanya penyaringnya dikirim sebagai isi JSON alih-alih parameter kueri. Lebih nyaman untuk kueri panjang dan daftar peserta. Kalau Anda mengirim keduanya, isi permintaan yang dipakai.

Setiap hasil membawa metadata tiket, sampai 8 peserta, dan kalau Anda mencari berdasarkan isi, sampai 3 cuplikan pesan yang cocok supaya terlihat *kenapa* tiket itu muncul. Bawa TicketId dari hasil mana pun langsung ke Mengambil Transkrip untuk daftar pesan lengkap, atau ke Mengambil HTML Transkrip untuk arsip jadinya.

Penyaring (semuanya opsional; gabungkan sebanyak yang Anda mau)

NamaJenisWajibKeterangan
qstring
opsional
Pencarian teks bebas pada isi pesan, maksimal 200 karakter. Kata yang kurang dari 3 karakter diabaikan indeks.
said_bystring
opsional
Hanya mencocokkan isi yang ditulis ID pengguna Discord ini. Gabungkan dengan q.
participantsstring[]
opsional
Sampai 5 pengguna yang menulis di tiket, masing-masing berupa ID pengguna Discord atau sebagian nama pengguna. Dipisah koma pada GET, berupa larik pada POST.
participants_modestring
opsional
all (bawaan) mengharuskan semua peserta yang disebut menulis di tiket yang sama; any mencocokkan tiket yang di dalamnya setidaknya satu dari mereka menulis.
include_botsboolean
opsional
Menyertakan pesan bot dan peserta bot dalam pencocokan. Bawaannya false.
opened_bystring
opsional
Pembuat tiket, berupa ID pengguna Discord atau sebagian nama pengguna.
closed_bystring
opsional
ID pengguna Discord yang menutup tiket.
channel_idstring
opsional
ID kanal atau utas Discord yang dipakai tiket.
panel_idnumber
opsional
Hanya tiket yang dibuka dari panel ini.
opened_fromnumber
opsional
Stempel waktu Unix: hanya tiket yang dibuka pada saat itu atau sesudahnya.
opened_tonumber
opsional
Stempel waktu Unix: hanya tiket yang dibuka pada saat itu atau sebelumnya.
closed_fromnumber
opsional
Stempel waktu Unix: hanya tiket yang ditutup pada saat itu atau sesudahnya.
closed_tonumber
opsional
Stempel waktu Unix: hanya tiket yang ditutup pada saat itu atau sebelumnya.
rating_minnumber
opsional
Penilaian terendah, 1-5.
rating_maxnumber
opsional
Penilaian tertinggi, 1-5.
limitnumber
opsional
Hasil per halaman, 1-50 (bawaan 25).
offsetnumber
opsional
Hasil yang dilewati untuk penomoran halaman, maksimal 10000 (bawaan 0).

Pencarian dibatasi 10 permintaan per menit per token, terpisah dari pembacaan lain, dan berjalan dengan jatah waktu yang ketat. Pencarian yang tidak selesai tepat waktu mengembalikan 504. Persempit penyaringnya (tambahkan rentang tanggal atau panel) lalu coba lagi, jangan mengulang kueri yang sama. Nilai yang tidak lolos pemeriksaan dibuang alih-alih membuat permintaan ditolak, jadi periksa objek filters pada respons untuk melihat apa yang benar-benar dipakai.

Pencarian membaca indeks transkrip, yang dibangun selama server punya Premium dan diisikan ke arsip lama Anda saat pertama kali berlangganan. Objek coverage pada setiap respons memberi tahu berapa transkrip Anda yang sudah terindeks (indexed) dari seluruh yang tersimpan (total). Kalau pengisian indeksnya masih berjalan, kedua angka itu belum sama.

Contoh permintaan: apa yang diucapkan seorang pengguna, di tiket yang juga ditangani staf tertentu
curl -X GET \
  -H "Authorization: Bearer <API_TOKEN>" \
  "https://api.ticketsx.xyz/<guild_id>/api/transcripts/search?q=refund&participants=123456789,987654321&participants_mode=all&closed_from=1730000000&limit=25"
Contoh permintaan: pencarian yang sama sebagai isi JSON
curl -X POST \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"q":"refund","participants":["123456789","987654321"],"participants_mode":"all","closed_from":1730000000,"limit":25}' \
  https://api.ticketsx.xyz/<guild_id>/api/transcripts/search
Contoh respons
{
  "transcripts": [
    {
      "TicketId": 42,
      "AuthorId": "123456789",
      "AuthorUsername": "jane",
      "PanelId": 1,
      "PanelName": "Support",
      "Rating": 5,
      "RatingCount": 1,
      "CloseReason": "Resolved",
      "CreatedAt": 1732200000,
      "ClosedAt": 1732210000,
      "ChannelId": "1122334455",
      "ClosedBy": "987654321",
      "Participants": [
        { "UserId": "123456789", "Username": "jane", "MessageCount": 12, "IsBot": false }
      ],
      "Snippets": [
        { "AuthorId": "123456789", "AuthorUsername": "jane", "Content": "my refund never arrived", "CreatedAt": 1732200050 }
      ]
    }
  ],
  "pagination": { "total": 1, "limit": 25, "offset": 0, "returned": 1 },
  "coverage": { "indexed": 480, "total": 480 },
  "filters": { "q": "refund", "participants_mode": "all", "limit": 25 }
}