Eingabedaten
Eingabedatensätze, Listen, Gruppen und Variantengenerierung zur Anpassung von Crowd-Aufgaben.
Eingabedaten ermöglichen es Ihnen, die den Crowd-Workern präsentierten Informationen auf wiederverwendbare, parametrisierte Weise zu strukturieren. Anstatt für jedes Inhaltselement manuell eine Crowd-Aufgabe zu erstellen, definieren Sie einen Eingabedatensatz mit einer oder mehreren Listen einfacher String-Werte und lassen Crowdee automatisch Aufgabenvarianten generieren, indem ###listenname###-Platzhalter in einer Umfragevorlage zum Zeitpunkt der Aufgabenübernahme ersetzt werden.
Datenhierarchie
Eingabedaten sind in drei Ebenen organisiert.
Eingabedatensatz — Der übergeordnete Container. Hat einen name, eine optionale description, einen scope ("project" oder "organization" — organisationsweite Datensätze können projektübergreifend wiederverwendet werden) und eine language. Er fasst alle Listen und Gruppen zusammen, die zu einer einzelnen Kampagne gehören.
Liste — Ein flaches, geordnetes Array einfacher Strings, z. B. ["Fassen Sie diesen Artikel zusammen.", "Übersetzen Sie diesen Satz."]. Listen sind keine JSON-Datensätze mit mehreren Feldern — jeder Wert ist ein einzelner String. Jede Liste innerhalb eines Datensatzes benötigt einen eindeutigen Namen; dieser Name ist es, wonach der Platzhalter ###name### einer Vorlage aufgelöst wird.
Gruppe — Verknüpft zwei oder mehr gleich lange Listen, sodass sich deren Werte Index für Index gemeinsam bewegen — als eine einzige Variantenachse, statt gegeneinander kreuzmultipliziert zu werden. Beispiel: Eine headline-Liste und eine url-Liste gleicher Länge, gruppiert, erzeugen eine Variante pro (Überschrift, URL)-Paar an derselben Zeile — nicht das volle Kreuzprodukt jeder Überschrift mit jeder URL.
Einen Eingabedatensatz erstellen
Listen (und optionale Gruppen) werden zusammen mit dem Datensatz in einem einzigen Aufruf erstellt — es gibt keinen separaten Endpunkt zum nachträglichen Hinzufügen einer Liste. language ist erforderlich.
POST /v2/projects/:projectId/input-data{
"name": "News Article Review Campaign — Q3 2025",
"description": "Artikel, ausgewählt für eine systematische Manipulationsanalyse",
"scope": "project",
"language": "en",
"lists": [
{ "name": "headline", "values": ["Zentralbank erhöht Zinsen", "Wahlergebnisse angefochten"] },
{ "name": "url", "values": ["https://example.com/article-1", "https://example.com/article-2"] }
],
"groups": [
{ "name": "articles", "listNames": ["headline", "url"] }
]
}Die Mitgliedslisten einer Gruppe müssen alle exakt dieselbe Anzahl an Werten haben (headline und url oben haben beide 2) — Index i einer Liste wird mit Index i jeder anderen Liste in der Gruppe gepaart. Gruppen benötigen mindestens zwei Mitgliedslisten.
Die Antwort ist der erstellte Datensatz mit seinen lists und groups direkt eingebettet (jede Liste trägt ihre eigene id/name/values).
Eine Gruppe nachträglich hinzufügen
Gruppen können nachträglich zu einem bestehenden Datensatz hinzugefügt werden — Listen nicht (siehe CSV-Import für den einzigen Weg, weitere Listen hinzuzufügen):
POST /v2/input-data/:dataSetId/groups{ "name": "articles", "listNames": ["headline", "url"] }Variantengenerierung
Die Gesamtzahl der Varianten eines Datensatzes ist das Produkt aller Slots — jede ungruppierte Liste ist ihr eigener Slot, und jede Gruppe ist ein einzelner Slot (in der Größe ihrer Mitgliedslisten, da diese sich gemeinsam bewegen):
- Eine ungruppierte Liste mit 5 Werten → 5 Varianten.
- Eine ungruppierte Liste mit 5 Werten und eine separate ungruppierte Liste mit 4 Werten → 5 × 4 = 20 Varianten.
- Eine Gruppe aus zwei 5-Werte-Listen (statt zwei separaten ungruppierten Listen) → 5 Varianten, nicht 25 — genau das ist der Sinn des Gruppierens: das Kreuzprodukt zu vermeiden.
GET /v2/input-data/:dataSetId/variants{
"count": 5,
"variants": [
{
"index": 0,
"slots": [
{ "type": "group", "id": "grp_abc", "name": "articles", "valueIndex": 0, "values": { "headline": "Zentralbank erhöht Zinsen", "url": "https://example.com/article-1" } }
]
}
]
}Die Variantenanzahl ist pro Datensatz auf 10.000 begrenzt — sowohl POST /v2/projects/:projectId/input-data als auch POST /v2/input-data/:dataSetId/groups lehnen eine Anfrage ab, die die Gesamtzahl darüber hinaus treiben würde.
Wenn ein Job auf einen Datensatz verweist (inputDataSetId bei der Job-Erstellung), wird pro Aufgabe zum Zeitpunkt der Übernahme eine Variante zugewiesen, und jeder Listenname in den zusammengeführten Werten dieser Variante (z. B. {"headline": "...", "url": "..."}) steht zur Verfügung, um in die Umfragevorlage des Jobs als ###headline###, ###url### usw. eingesetzt zu werden.
CSV-Import
Für große Datensätze können Sie eine CSV-Datei direkt importieren — jede Spalte wird zu einer eigenen Liste (benannt nach ihrer Kopfzeile), und wenn es mehr als eine Spalte gibt, werden diese automatisch gruppiert (damit die Zellen einer Zeile miteinander verknüpft bleiben, statt kreuzmultipliziert zu werden):
curl -X POST https://api.crowdee.ai/v2/projects/{projectId}/input-data/from-csv \
-H "X-API-Key: crw_YOUR_API_KEY" \
-F "language=de" \
-F "scope=project" \
-F "file=@articles.csv"Der name des Datensatzes wird vom Dateinamen abgeleitet (dieser Endpunkt hat kein separates name-Feld). Die Kopfzeile der CSV wird zu Listennamen, und jede weitere Zeile wird zu den Werten dieser Liste — eine zweispaltige CSV (headline,url) wird also automatisch zu zwei Listen, die als eine Variantenachse gruppiert sind, genau wie im manuellen Beispiel oben.
Datensätze verwalten
GET /v2/projects/:projectId/input-data— Datensätze eines Projekts auflisten.GET /v2/input-data/:dataSetId— einen Datensatz mit seinen Listen und Gruppen abrufen.PUT /v2/input-data/:dataSetId— aktualisiert nurname/description/scope/language(nicht die Listen — Datensätze sind ansonsten append-only für Listen).DELETE /v2/input-data/:dataSetId— wird abgelehnt, wenn der Datensatz von einem bezahlten Crowdsourcing-Job referenziert wird.
Wie hilfreich ist diese Seite?
Aufgabenvorlagen
SurveyJS-basierte Aufgabendefinitionen, die die Fragen strukturieren, welche Crowdworker während der Verifizierung beantworten.
Worker
Das Crowdee-Crowd-Panel, Worker-Spezialisierungen und die Zuordnung von Tags zu Pipelines.