13.19
रिकॉर्ड में खोज
/<guild_id>/api/transcripts/searchसर्वर के हर बंद टिकट में खोजता है, सिर्फ़ उसकी ऊपरी जानकारी में नहीं: भीतर क्या कहा गया, किसने कहा, कौन शामिल था, कब खुला या बंद हुआ, किस पैनल का है, क्या रेटिंग मिली, या उसकी Discord चैनल आईडी क्या थी। यह वही व्यवस्था है जो डैशबोर्ड की गहरी खोज चलाती है। इसके लिए `search_transcripts` अनुमति चाहिए (शुरू में बंद रहती है)।
/<guild_id>/api/transcripts/searchयही काम, बस छन्नियाँ प्रश्न पैरामीटर की जगह JSON सामग्री में भेजी जाती हैं। लंबी खोजों और शामिल लोगों की सूचियों के लिए यह ज़्यादा सुविधाजनक है। दोनों भेजने पर सामग्री मानी जाती है।
हर नतीजे के साथ टिकट की जानकारी, ज़्यादा से ज़्यादा 8 शामिल लोग, और अगर आपने सामग्री से खोजा है तो 3 तक मिलते-जुलते संदेश अंश भी आते हैं, ताकि पता चले कि टिकट *क्यों* मिला। किसी भी नतीजे का TicketId सीधे रिकॉर्ड लाना में डालें और पूरे संदेश पाएँ, या रिकॉर्ड का HTML लाना में डालकर बना-बनाया संग्रह पाएँ।
छन्नियाँ (सब वैकल्पिक हैं; जितनी चाहें उतनी साथ लगाएँ)
| नाम | प्रकार | ज़रूरी | विवरण |
|---|---|---|---|
| q | string | वैकल्पिक | संदेशों की सामग्री में खुली खोज, ज़्यादा से ज़्यादा 200 अक्षर। 3 अक्षर से छोटे शब्द अनुक्रमणिका छोड़ देती है। |
| said_by | string | वैकल्पिक | सिर्फ़ इस Discord उपयोगकर्ता आईडी की लिखी सामग्री मानता है। इसे q के साथ इस्तेमाल करें। |
| participants | string[] | वैकल्पिक | टिकट में लिखने वाले 5 तक उपयोगकर्ता, हर एक Discord उपयोगकर्ता आईडी या उपयोगकर्ता नाम के हिस्से के रूप में। GET में अल्पविराम से अलग, POST में सूची के रूप में। |
| participants_mode | string | वैकल्पिक | all (तयशुदा) माँगता है कि बताए गए सारे लोग एक ही टिकट में लिखे हुए हों; any उन टिकटों को ढूँढ़ता है जिनमें उनमें से कम से कम एक ने लिखा हो। |
| include_bots | boolean | वैकल्पिक | बॉट के संदेश और बॉट शामिल लोगों को भी गिनती में लेता है। तयशुदा false है। |
| opened_by | string | वैकल्पिक | टिकट खोलने वाला, Discord उपयोगकर्ता आईडी या उपयोगकर्ता नाम के हिस्से के रूप में। |
| closed_by | string | वैकल्पिक | टिकट बंद करने वाले की Discord उपयोगकर्ता आईडी। |
| channel_id | string | वैकल्पिक | टिकट में इस्तेमाल हुई Discord चैनल या थ्रेड आईडी। |
| panel_id | number | वैकल्पिक | सिर्फ़ इस पैनल से खुले टिकट। |
| opened_from | number | वैकल्पिक | यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उसके बाद खुले। |
| opened_to | number | वैकल्पिक | यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उससे पहले खुले। |
| closed_from | number | वैकल्पिक | यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उसके बाद बंद हुए। |
| closed_to | number | वैकल्पिक | यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उससे पहले बंद हुए। |
| rating_min | number | वैकल्पिक | कम से कम रेटिंग, 1-5। |
| rating_max | number | वैकल्पिक | ज़्यादा से ज़्यादा रेटिंग, 1-5। |
| limit | number | वैकल्पिक | हर पन्ने पर नतीजे, 1-50 (तयशुदा 25)। |
| offset | number | वैकल्पिक | पन्ने बाँटने के लिए छोड़े जाने वाले नतीजे, ज़्यादा से ज़्यादा 10000 (तयशुदा 0)। |
खोज पर बाक़ी पढ़ाई से अलग हर टोकन के लिए प्रति मिनट 10 अनुरोध की सीमा है, और वह कसे हुए समय में चलती है। जो खोज समय पर पूरी न हो, वह 504 लौटाती है। वही सवाल दोहराने के बजाय छन्नियाँ कसें (समय की अवधि या पैनल जोड़ें) और दोबारा कोशिश करें। जो मान जाँच में खरे न उतरें, वे अनुरोध गिराने के बजाय बस छोड़ दिए जाते हैं, इसलिए जवाब में लौटी filters वस्तु देखकर पक्का करें कि असल में क्या लगा।
खोज रिकॉर्ड अनुक्रमणिका पढ़ती है, जो सर्वर पर Premium रहते बनती है और पहली बार Premium लेने पर आपके पुराने संग्रह पर भी चढ़ा दी जाती है। हर जवाब की coverage वस्तु बताती है कि आपके कुल सहेजे रिकॉर्ड (total) में से कितने अनुक्रमित (indexed) हो चुके हैं। अगर पुराने संग्रह की अनुक्रमणिका अब भी बन रही है तो ये दोनों आँकड़े अभी मेल नहीं खाएँगे।
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 }
}