Blog›Guides

विकिप्रॉम्प्ट /dataset एंडपॉइंट के लिए डेवलपर गाइड

/dataset मैनिफेस्ट और /dataset/prompts एंडपॉइंट्स का एक सटीक, संदर्भ-शैली वॉकथ्रू: प्रतिक्रिया आकार, हर फ़ील्ड, कीसेट पेजिनेशन, कैशिंग, और त्रुटि प्रबंधन।

विकिप्रॉम्प्ट /dataset एंडपॉइंट के लिए डेवलपर गाइड

एक डेवलपर की गाइड: Wikiprompt /dataset एंडपॉइंट

Wikiprompt एक सार्वजनिक, क्यूरेटेड AI प्रॉम्प्ट्स की सूची है, जिसमें ChatGPT, Claude, Gemini, GPT Image, Midjourney, Seedance, Veo, Kling, Nano Banana, Grok और और भी शामिल हैं। लाइव साइट को स्क्रेप करके उस सूची को प्रोग्रामेटिक रूप से खींचने के बजाय, अब एक समर्पित बल्क एक्सपोर्ट है: /dataset। यह पोस्ट इसे उस तरह से दस्तावेज़ित करता है जैसे आप किसी थर्ड-पार्टी API को दस्तावेज़ित करना चाहेंगे: रिस्पॉन्स शेप्स, फील्ड सेमेंटिक्स, पेजिनेशन मैकेनिक्स, कैशिंग, और एरर हैंडलिंग, चलाने योग्य उदाहरणों के साथ।

दो एंडपॉइंट्स, एक काम

