13.19
Gennemsøg udskrifter
/<guild_id>/api/transcripts/searchSøger i hver eneste lukkede sag på serveren, ikke kun i oplysningerne om den: hvad der blev sagt inde i den, hvem der sagde det, hvem der deltog, hvornår den blev oprettet eller lukket, hvilket panel den hører til, hvilken bedømmelse den fik, eller hvilket Discord-kanal-id den brugte. Det er den samme motor som dybdesøgningen i kontrolpanelet. Kræver rettigheden `search_transcripts` (slået fra som standard).
/<guild_id>/api/transcripts/searchDet samme, men med filtrene sendt som JSON-indhold i stedet for forespørgselsparametre. Nemmere ved lange søgninger og lister med deltagere. Sender du begge dele, gælder indholdet.
Hvert resultat indeholder sagens oplysninger, op til 8 deltagere og, hvis du søgte på indhold, op til 3 tilhørende uddrag, så du kan se, *hvorfor* sagen kom med. Tag TicketId fra et resultat direkte videre til Hent en udskrift for hele listen med beskeder eller til Hent udskrift som HTML for det færdige arkiv.
Filtre (alle valgfrie; kombinér så mange du vil)
| Navn | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
| q | string | valgfrit | Fritekstsøgning i beskedernes indhold, højst 200 tegn. Ord på under 3 tegn bliver sprunget over af indekset. |
| said_by | string | valgfrit | Kun indhold skrevet af dette Discord-bruger-id. Brug det sammen med q. |
| participants | string[] | valgfrit | Op til 5 brugere, der har skrevet i sagen, hver som Discord-bruger-id eller en del af et brugernavn. Adskilt med komma ved GET, som en liste ved POST. |
| participants_mode | string | valgfrit | all (standard) kræver, at alle de nævnte deltagere har skrevet i den samme sag; any finder sager, hvor mindst én af dem har skrevet. |
| include_bots | boolean | valgfrit | Tager beskeder og deltagere fra bots med. Standard er false. |
| opened_by | string | valgfrit | Den, der oprettede sagen, som Discord-bruger-id eller en del af et brugernavn. |
| closed_by | string | valgfrit | Discord-bruger-id på den, der lukkede sagen. |
| channel_id | string | valgfrit | Det Discord-kanal-id eller tråd-id, sagen brugte. |
| panel_id | number | valgfrit | Kun sager, der er oprettet fra dette panel. |
| opened_from | number | valgfrit | Unix-tidsstempel: kun sager oprettet på dette tidspunkt eller senere. |
| opened_to | number | valgfrit | Unix-tidsstempel: kun sager oprettet på dette tidspunkt eller tidligere. |
| closed_from | number | valgfrit | Unix-tidsstempel: kun sager lukket på dette tidspunkt eller senere. |
| closed_to | number | valgfrit | Unix-tidsstempel: kun sager lukket på dette tidspunkt eller tidligere. |
| rating_min | number | valgfrit | Mindste bedømmelse, 1 til 5. |
| rating_max | number | valgfrit | Største bedømmelse, 1 til 5. |
| limit | number | valgfrit | Resultater pr. side, 1 til 50 (standard 25). |
| offset | number | valgfrit | Resultater, der springes over ved sideinddeling, højst 10000 (standard 0). |
Søgningen er begrænset til 10 kald i minuttet pr. nøgle, talt for sig i forhold til anden læsning, og den kører med stramt afmålt tid. En søgning, der ikke når at blive færdig, svarer 504. Snævr filtrene ind (læg et datointerval eller et panel til), og prøv igen i stedet for at gentage den samme søgning. Værdier, der ikke går igennem kontrollen, bliver pillet ud i stedet for at kaldet bliver afvist, så se i objektet filters i svaret, hvad der rent faktisk blev brugt.
Søgningen læser udskriftsindekset, som bliver bygget, mens serveren har Premium, og lagt hen over dit hidtidige arkiv, første gang du opgraderer. Objektet coverage i hvert svar fortæller, hvor mange af dine udskrifter der er indekseret (indexed) ud af det samlede antal, der er gemt (total). Kører indekseringen af de gamle sager endnu, passer tallene ikke sammen.
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"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{
"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 }
}