मुख्य सामग्री पर जाएं
जब किसी API response में एक बार में लौटाए जा सकने वाले परिणामों से अधिक परिणाम हों, तो डेटा के सभी पेज प्राप्त करने के लिए पेजिनेशन का उपयोग करें।

पेजिनेशन कैसे काम करता है

  1. max_results के साथ अपना शुरुआती अनुरोध करें
  2. रिस्पॉन्स के meta ऑब्जेक्ट में next_token देखें
  3. अगर मौजूद हो, तो उस टोकन को pagination_token के रूप में इस्तेमाल करके एक और अनुरोध करें
  4. इसे तब तक दोहराएँ, जब तक next_token वापस आना बंद न हो जाए
# प्रारंभिक अनुरोध
curl "https://api.x.com/2/users/12345/tweets?max_results=100" \
  -H "Authorization: Bearer $TOKEN"

# प्रतिक्रिया में next_token शामिल है
# {"data": [...], "meta": {"next_token": "abc123", ...}}

# अगला पृष्ठ
curl "https://api.x.com/2/users/12345/tweets?max_results=100&pagination_token=abc123" \
  -H "Authorization: Bearer $TOKEN"

पेजिनेशन टोकन

टोकनविवरण
next_tokenप्रतिक्रिया के meta में। अगले पेज को पाने के लिए उपयोग करें।
previous_tokenप्रतिक्रिया के meta में। एक पेज पीछे जाने के लिए उपयोग करें।
pagination_tokenअनुरोध पैरामीटर। इसे next_token या previous_token के मान पर सेट करें।

रिस्पॉन्स की संरचना

{
  "data": [
    {"id": "1234", "text": "..."},
    {"id": "1235", "text": "..."}
  ],
  "meta": {
    "result_count": 100,
    "next_token": "7140w9gefhslx3",
    "previous_token": "77qp89slxjd"
  }
}
जब कोई और परिणाम नहीं होते, तो next_token शामिल नहीं किया जाता:
{
  "data": [...],
  "meta": {
    "result_count": 42,
    "previous_token": "77qp89abc"
  }
}

पेजिनेशन पैरामीटर

पैरामीटरविवरणडिफ़ॉल्ट
max_resultsप्रति पेज परिणामएंडपॉइंट-विशिष्ट
pagination_tokenपिछले रिस्पॉन्स से टोकनकोई नहीं
max_results की विशिष्ट सीमाओं के लिए हर एंडपॉइंट का API संदर्भ देखें।

उदाहरण: सभी परिणामों में पेजिनेशन

import requests

def get_all_tweets(user_id, bearer_token):
    url = f"https://api.x.com/2/users/{user_id}/tweets"
    headers = {"Authorization": f"Bearer {bearer_token}"}
    params = {"max_results": 100}
    
    all_tweets = []
    
    while True:
        response = requests.get(url, headers=headers, params=params)
        data = response.json()
        
        if "data" in data:
            all_tweets.extend(data["data"])
        
        # अगले पेज की जांच करें
        next_token = data.get("meta", {}).get("next_token")
        if not next_token:
            break
            
        params["pagination_token"] = next_token
    
    return all_tweets

सर्वोत्तम तरीके

अधिकतम परिणामों का उपयोग करें

API कॉल कम करने के लिए अनुमत अधिकतम max_results का अनुरोध करें।

आंशिक पृष्ठों का ध्यान रखें

अंतिम पृष्ठ में max_results से कम परिणाम हो सकते हैं।

टोकन सहेजें

अगर आपको बाद में पेजिनेशन फिर से शुरू करना हो, तो next_token सहेजें।

पेजिनेशन के साथ पोलिंग न करें

नए डेटा के लिए, बार-बार पेजिनेशन करने के बजाय since_id का उपयोग करें।

परिणामों का क्रम

परिणाम उल्टे कालक्रम में लौटाए जाते हैं:
  • पहले पेज का पहला परिणाम = सबसे नया
  • आखिरी पेज का आखिरी परिणाम = सबसे पुराना
यह पेजों के भीतर और पेजों के बीच, दोनों पर लागू होता है।

नोट्स

  • पेजिनेशन टोकन opaque स्ट्रिंग होते हैं—इन्हें parse या modify न करें
  • कुछ समय बाद टोकन की समय-सीमा समाप्त हो सकती है
  • अगर आपको max_results से कम परिणाम मिलते हैं, तो भी और परिणाम मौजूद हो सकते हैं (next_token न मिलने तक जारी रखें)
  • पेजिनेशन को स्वचालित रूप से संभालने के लिए SDKs का उपयोग करें

अगले चरण

रेट लिमिट्स

पेजिनेशन करते समय अनुरोध सीमाओं को समझें।

SDKs

बिल्ट-इन पेजिनेशन वाली लाइब्रेरीज़।