दस्तावेज़

TicketsX जल्दी सीखें

सेटअप की गाइड, सारी कमांड, Premium की सुविधाएँ और REST API, सब एक जगह।

13.19

रिकॉर्ड में खोज

GET/<guild_id>/api/transcripts/search

सर्वर के हर बंद टिकट में खोजता है, सिर्फ़ उसकी ऊपरी जानकारी में नहीं: भीतर क्या कहा गया, किसने कहा, कौन शामिल था, कब खुला या बंद हुआ, किस पैनल का है, क्या रेटिंग मिली, या उसकी Discord चैनल आईडी क्या थी। यह वही व्यवस्था है जो डैशबोर्ड की गहरी खोज चलाती है। इसके लिए `search_transcripts` अनुमति चाहिए (शुरू में बंद रहती है)।

POST/<guild_id>/api/transcripts/search

यही काम, बस छन्नियाँ प्रश्न पैरामीटर की जगह JSON सामग्री में भेजी जाती हैं। लंबी खोजों और शामिल लोगों की सूचियों के लिए यह ज़्यादा सुविधाजनक है। दोनों भेजने पर सामग्री मानी जाती है।

हर नतीजे के साथ टिकट की जानकारी, ज़्यादा से ज़्यादा 8 शामिल लोग, और अगर आपने सामग्री से खोजा है तो 3 तक मिलते-जुलते संदेश अंश भी आते हैं, ताकि पता चले कि टिकट *क्यों* मिला। किसी भी नतीजे का TicketId सीधे रिकॉर्ड लाना में डालें और पूरे संदेश पाएँ, या रिकॉर्ड का HTML लाना में डालकर बना-बनाया संग्रह पाएँ।

छन्नियाँ (सब वैकल्पिक हैं; जितनी चाहें उतनी साथ लगाएँ)

नामप्रकारज़रूरीविवरण
qstring
वैकल्पिक
संदेशों की सामग्री में खुली खोज, ज़्यादा से ज़्यादा 200 अक्षर। 3 अक्षर से छोटे शब्द अनुक्रमणिका छोड़ देती है।
said_bystring
वैकल्पिक
सिर्फ़ इस Discord उपयोगकर्ता आईडी की लिखी सामग्री मानता है। इसे q के साथ इस्तेमाल करें।
participantsstring[]
वैकल्पिक
टिकट में लिखने वाले 5 तक उपयोगकर्ता, हर एक Discord उपयोगकर्ता आईडी या उपयोगकर्ता नाम के हिस्से के रूप में। GET में अल्पविराम से अलग, POST में सूची के रूप में।
participants_modestring
वैकल्पिक
all (तयशुदा) माँगता है कि बताए गए सारे लोग एक ही टिकट में लिखे हुए हों; any उन टिकटों को ढूँढ़ता है जिनमें उनमें से कम से कम एक ने लिखा हो।
include_botsboolean
वैकल्पिक
बॉट के संदेश और बॉट शामिल लोगों को भी गिनती में लेता है। तयशुदा false है।
opened_bystring
वैकल्पिक
टिकट खोलने वाला, Discord उपयोगकर्ता आईडी या उपयोगकर्ता नाम के हिस्से के रूप में।
closed_bystring
वैकल्पिक
टिकट बंद करने वाले की Discord उपयोगकर्ता आईडी।
channel_idstring
वैकल्पिक
टिकट में इस्तेमाल हुई Discord चैनल या थ्रेड आईडी।
panel_idnumber
वैकल्पिक
सिर्फ़ इस पैनल से खुले टिकट।
opened_fromnumber
वैकल्पिक
यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उसके बाद खुले।
opened_tonumber
वैकल्पिक
यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उससे पहले खुले।
closed_fromnumber
वैकल्पिक
यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उसके बाद बंद हुए।
closed_tonumber
वैकल्पिक
यूनिक्स समय चिह्न: सिर्फ़ वे टिकट जो इस समय या उससे पहले बंद हुए।
rating_minnumber
वैकल्पिक
कम से कम रेटिंग, 1-5।
rating_maxnumber
वैकल्पिक
ज़्यादा से ज़्यादा रेटिंग, 1-5।
limitnumber
वैकल्पिक
हर पन्ने पर नतीजे, 1-50 (तयशुदा 25)।
offsetnumber
वैकल्पिक
पन्ने बाँटने के लिए छोड़े जाने वाले नतीजे, ज़्यादा से ज़्यादा 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"
अनुरोध का उदाहरण: वही खोज 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
जवाब का उदाहरण
{
  "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 }
}