webhook.url an, und wir senden das Ergebnis per POST dorthin, sobald der Task einen
Endzustand erreicht: COMPLETED oder FAILED.
Zustell-Payload
Wir senden per POST mitContent-Type: application/json diesen Body:
object
erforderlich
Dieselben Task-Metadaten wie beim Einreichen, jetzt mit einem End-
status und Ihrem zurückgegebenen idempotencyKey.object
erforderlich
Die Credit-Kosten der Engine:
2 für Perplexity, 3 für ChatGPT usw. (1–3 Credits je nach Engine).
creditsCharged ist 0, wenn der Task fehlgeschlagen ist. Anders als die Antworten beim Einreichen und Pollen, die
immer null melden, ist dieses Feld nicht null.object
erforderlich
Das engine-spezifische Ergebnis. Siehe Engines. Bei einem fehlgeschlagenen Task steht hier
{ "error": "<reason>" } statt des Engine-Ergebnisses.Wiederholungen
Geben Sie zur Bestätigung einen beliebigen2xx zurück. Alles andere, auch ein Timeout, gilt als Fehlschlag, und wir
wiederholen mit exponentiellem Backoff:
Nach dem fünften Versuch wird die Zustellung aufgegeben und protokolliert. Es gibt keine Dead-Letter-Queue, die Sie
lesen können. Um das Ergebnis über die Task-API abzurufen, pollen Sie innerhalb des 24-stündigen öffentlichen
Polling-Fensters. Dieses Fenster bestimmt nicht die Speicherdauer des zugrunde liegenden Datensatzes.
Jeder Versuch hat ein Anfrage-Timeout von 30 Sekunden.
Einen sicheren Handler schreiben
1
Schnell bestätigen
Geben Sie
200 zurück, sobald Sie den Payload dauerhaft in eine Warteschlange gelegt haben. Parsen und
Datenbankschreibvorgänge erledigen Sie danach. Ein langsamer Handler verbraucht das 30-Sekunden-Timeout und löst
eine unerwünschte Wiederholung aus.2
Über idempotencyKey deduplizieren
Wegen der Wiederholungen kann Ihr Handler denselben Task legitim mehrfach erhalten. Gleichen Sie über
task.idempotencyKey (oder task.id) ab und machen Sie den Schreibvorgang idempotent.3
Nach Status verzweigen, nicht nach Vorhandensein
Prüfen Sie
task.status === "FAILED" explizit. Auch ein fehlgeschlagener Task stellt einen Webhook zu.Webhook-Anfragen tragen weder Signatur noch gemeinsames Geheimnis. Ist Ihr Endpunkt öffentlich, behandeln Sie den
Payload als nicht vertrauenswürdig und verwenden Sie einen nicht erratbaren URL-Pfad, oder stellen Sie den Handler
hinter netzwerkseitige Beschränkungen.