Sie haben eine Gruppe erstellt, ein groupId zurückbekommen, und jetzt werden mehrere Sprachen parallel übersetzt. Jetzt brauchen Sie immer wieder dieselbe Antwort, bis alles durch ist: Wie läuft die gesamte Übermittlung gerade? Nicht Sprache für Sprache – sondern als Gesamtbild. Wie viele sind abgeschlossen, wie viele haben Output mit Warnungen erzeugt, wie viele sind fehlgeschlagen und wie viele laufen noch.
Genau dafür ist dieser Endpoint da. Ein Poll, der Status aller Sprachen, in einer einzigen Antwort. Neu bei asynchroner Lokalisierung? Starten Sie mit dem Überblick über die Async Localization API.
Auf dieser Seite
Eine Job-Gruppe abrufen#
Rufen Sie den Status einer Job-Gruppe und aller zugehörigen Child-Jobs ab.
GET /jobs/localization/groups/:groupIdAuthentifizieren Sie sich mit Ihrem API-Schlüssel im X-API-Key-Header – also mit demselben Schlüssel, den Sie auch zum Erstellen der Gruppe verwendet haben. groupId ist die mit ljg_ beginnende ID aus der 202-Antwort.
Antwort#
Die Antwort ist eine Momentaufnahme der gesamten Übermittlung: der eigene status der Gruppe, vier Zählwerte und die Child-Jobs mit ihren jeweiligen Einzelstatus. Dieses Objekt lesen Sie bei jedem Poll aus.
{
"groupId": "ljg_A1b2C3d4E5f6G7h8",
"status": "processing",
"sourceLocale": "en",
"totalJobs": 3,
"completedJobs": 1,
"completedWithWarningsJobs": 0,
"failedJobs": 0,
"jobs": [
{ "id": "ljb_A1b2C3d4E5f6G7h8", "targetLocale": "de", "status": "completed", "warnings": [], "completedAt": "2026-03-16T10:30:04.000Z" },
{ "id": "ljb_B2c3D4e5F6g7H8i9", "targetLocale": "fr", "status": "processing", "warnings": [], "completedAt": null },
{ "id": "ljb_C3d4E5f6G7h8I9j0", "targetLocale": "ja", "status": "queued", "warnings": [], "completedAt": null }
],
"createdAt": "2026-03-16T10:30:00.000Z"
}Die drei Zählfelder für terminale Jobs – completedJobs, completedWithWarningsJobs und failedJobs – ergeben zusammen die Zahl der Sprachen, die abgeschlossen sind. Der Rest von totalJobs ist noch queued oder processing. In der obigen Momentaufnahme ist 1 von 3 abgeschlossen und 2 sind noch in Bearbeitung. Ein Blick auf die Zählwerte reicht also, um zu sehen, dass die Arbeit noch nicht durch ist, ohne das jobs-Array zu durchsuchen. Sobald diese Summe totalJobs erreicht, hat die Gruppe einen terminalen Status erreicht.
Das warnings-Array jedes Jobs macht nicht kritische Fehler in optionalen pipeline-Schritten sichtbar – zum Beispiel einen Pre-Edit- oder Rückübersetzungsschritt, der nicht erfolgreich durchgelaufen ist. Ein nicht leeres Array bedeutet: Der Job hat trotzdem Output erzeugt, aber mindestens ein optionaler Schritt wurde nicht abgeschlossen. Das übersetzte outputData selbst finden Sie am einzelnen Job – rufen Sie ihn ab, wenn Sie den Inhalt einer abgeschlossenen Sprache lesen möchten.
Gruppenstatus#
Der status der Gruppe fasst ihre Child-Jobs zu einem einzigen Wert zusammen. Sie pollen, bis ein terminaler Zustand erreicht ist.
| Gruppenstatus | Bedeutung |
|---|---|
pending | Gruppe erstellt, noch keine Jobs gestartet |
processing | Mindestens ein Job ist in Bearbeitung |
completed | Alle Jobs wurden erfolgreich abgeschlossen |
completed_with_warnings | Alle Jobs haben Output erzeugt, aber ein oder mehrere optionale pipeline-Schritte sind bei mindestens einem Job fehlgeschlagen |
partial | Einige Jobs wurden abgeschlossen, einige sind fehlgeschlagen |
failed | Alle Jobs sind fehlgeschlagen |
Die Aufteilung in completed, completed_with_warnings und partial ist der Kern dieses Endpoints: Sie unterscheidet zwischen „jede Sprache wurde ausgeliefert“, „jede Sprache wurde ausgeliefert, einige mit Warnung“ und „einige Sprachen wurden ausgeliefert und einige nicht“ – drei Ergebnisse, die Sie sonst erst durch das Lesen jedes einzelnen Jobs rekonstruieren müssten. partial ist kein Fehler, sondern ein realer Zustand, den die Gruppe klar ausweist, damit Ihr Code entsprechend verzweigen kann.
Wie oft pollen#
Polling-Intervall
Bei den meisten Jobs dauert die Verarbeitung 2–8 Sekunden pro Sprache. Wenn Sie pollen, statt Webhooks oder WebSocket zu verwenden, ist ein Intervall von 2 Sekunden ein sinnvoller Ausgangspunkt.
Polling ist der einfachste Weg, eine Gruppe zu verfolgen, und für einen kurzlebigen Batch völlig in Ordnung. Aber es ist auch die schwächere Option – und das sollte man klar sagen: Jeder Poll ist ein Roundtrip, egal ob sich etwas geändert hat oder nicht, und dass eine Sprache fertig ist, erfahren Sie erst beim nächsten Tick, nicht in dem Moment, in dem sie ankommt.
Wenn Sie jedes Ergebnis sofort haben möchten, sobald es bereit ist, pollen Sie nicht – lassen Sie es sich zustellen. Die Plattform liefert jede abgeschlossene Sprache an Ihre Webhook-URL, sobald sie fertig ist, und eine WebSocket-Verbindung auf der Gruppe pusht bei jeder Änderung eine vollständige Status-Momentaufnahme, sodass sich Ihre UI aktualisiert, ohne nachfragen zu müssen. Greifen Sie zu Polling, wenn ein Webhook-Endpoint oder eine persistente Verbindung mehr Aufwand ist, als der Job wert ist; greifen Sie zu Push, wenn geringe Latenz in Ihrer UI zählt.
Wenn eine Sprache fehlschlägt#
Wer „in viele Sprachen gleichzeitig übersetzen“ mit einer gesunden Portion Skepsis liest, stellt zuerst die naheliegende Frage: Was passiert mit dem Rest, wenn eine Sprache fehlschlägt? Hier ist die Antwort – direkt in der Response.
Jede Sprache ist ein eigenständiger Job. Wenn Deutsch erfolgreich ist, Japanisch aber fehlschlägt, ist die deutsche Übersetzung fertig und wird ganz normal ausgeliefert – der Fehler setzt sie nicht zurück. Der fehlgeschlagene Job erscheint in der Gruppe mit status: "failed", failedJobs wird erhöht, und die Gruppe rollt zu partial auf:
{
"groupId": "ljg_A1b2C3d4E5f6G7h8",
"status": "partial",
"sourceLocale": "en",
"totalJobs": 3,
"completedJobs": 2,
"completedWithWarningsJobs": 0,
"failedJobs": 1,
"jobs": [
{ "id": "ljb_A1b2C3d4E5f6G7h8", "targetLocale": "de", "status": "completed", "warnings": [], "completedAt": "2026-03-16T10:30:04.000Z" },
{ "id": "ljb_B2c3D4e5F6g7H8i9", "targetLocale": "fr", "status": "completed", "warnings": [], "completedAt": "2026-03-16T10:30:05.000Z" },
{ "id": "ljb_C3d4E5f6G7h8I9j0", "targetLocale": "ja", "status": "failed", "warnings": [], "completedAt": null }
],
"createdAt": "2026-03-16T10:30:00.000Z"
}Zwei Sprachen wurden ausgeliefert, eine nicht – und die Zählwerte zeigen es, ohne dass Sie irgendetwas durchsuchen müssen. Um es erneut zu versuchen, senden Sie eine neue Anfrage nur mit den fehlgeschlagenen Sprachen und einem neuen Idempotency-Key. Die vollständige Fehlerbeschreibung für eine fehlgeschlagene Sprache – das errorMessage – finden Sie am einzelnen Job; die Gruppe liefert Ihnen Zählwert und Ergebnis.
Teilausfälle sind ein normaler Zustand
partial bedeutet genau das, was die Zählwerte zeigen: Einige Sprachen wurden abgeschlossen, andere sind fehlgeschlagen. Die abgeschlossenen Sprachen wurden bereits ausgeliefert. Es gibt nichts zurückzusetzen und keine erneuten Kosten für die erfolgreichen Sprachen – Sie wiederholen nur das, was fehlgeschlagen ist.
