Entwicklerhandbuch für den /dataset-Endpunkt von Wikiprompt
Eine präzise, referenzartige Durchführung der /dataset-Manifest- und /dataset/prompts-Endpunkte: Antwortstrukturen, jedes Feld, Keyset-Paginierung, Caching und Fehlerbehandlung.

Ein Entwicklerleitfaden für den /dataset-Endpunkt von Wikiprompt
Wikiprompt ist ein öffentlicher, kuratierter Katalog von KI-Prompts, der ChatGPT, Claude, Gemini, GPT Image, Midjourney, Seedance, Veo, Kling, Nano Banana, Grok und mehr abdeckt. Anstatt die Live-Site zu scrapen, um diesen Katalog programmatisch abzurufen, gibt es jetzt einen dedizierten Bulk-Export: /dataset. Dieser Beitrag dokumentiert ihn so, wie man eine Drittanbieter-API dokumentiert haben möchte: Antwortstrukturen, Feldsemantik, Paginierungsmechanik, Caching und Fehlerbehandlung, mit ausführbaren Beispielen.
Zwei Endpunkte, eine Aufgabe
Es gibt genau zwei URLs, die du benötigst:
https://www.wikiprompt.org/dataset (Manifest)https://www.wikiprompt.org/dataset/prompts (Daten)Das Manifest ist Metadaten über den Export. Der Datenendpunkt ist der Export selbst, paginiert. Beide geben reines JSON zurück, kein API-Schlüssel, kein Auth-Header, nichts zum Registrieren.
Die Manifest-Antwort
Ein GET auf das Dataset Manifest gibt etwas zurück, das so aussieht:
{
"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
}
}
Behandle total_prompts als eine Live-, ungefähre Zahl, nicht als feste Konstante. Der Katalog wächst täglich, also pinne deine Integration an record_fields und den pagination-Block, anstatt die Zahl irgendwo in deinem Code fest zu codieren.
Die Daten-Antwort
Ein GET auf /dataset/prompts gibt eine Seite mit Datensätzen plus einen Cursor für die nächste Seite zurück:
{
"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"
}
Feldreferenz
Jeder Datensatz trägt dieselben vierzehn Felder. Diejenigen, die erwähnenswert sind:
slug ist die stabile Kennung; url ist die kanonische Seite, nützlich, wenn du später zurückverlinken oder einen einzelnen Datensatz erneut crawlen möchtest.creative, marketing, personal, productivity, coding, education, business, research, other."Midjourney", "GPT-4o", "Veo", etc).media_type, aspect_ratio, style und einem assessment-Block, der Qualitätsdimensionen wie Kreativität und Nützlichkeit bewertet. Dies ist null für einfache Text-Prompts, die nie eine Bild-/Video-Bewertung hatten.updated_at ändert sich, wenn ein Datensatz nachträglich bearbeitet oder neu angereichert wird.Paginierungsmechanik
Der Endpunkt verwendet Keyset-Paginierung, nicht Seitennummern. Zwei Parameter steuern sie:
limit: wie viele Datensätze pro Seite, Standard 200, Maximum 500.after: ein undurchsichtiger Cursor, der dir in jeder Antwort über die next-URL zurückgespiegelt wird.Der Vertrag ist einfach: Rufe den Endpunkt auf, lies next, rufe next wörtlich auf, wiederhole, bis next null ist. Konstruiere den after-Wert nicht selbst; behandle ihn als undurchsichtiges Token.
curl "https://www.wikiprompt.org/dataset/prompts?limit=500"
Ein vollständiger Crawl in Python sieht so aus:
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")
Bei 500 pro Seite und 55.000+ Datensätzen sind das ungefähr 110 Anfragen für eine vollständige Synchronisierung, oder weit weniger für eine inkrementelle, wenn du zusätzlich clientseitig auf updated_at filterst.
Caching und CORS
Beide Endpunkte sind edge-cached, sodass wiederholte Anfragen für dieselbe Seite (gleicher after-Wert) auf unserer Seite günstig und schnell sind, und für dich schnell. Access-Control-Allow-Origin: * ist auf jeder Antwort gesetzt, sodass du dies direkt aus Browser-JavaScript mit fetch() aufrufen kannst, kein Proxy nötig. Es gibt kein Ratenlimit, das an einen API-Schlüssel gebunden ist, weil es keinen API-Schlüssel gibt; sei ein vernünftiger Bürger und cache das Manifest lokal, anstatt es bei jeder Anfrage abzufragen.
Fehlerbehandlung
Unter Last kann der Endpunkt 503 mit einem Retry-After-Header zurückgeben (Sekunden, die gewartet werden sollen, bevor es erneut versucht wird). Respektiere ihn:
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()
Jeder andere Nicht-200-Status ist es wert, protokolliert und gestoppt zu werden, anstatt blind erneut zu versuchen. Ein fehlerhafter after-Cursor sollte nicht passieren, wenn du nur next folgst, aber defensiver Code sollte nicht für immer davon ausgehen.
Attribution
Die Prompts in diesem Dataset stammen aus öffentlichen Beiträgen ihrer ursprünglichen Autoren. Wikiprompt ist der Aggregator, nicht der Rechteinhaber. Wenn du etwas mit diesen Daten baust, zitiere wikiprompt.org und, pro Datensatz, das original_source-Feld, das auf den ursprünglichen Beitrag verweist. Es gibt keine formale Lizenz darüber hinaus: Attribute die Site und attribute den Autor.
Einen Versuch wert
Drei Datensätze, um deinen Parser zu überprüfen, sobald du eine Seite gezogen hast: ein Data-Physicalization-Bildprompt, ein monumentales Schatten-Architekturfoto und ein Charakterdesign eines mysteriösen Nomaden. Alle drei funktionieren sauber durch content, media und metadata.
Wenn ein Bulk-Export mehr ist, als du gerade brauchst, gibt es zwei leichtere Optionen: die Such-API für einzelne Abfragen und den MCP-Server, wenn du dies in einen Agenten statt in ein Skript einbindest. Beide sitzen auf demselben zugrunde liegenden Katalog wie /dataset, also ist hier nichts eine Sackgasse, wenn du klein anfängst und später in den Bulk-Export hineinwächst.
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