Zum Hauptinhalt springen
Drei Endpunkte erstellen viele Tasks in einer Anfrage. Jeder erstellt gewöhnliche Tasks: Polling, Webhooks, Credits und Tariflimits sind dieselben wie bei einem einzelnen Task.

Die drei Endpunkte im Vergleich

Welchen Sie verwenden

  • Bis zu 500 Tasks, und Sie kümmern sich um Wiederholungen: POST /v1/async/task/batch. Sie erhalten jede Task-id in der Antwort.
  • Mehr Tasks als die Parallelität Ihres Tarifs, oder ein täglicher Job mit Tausenden: POST /v1/batches. Der Server hält die Einträge und speist sie ein, soweit Ihr Tariflimit und die Warteschlange jeder Engine es zulassen, sodass Sie 429 und 503 nicht selbst wiederholen.
  • Ein Prompt, gestellt von vielen Punkten rund um einen Ort: POST /v1/async/task/grid.

POST /v1/async/task/batch

Senden Sie ein Array mit bis zu 500 Task-Anfragen (Referenz). Engines lassen sich mischen.
Eine wohlgeformte Anfrage liefert 200. results[i].index entspricht der Position in Ihrem Array, und jedes Ergebnis hat entweder task oder error:
In diesen Fällen wird die ganze Anfrage abgelehnt, und kein Task wird erstellt: Ein wiederholter idempotencyKey liefert den bestehenden Task als Erfolg. Siehe Idempotenz.

POST /v1/batches

Senden Sie bis zu 10.000 Einträge (Referenz). Jeder Eintrag nimmt die Task-Felder taskType, payload, priority und idempotencyKey sowie eine optionale customId (bis zu 128 Zeichen), die in den Ergebnissen zurückgegeben wird. Setzen Sie webhook.url am Batch, nicht an den Einträgen.
Die Antwort ist 202 mit dem Batch. Die ersten Einträge sind bereits eingereicht:

Regeln für den Umschlag

Alles-oder-nichts-Validierung

Jeder Eintrag durchläuft dieselben Prüfungen wie ein einzelner Task, bevor etwas gespeichert wird: Felder, Schlüsselbereich, private Engines, dedizierte Endpunkte, Region und payload.location. Scheitert ein Eintrag, lautet die Antwort 400 VALIDATION_ERROR, nichts wird gespeichert, und details listet bis zu 50 fehlerhafte Einträge:

Wie Einträge laufen

Der Batch gibt Einträge als Tasks frei, wenn Ihr Tariflimit und die Warteschlange der Engine Platz haben. Konten wechseln sich ab, sodass ein großer Batch einen kleinen Batch eines anderen Kontos nicht aufhält. Jeder freigegebene Eintrag durchläuft dieselbe Annahme wie ein einzelner Task: Er reserviert Credits und zählt zum täglichen Credit-Limit des Schlüssels. Wird ein Eintrag abgelehnt, entscheidet der Code, was passiert: Der Batch wird COMPLETED, wenn kein Eintrag mehr aussteht und jeder Task fertig ist. Mit webhook.url sendet der Server dann das batch.completed-Ereignis.

Fortschritt und Ergebnisse lesen

GET /v1/batches/{id} liefert den Batch mit counts nach Eintragsstatus: pending, queued, processing, completed, failed, rejected. Das Pollen bringt außerdem ausstehende Einträge voran.
GET /v1/batches/{id}/items listet die Einträge in Einreichungsreihenfolge:
Ein REJECTED-Eintrag trägt error: { code, message }. Ergebnis-Bodies sind nur innerhalb des 24-stündigen Polling-Fensters aus Asynchrone Tasks enthalten. Siehe auch Batch abrufen und Batch-Einträge auflisten.

POST /v1/async/task/grid

Stellen Sie einen Prompt von jedem Punkt eines quadratischen Rasters um einen Mittelpunkt (Referenz). Jeder Punkt wird zu einem Task mit diesem Punkt als payload.location; die Engine muss also einen Standort akzeptieren: CHATGPT, GEMINI, GOOGLE, AIMODE oder GOOGLE_SERP. Senden Sie payload.location nicht selbst.
Zeile 0 ist die Nordkante, Spalte 0 die Westkante. Die Antwort liefert grid (mit id und spacingMeters), eine summary und points in Zeilenreihenfolge, jeweils mit row, col, location und entweder task oder error. Der Mittelpunkt wird zuerst und allein angenommen. Wird er abgelehnt (zum Beispiel 422 LOCATION_UNSUPPORTED, 403 KEY_SCOPE_DENIED, 402 INSUFFICIENT_CREDITS oder ein ausgeschöpfter Tarif), ist dieser Fehler die Antwort für das ganze Raster, und kein Task wird erstellt. Punkte nach dem Mittelpunkt, die aus Kapazitätsgründen abgelehnt werden, scheitern an ihrer Stelle mit success: false. Lesen Sie ein Raster mit GET /v1/async/task/grid/{id} zurück. Fügen Sie ?include=response für die Ergebnisse fertiger Tasks hinzu. Nie angenommene Punkte fehlen, und die Raster-id eines anderen Kontos liefert 404. Wird dasselbe Raster unter derselben id erneut gesendet, werden nur die fehlenden Punkte angenommen; siehe Idempotenz.

Nächste Schritte

Idempotenz

Wie jeder Endpunkt einen wiederholten Schlüssel behandelt.

Credits und Limits

Parallelität des Tarifs und Taktung.