---
title: "Batch-API aus der EU · OpenAI-kompatible Massenverarbeitung"
description: "Führen Sie Tausende Chat- oder Embedding-Anfragen als asynchronen Job aus. OpenAI-kompatible Batch-API mit JSONL-Upload, verarbeitet in der EU."
canonical: "https://inference.eu/de/api/batches/"
language: "de"
---

POST /v1/batches

# Batch-API: große Jobs asynchron ausführen, verarbeitet in der EU

Der Batch-Endpunkt führt viele Anfragen als einen Hintergrundjob aus. Sie laden eine JSONL-Datei mit Chat-Completions- oder Embedding-Anfragen hoch, legen einen Batch an und holen nach Abschluss eine Ergebnisdatei ab. Das ist das richtige Werkzeug für Arbeit, auf die niemand wartet: einen Ticket-Rückstand klassifizieren, ein Dokumentarchiv einbetten oder über Nacht eine Evaluierung laufen lassen.

[Vertrieb kontaktieren](https://inference.eu/de/kontakt/)[Beispielanfrage](#example)

1.  01API-Format: OpenAI
2.  02Rechenzentren in der EU
3.  03Durch einen AV-Vertrag abgedeckt

POST /v1/batches

```
# ticket-classification.jsonl, one request per line:
# {"custom_id": "ticket-1042", "method": "POST", "url": "/v1/chat/completions",
#  "body": {"model": "gpt-oss-120b", "messages": [{"role": "user", "content": "Classify: ..."}]}}

curl https://api.inference.eu/v1/batches \
  -H "Authorization: Bearer $INFERENCE_EU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input_file_id": "file-7f3c2a",
    "endpoint": "/v1/chat/completions",
    "completion_window": "24h",
    "metadata": {"job": "ticket-backlog-2026-11"}
  }'

# Check progress
curl https://api.inference.eu/v1/batches/batch_91d0e4 \
  -H "Authorization: Bearer $INFERENCE_EU_API_KEY"
```

## Was der Endpunkt leistet

`POST /v1/batches` erstellt einen Job aus einer Datei, die Sie zuvor mit `purpose` `batch` hochgeladen haben. Übergeben Sie deren `input_file_id`, den `endpoint`, den jede Zeile anspricht, etwa `/v1/chat/completions`, `/v1/responses` oder `/v1/embeddings`, und `completion_window` mit dem Wert `24h`. Über das optionale Feld `metadata` versehen Sie den Job mit eigenen Labels.

Die Antwort ist ein Batch-Objekt mit `id` und `status`. Der Job läuft im Hintergrund, getrennt von Ihrem interaktiven Verkehr, sodass ein großer Rückstand nicht mit Anfragen konkurriert, auf die Ihre Nutzer warten. Anfragen und Ergebnisse verlassen nie die europäischen Rechenzentren.

## Status und Ergebnisse

Mit `GET /v1/batches/{batch_id}` verfolgen Sie den Fortschritt. `status` wechselt von `validating` über `in_progress` und `finalizing` zu `completed`, `failed`, `expired` oder `cancelled`. `request_counts` zeigt `total`, `completed` und `failed`, damit Sie den Fortschritt anzeigen können.

Ist der Batch `completed`, verweist `output_file_id` auf eine JSONL-Datei. Jede Zeile enthält die `custom_id` aus Ihrer Eingabe und eine `response` mit `status_code` und dem üblichen Antwort-`body`. Die Zeilen stehen nicht in Eingabereihenfolge, ordnen Sie also über `custom_id` zu. Fehlgeschlagene Anfragen landen in der Datei unter `error_file_id`. `POST /v1/batches/{batch_id}/cancel` stoppt einen Job, `GET /v1/batches` listet Ihre Jobs.

## Ein Batch-Ablauf, der im Betrieb trägt

Erzeugen Sie die Eingabedatei aus Ihrer Datenbank und nutzen Sie den Primärschlüssel des Datensatzes als `custom_id`. Prüfen Sie jede Zeile lokal, laden Sie die Datei hoch, legen Sie den Batch an und speichern Sie dessen `id` zum Job in Ihrem System. Eine geplante Aufgabe prüft alle paar Minuten den Status, statt eine Verbindung offen zu halten.

Nach Abschluss laden Sie die Ausgabe herunter, schreiben die Ergebnisse per `custom_id` zurück und sammeln Fehler in einer neuen, kleineren Eingabedatei für einen zweiten Versuch. Danach löschen Sie Ein- und Ausgabedateien. Ein Testbatch mit fünfzig Zeilen deckt Prompt- oder Schemaprobleme auf, bevor ein großer Job daran scheitert.

## Fehler und Sonderfälle

Scheitert ein Batch an der Validierung, etwa wegen fehlerhaftem JSON, fehlender `custom_id`, doppelter IDs oder Zeilen mit anderem Endpunkt, endet er mit `status` `failed` und einer Liste `errors`, die Problem und Zeile nennt. Korrigieren Sie die Datei und reichen Sie einen neuen Batch ein.

Einzelne Anfragen können in einem sonst erfolgreichen Batch scheitern, etwa wenn ein Prompt das Kontextfenster überschreitet. Sie erscheinen in der Fehlerdatei und halten den Rest nicht auf. Wird ein Batch nicht innerhalb des Zeitfensters fertig, wechselt er zu `expired`; die Ergebnisse erledigter Anfragen bleiben verfügbar. Batch-Größen und Durchsatz hängen von Ihrem Tarif ab und werden mit Ihnen abgestimmt.

## Batches

Endpunkt

POST /v1/batches

Kategorie

Endpunkte

API-Format

OpenAI

Base URL

api.inference.eu/v1

Verarbeitung

Rechenzentren in der EU

Training mit Ihren Daten

Nie

## Batches: häufige Fragen

Die Fragen, die uns Einkauf, Entwicklung und Rechtsabteilungen am häufigsten stellen. Etwas fehlt? Fragen Sie uns direkt.

Ja. JSONL-Eingabeformat, die Anfrage an \`POST /v1/batches\`, das Batch-Objekt, seine Status und das Format der Ausgabedatei folgen der Batch API von OpenAI. \`client.batches.create\`, \`retrieve\`, \`list\` und \`cancel\` funktionieren in den OpenAI-SDKs mit Basis-URL und Schlüssel von inference.eu.

Sie können Anfragen an \`/v1/chat/completions\`, \`/v1/responses\` und \`/v1/embeddings\` bündeln. Alle Zeilen einer Eingabedatei müssen den Endpunkt ansprechen, den Sie beim Anlegen im Feld \`endpoint\` nennen. Nutzen Sie einen Batch pro Endpunkt und in der Regel ein Modell pro Batch.

Batches werden innerhalb des \`completion\_window\` von 24 Stunden abgeschlossen, viele deutlich früher. Die Dauer hängt von Jobgröße, Modell und Gesamtauslastung ab. Brauchen Sie für einen regelmäßigen Job eine verbindliche Bearbeitungszeit, sprechen Sie mit uns über Ihren Tarif.

Immer dann, wenn niemand auf die Antwort wartet: nächtliche Klassifizierung, Sammelzusammenfassungen, das Einbetten eines Archivs, Produktbeschreibungen oder Evaluierungen. Sie müssen sich nicht selbst um Parallelität und Wiederholungen kümmern, und Massenarbeit belastet nicht Ihre interaktiven Limits. Für alles, was Nutzer sofort sehen, bleiben normale Anfragen richtig.

Jede Ausgabezeile enthält die \`custom\_id\` der zugehörigen Eingabezeile. Ergebnisse kommen nicht in Eingabereihenfolge zurück, verknüpfen Sie sie also über \`custom\_id\`, idealerweise den Primärschlüssel des Datensatzes in Ihrer Datenbank. Jede \`custom\_id\` muss innerhalb der Datei eindeutig sein.

Der Batch wird trotzdem abgeschlossen, und \`request\_counts.failed\` nennt die Zahl der Fehlschläge. Diese Anfragen stehen mit ihrer \`custom\_id\` und dem Fehler in der Datei unter \`error\_file\_id\`. Beheben Sie die Ursache, erstellen Sie aus den gescheiterten Zeilen eine neue Eingabedatei und reichen Sie sie als neuen Batch ein.

Ja, mit \`POST /v1/batches/{batch\_id}/cancel\`. Der Status wechselt zu \`cancelling\` und dann zu \`cancelled\`. Anfragen, die vor dem Abbruch fertig waren, bleiben in der Ausgabedatei verfügbar, sodass die bereits erledigte Arbeit nicht verloren geht.

Ein- und Ausgabedateien liegen in europäischen Rechenzentren, sind nur mit Schlüsseln Ihrer Organisation zugänglich und werden nie zum Training von Modellen verwendet. Löschen Sie sie nach Abschluss über die Files-API; die Aufbewahrung nicht gelöschter Dateien regelt Ihr Vertrag.

[Frage stellen](https://inference.eu/de/kontakt/)

## Verwandte Seiten

[API-Überblick](https://inference.eu/de/api/)

-   [FilesLaden Sie Dateien mit einer OpenAI-kompatiblen Files-API hoch, listen, laden und löschen Sie sie. Für Batch-Jobs und Werkzeuge, gespeichert in der EU.Endpunkte](https://inference.eu/de/api/files/)
-   [EmbeddingsWandeln Sie Text in Vektoren für Suche, RAG und Clustering um. OpenAI-kompatible Embeddings-API mit offenen Modellen, Verarbeitung in Rechenzentren der EU.Endpunkte](https://inference.eu/de/api/embeddings/)
-   [Chat completionsSenden Sie Chat-Nachrichten im OpenAI-Format an Open-Weight-Modelle. Verarbeitung in Rechenzentren in der EU, keine Nutzung Ihrer Daten für Training.Endpunkte](https://inference.eu/de/api/chat-completions/)
-   [Rate limits and errorsSo funktionieren Rate Limits und Fehler bei der inference.eu API. HTTP-Statuscodes, das Fehlerobjekt, Rate-Limit-Header und ein belastbares Retry-Muster.Anleitungen](https://inference.eu/de/api/rate-limits-and-errors/)

## Verlagern Sie Ihre KI-Workloads auf europäische Infrastruktur

Sagen Sie uns, welche Modelle Sie nutzen und wie viel Verkehr Sie ungefähr haben. Wir antworten innerhalb eines Werktags mit Preisen und nächsten Schritten.

-   Antwort innerhalb eines Werktags
-   Preise für Ihr Volumen
-   AV-Vertrag unterschriftsreif
