Guide du développeur pour le point de terminaison /dataset de Wikipédia
Une procédure pas à pas précise, de type référence, des endpoints /dataset manifest et /dataset/prompts : formes de réponse, chaque champ, pagination par jeu de clés, mise en cache et gestion des erreurs.

Guide du développeur sur l'endpoint /dataset de Wikiprompt
Wikiprompt est un catalogue public et organisé de prompts IA, couvrant ChatGPT, Claude, Gemini, GPT Image, Midjourney, Seedance, Veo, Kling, Nano Banana, Grok et plus encore. Au lieu de scraper le site en direct pour extraire ce catalogue par programmation, il existe désormais un export en masse dédié : /dataset. Ce post le documente comme vous voudriez qu'une API tierce soit documentée : formes de réponse, sémantique des champs, mécanique de pagination, mise en cache et gestion des erreurs, avec des exemples exécutables.
Deux endpoints, un seul travail
Il y a exactement deux URL dont vous avez besoin :
https://www.wikiprompt.org/dataset (manifeste)https://www.wikiprompt.org/dataset/prompts (données)Le manifeste est une métadonnée sur l'export. L'endpoint de données est l'export lui-même, paginé. Les deux renvoient du JSON simple, sans clé API, sans en-tête d'authentification, rien à enregistrer.
La réponse du manifeste
Un GET sur le dataset renvoie quelque chose comme ceci :
{
"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
}
}
Traitez total_prompts comme un compte approximatif et en direct, pas comme une constante fixe. Le catalogue grandit quotidiennement, donc ancrez votre intégration sur record_fields et le bloc pagination plutôt que de coder en dur le compte n'importe où dans votre code.
La réponse des données
Un GET sur /dataset/prompts renvoie une page d'enregistrements plus un curseur pour la page suivante :
{
"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"
}
Référence des champs
Chaque enregistrement porte les mêmes quatorze champs. Ceux qui méritent d'être signalés :
slug est l'identifiant stable ; url est la page canonique, utile si vous voulez créer un lien retour ou recrawler un seul enregistrement plus tard.creative, marketing, personal, productivity, coding, education, business, research, other."Midjourney", "GPT-4o", "Veo", etc).media_type, aspect_ratio, style, et un bloc assessment notant les dimensions de qualité comme la créativité et l'utilité. C'est null pour les prompts texte simples qui n'ont jamais porté d'évaluation image/vidéo.updated_at bouge si un enregistrement est modifié ou ré-enrichi après coup.Mécanique de pagination
L'endpoint utilise la pagination par clé, pas des numéros de page. Deux paramètres la contrôlent :
limit : combien d'enregistrements par page, défaut 200, max 500.after : un curseur opaque, renvoyé dans l'URL next de chaque réponse.Le contrat est simple : appelez l'endpoint, lisez next, appelez next tel quel, répétez jusqu'à ce que next soit null. Ne construisez pas la valeur after vous-même ; traitez-la comme un jeton opaque.
curl "https://www.wikiprompt.org/dataset/prompts?limit=500"
Un crawl complet en Python ressemble à ceci :
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 par page et plus de 55 000 enregistrements, cela fait environ 110 requêtes pour une synchronisation complète, ou beaucoup moins pour une synchronisation incrémentale si vous filtrez en plus côté client sur updated_at.
Mise en cache et CORS
Les deux endpoints sont mis en cache en périphérie, donc les requêtes répétées pour la même page (même valeur after) sont peu coûteuses et rapides de notre côté, et rapides pour vous. Access-Control-Allow-Origin: * est défini sur chaque réponse, donc vous pouvez appeler cela directement depuis du JavaScript navigateur avec fetch(), sans proxy nécessaire. Il n'y a pas de limite de débit liée à une clé API car il n'y a pas de clé API ; soyez un citoyen raisonnable et mettez le manifeste en cache localement au lieu de le sonder à chaque requête.
Gestion des erreurs
Sous charge, l'endpoint peut renvoyer 503 avec un en-tête Retry-After (secondes à attendre avant de réessayer). Respectez-le :
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()
Tout autre code non-200 mérite d'être journalisé et d'arrêter plutôt que de réessayer aveuglément ; un curseur after malformé ne devrait pas arriver si vous ne suivez que next, mais un code défensif ne devrait pas supposer cela pour toujours.
Attribution
Les prompts de ce dataset sont agrégés à partir de posts publics de leurs auteurs originaux. Wikiprompt est l'agrégateur, pas le détenteur des droits. Si vous construisez quelque chose avec ces données, citez wikiprompt.org et, par enregistrement, le champ original_source pointant vers le post original. Il n'y a pas de licence formelle au-delà de cela : attribuez le site et attribuez l'auteur.
À essayer
Trois enregistrements pour vérifier votre parseur une fois que vous avez tiré une page : un prompt d'image de physicalisation de données, une photo architecturale d'ombre monumentale, et un design de personnage voyageur nomade. Les trois passent proprement à travers content, media, et metadata.
Si un export en masse est plus que ce dont vous avez besoin, pour l'instant, deux options plus légères existent : l'API de recherche pour des requêtes uniques, et le serveur MCP si vous branchez cela dans un agent plutôt qu'un script. Les deux reposent sur le même catalogue sous-jacent que /dataset, donc rien ici n'est une impasse si vous commencez plus petit et grandissez vers l'export en masse plus tard.
Related Articles
- Laya vs. Jev: Die Open-Source-Antwort auf die Entscheidungsmodell-Welle
Sep 22, 2026 · 5 min read
- Laya contre Jev : La réponse open-source à la vague des modèles de décision
Sep 22, 2026 · 5 min read
- Laya vs Jev: La respuesta de código abierto a la ola de modelos de decisión
Sep 22, 2026 · 5 min read
- Laya vs Jev: 오픈소스로 답하는 의사결정 모델 물결
Sep 22, 2026 · 5 min read
- लाया बनाम जेव: निर्णय-मॉडल लहर का ओपन-सोर्स उत्तर
Sep 22, 2026 · 5 min read