आपको केवल दो URL की जरूरत है:

  • https://www.wikiprompt.org/dataset (मैनिफेस्ट)
  • https://www.wikiprompt.org/dataset/prompts (डेटा)
  • मैनिफेस्ट एक्सपोर्ट के बारे में मेटाडेटा है। डेटा एंडपॉइंट एक्सपोर्ट खुद है, पेजिनेटेड। दोनों सादा JSON लौटाते हैं, कोई API की, कोई ऑथ हेडर, रजिस्टर करने की कोई जरूरत नहीं।

    मैनिफेस्ट रिस्पॉन्स

    डेटासेट मैनिफेस्ट पर एक GET कुछ इस तरह से आकार लौटाता है:

    {

    "total_prompts": 55000,

    "record_fields": [

    "slug", "url", "title", "description", "content",

    "category", "tags", "media", "model", "metadata",

    "author", "original_source", "created_at", "updated_at"

    ],

    "pagination": {

    "endpoint": "https://www.wikiprompt.org/dataset/prompts",

    "cursor_param": "after",

    "limit_param": "limit",

    "default_limit": 200,

    "max_limit": 500

    }

    }

    total_prompts को एक लाइव, अनुमानित गिनती के रूप में मानें, एक निश्चित स्थिरांक के रूप में नहीं। कैटलॉग रोजाना बढ़ता है, इसलिए अपने इंटीग्रेशन को record_fields और pagination ब्लॉक पर पिन करें, बजाय अपने कोड में कहीं भी गिनती को हार्डकोड करने के।

    डेटा रिस्पॉन्स

    /dataset/prompts पर एक GET रिकॉर्ड्स का एक पेज और अगले पेज के लिए एक कर्सर लौटाता है:

    {

    "count": 500,

    "records": [

    {

    "slug": "one-brick-monumental-shadow-architectural-photo",

    "url": "https://www.wikiprompt.org/one-brick-monumental-shadow-architectural-photo",

    "title": "One Brick: Monumental Shadow Architectural Photo",

    "description": "A single brick photographed to cast a monumental architectural shadow.",

    "content": "the actual prompt text goes here, verbatim",

    "category": "creative",

    "tags": ["photography", "architecture", "shadow-play"],

    "media": ["https://www.wikiprompt.org/media/tw/..."],

    "model": "Midjourney",

    "metadata": {

    "media_type": "image",

    "aspect_ratio": "16:9",

    "style": ["minimalist", "high-contrast"],

    "assessment": { "creativity": 4, "usefulness": 3 }

    },

    "author": "some_handle",

    "original_source": "https://twitter.com/some_handle/status/...",

    "created_at": "2026-03-11T00:00:00Z",

    "updated_at": "2026-03-11T00:00:00Z"

    }

    ],

    "next": "https://www.wikiprompt.org/dataset/prompts?after=<cursor>&limit=500"

    }

    फील्ड संदर्भ

    हर रिकॉर्ड में वही चौदह फील्ड होते हैं। जिन पर ध्यान देना उचित है:

  • `slug` / `url`: slug स्थिर पहचानकर्ता है; url कैनोनिकल पेज है, जो बाद में लिंक बैक करने या एकल रिकॉर्ड को फिर से क्रॉल करने के लिए उपयोगी है।
  • `content`: वास्तविक प्रॉम्प्ट टेक्स्ट। यह वह फील्ड है जिसकी अधिकांश इंटीग्रेशन को परवाह है; बाकी सब इसके आसपास का मेटाडेटा है।
  • `category`: creative, marketing, personal, productivity, coding, education, business, research, other में से एक।
  • `media`: छवि/वीडियो URL की एक सरणी जब प्रॉम्प्ट ने विजुअल आउटपुट उत्पन्न किया। टेक्स्ट-ओनली प्रॉम्प्ट्स के लिए खाली।
  • `model`: वह AI मॉडल जिसे प्रॉम्प्ट लक्षित करता है या जिसके साथ उत्पन्न किया गया था, फ्री-टेक्स्ट स्ट्रिंग के रूप में ("Midjourney", "GPT-4o", "Veo", आदि)।
  • `metadata`: एक संरचित ऑब्जेक्ट जिसमें media_type, aspect_ratio, style, और एक assessment ब्लॉक है जो रचनात्मकता और उपयोगिता जैसे गुणवत्ता आयामों को स्कोर करता है। सादे टेक्स्ट प्रॉम्प्ट्स के लिए यह null है जिनमें कभी छवि/वीडियो मूल्यांकन नहीं था।
  • `original_source`: मूल पोस्ट का लिंक जहां से प्रॉम्प्ट आया था। नीचे एट्रिब्यूशन नोट देखें, यह फील्ड मायने रखता है यदि आप डेटा को डाउनस्ट्रीम पुनः उपयोग करते हैं।
  • `created_at` / `updated_at`: ISO 8601 टाइमस्टैम्प। updated_at तब बदलता है जब कोई रिकॉर्ड बाद में संपादित या पुनः समृद्ध किया जाता है।
  • पेजिनेशन मैकेनिक्स

    एंडपॉइंट कीसेट पेजिनेशन का उपयोग करता है, पेज नंबरों का नहीं। दो पैरामीटर इसे नियंत्रित करते हैं:

  • limit: प्रति पेज कितने रिकॉर्ड, डिफ़ॉल्ट 200, अधिकतम 500।
  • after: एक अपारदर्शी कर्सर, जो हर रिस्पॉन्स के next URL में आपको वापस इको किया जाता है।
  • अनुबंध सरल है: एंडपॉइंट को कॉल करें, next पढ़ें, next को शब्दशः कॉल करें, तब तक दोहराएं जब तक next null न हो। after मान खुद न बनाएं; इसे एक अपारदर्शी टोकन के रूप में मानें।

    curl "https://www.wikiprompt.org/dataset/prompts?limit=500"

    पायथन में एक पूर्ण क्रॉल इस तरह दिखता है:

    import requests

    url = "https://www.wikiprompt.org/dataset/prompts?limit=500"

    records = []

    while url:

    resp = requests.get(url, timeout=30)

    resp.raise_for_status()

    payload = resp.json()

    records.extend(payload["records"])

    url = payload["next"]

    print(f"pulled {len(records)} prompts")

    500 प्रति पेज और 55,000+ रिकॉर्ड पर, पूर्ण सिंक के लिए लगभग 110 अनुरोध हैं, या इंक्रीमेंटल के लिए काफी कम यदि आप क्लाइंट-साइड पर updated_at पर अतिरिक्त फ़िल्टर करते हैं।

    कैशिंग और CORS

    दोनों एंडपॉइंट्स एज-कैश्ड हैं, इसलिए एक ही पेज (समान after मान) के लिए बार-बार अनुरोध हमारी तरफ सस्ते और तेज़ हैं, और आपके लिए तेज़। हर रिस्पॉन्स पर Access-Control-Allow-Origin: * सेट है, इसलिए आप इसे ब्राउज़र JavaScript से सीधे fetch() के साथ कॉल कर सकते हैं, किसी प्रॉक्सी की जरूरत नहीं। API की से बंधी कोई रेट लिमिट नहीं है क्योंकि कोई API की नहीं है; एक उचित नागरिक बनें और मैनिफेस्ट को हर अनुरोध पर पोल करने के बजाय स्थानीय रूप से कैश करें।

    एरर हैंडलिंग

    लोड के तहत, एंडपॉइंट 503 लौटा सकता है जिसमें Retry-After हेडर होता है (फिर से कोशिश करने से पहले इंतजार करने के लिए सेकंड)। इसका सम्मान करें:

    import time, requests

    def get_with_retry(url):

    while True:

    resp = requests.get(url, timeout=30)

    if resp.status_code == 503:

    wait = int(resp.headers.get("Retry-After", "5"))

    time.sleep(wait)

    continue

    resp.raise_for_status()

    return resp.json()

    कोई भी अन्य गैर-200 लॉग करने और रोकने के लायक है, बजाय आँख बंद करके पुनः प्रयास करने के, एक गलत after कर्सर नहीं होना चाहिए यदि आप केवल next का पालन कर रहे हैं, लेकिन रक्षात्मक कोड को हमेशा यह नहीं मानना चाहिए।

    एट्रिब्यूशन

    इस डेटासेट में प्रॉम्प्ट्स उनके मूल लेखकों द्वारा सार्वजनिक पोस्ट से एकत्रित किए गए हैं। Wikiprompt एकत्रकर्ता है, अधिकार धारक नहीं। यदि आप इस डेटा के साथ कुछ बनाते हैं, तो wikiprompt.org और, प्रति रिकॉर्ड, मूल पोस्ट की ओर इशारा करने वाले original_source फील्ड का उल्लेख करें। इससे परे कोई औपचारिक लाइसेंस संलग्न नहीं है: साइट को एट्रिब्यूट करें और लेखक को एट्रिब्यूट करें।

    आज़माने लायक

    एक बार जब आप एक पेज खींच लें तो अपने पार्सर को जांचने के लिए तीन रिकॉर्ड: एक डेटा फिजिकलाइजेशन इमेज प्रॉम्प्ट, एक स्मारकीय छाया वास्तुशिल्प फोटो, और एक खानाबदोश यात्री चरित्र डिजाइन। तीनों content, media, और metadata के माध्यम से साफ-सुथरे रूप से राउंड-ट्रिप करते हैं।

    यदि बल्क एक्सपोर्ट अभी आपकी जरूरत से अधिक है, तो दो हल्के विकल्प मौजूद हैं: सर्च API एकल क्वेरी के लिए, और MCP सर्वर यदि आप इसे एक स्क्रिप्ट के बजाय एक एजेंट में वायर कर रहे हैं। दोनों /dataset के समान अंतर्निहित कैटलॉग पर बैठते हैं, इसलिए यहां कुछ भी मृत अंत नहीं है यदि आप छोटे शुरू करते हैं और बाद में बल्क एक्सपोर्ट में बढ़ते हैं।

    Tags
    dataset·api·developer-guide·pagination·open-data·reference