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 Sie429und503nicht 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.
200. results[i].index entspricht der Position in Ihrem Array, und jedes Ergebnis hat entweder task oder error:
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.
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 undpayload.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:
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.