Documentatie

Leer TicketsX sneller kennen

Installatiehandleidingen, het volledige commando-overzicht, Premium-functies en de REST-API op één plek.

13.19

Transcripties doorzoeken

GET/<guild_id>/api/transcripts/search

Doorzoekt elk gesloten ticket van de server, niet alleen de bijbehorende gegevens: wat er binnenin is gezegd, wie het zei, wie eraan meedeed, wanneer het openging of sloot, bij welk paneel het hoort, welke beoordeling het kreeg of welk Discord-kanaal-ID het had. Dit is dezelfde motor als diep zoeken in het dashboard. Vereist het recht `search_transcripts` (standaard uit).

POST/<guild_id>/api/transcripts/search

Hetzelfde, maar met de filters in een JSON-body in plaats van in queryparameters. Handiger bij lange zoekopdrachten en lijsten met deelnemers. Stuur je allebei, dan wint de body.

Elk resultaat bevat de gegevens van het ticket, tot 8 deelnemers en, als je op inhoud zocht, tot 3 bijbehorende fragmenten zodat je ziet *waarom* het ticket meekwam. Neem het TicketId uit een resultaat mee naar Een transcriptie ophalen voor alle berichten, of naar HTML van een transcriptie ophalen voor het opgemaakte archief.

Filters (allemaal optioneel; combineer er zoveel je wilt)

NaamTypeVerplichtBeschrijving
qstring
optioneel
Vrij zoeken in de inhoud van berichten, maximaal 200 tekens. Woorden korter dan 3 tekens slaat de index over.
said_bystring
optioneel
Alleen inhoud van deze Discord-gebruikers-ID. Gebruik hem samen met q.
participantsstring[]
optioneel
Tot 5 gebruikers die in het ticket schreven, elk als Discord-gebruikers-ID of als deel van een gebruikersnaam. Bij GET gescheiden door komma's, bij POST als array.
participants_modestring
optioneel
all (standaard) vereist dat alle genoemde deelnemers in hetzelfde ticket schreven; any vindt tickets waarin er minstens een schreef.
include_botsboolean
optioneel
Neemt berichten en deelnemers van bots mee. Standaard false.
opened_bystring
optioneel
Degene die het ticket opende, als Discord-gebruikers-ID of als deel van een gebruikersnaam.
closed_bystring
optioneel
Discord-gebruikers-ID van degene die het ticket sloot.
channel_idstring
optioneel
Het Discord-kanaal- of thread-ID dat het ticket gebruikte.
panel_idnumber
optioneel
Alleen tickets die uit dit paneel komen.
opened_fromnumber
optioneel
Unix-tijdstempel: alleen tickets die op of na dit moment werden geopend.
opened_tonumber
optioneel
Unix-tijdstempel: alleen tickets die op of vóór dit moment werden geopend.
closed_fromnumber
optioneel
Unix-tijdstempel: alleen tickets die op of na dit moment werden gesloten.
closed_tonumber
optioneel
Unix-tijdstempel: alleen tickets die op of vóór dit moment werden gesloten.
rating_minnumber
optioneel
Minimale beoordeling, 1 tot 5.
rating_maxnumber
optioneel
Maximale beoordeling, 1 tot 5.
limitnumber
optioneel
Resultaten per pagina, 1 tot 50 (standaard 25).
offsetnumber
optioneel
Resultaten die je overslaat voor de paginering, maximaal 10000 (standaard 0).

Zoeken is beperkt tot 10 verzoeken per minuut per token, los van de andere leesacties, en krijgt strak afgemeten tijd. Een zoekopdracht die het niet op tijd redt geeft 504. Maak je filters scherper (voeg een periode of een paneel toe) en probeer opnieuw, in plaats van dezelfde zoekopdracht te herhalen. Waarden die niet door de controle komen vallen weg in plaats van dat het verzoek mislukt, dus kijk in het object filters in het antwoord wat er precies is toegepast.

Zoeken leest de transcriptie-index, die wordt opgebouwd zolang de server Premium heeft en bij je eerste overstap ook over je bestaande archief wordt gelegd. Het object coverage in elk antwoord vertelt hoeveel van je transcripties geïndexeerd zijn (indexed) van het totaal dat je bewaart (total). Loopt de inhaalslag nog, dan komen die twee nog niet overeen.

Voorbeeldverzoek: wat een gebruiker zei, in tickets waaraan ook een bepaalde medewerker werkte
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"
Voorbeeldverzoek: dezelfde zoekopdracht als JSON-body
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
Voorbeeldantwoord
{
  "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 }
}