> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch erstellen

> Erstellt einen OpenAI-kompatiblen Batch-Job aus einer hochgeladenen Eingabedatei.

## Übersicht

Dieser Endpunkt ist Teil von TokenLab's OpenAI-kompatibler Batch-API. Batch-Jobs verwenden hochgeladene JSONL-Dateien, laufen asynchron und können später Ausgabedateien/Fehlerdateien zurückgeben.

## Hinweise

* Batch-Eingabedateien müssen `purpose=batch` verwenden.
* `completion_window` beträgt derzeit `24h`.
* Die Ausgabereihenfolge ist nicht garantiert; immer nach `custom_id` abgleichen.
* Streaming wird innerhalb von Batch-Elementen nicht unterstützt.
* Unterstützte Batch-Element-Endpunkte sind derzeit `/v1/chat/completions` und `/v1/embeddings`; `/v1/responses`-Batch-Jobs werden abgelehnt, bis ein nativer Responses-Batch-Executor verfügbar ist.

## Beispiel

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/batches" \
    -H "Authorization: Bearer sk-your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "input_file_id": "file_abc123",
      "endpoint": "/v1/chat/completions",
      "completion_window": "24h"
    }'
  ```
</RequestExample>

## Anfrage / Antwort

Verwenden Sie das interaktive OpenAPI-Panel oben für das genaue Schema.

## Betriebliche Tipps

* Verwenden Sie `custom_id` für idempotente nachgelagerte Abgleiche.
* Erwarten Sie `output_file_id` und `error_file_id` erst, nachdem der Worker den Batch abgeschlossen hat.
* Die Preisgestaltung für Batches kann von der synchronen Preisgestaltung abweichen, da die Rabattregeln für `isBatchRequest=true` gelten.

## Antwortbeispiel

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "batch_abc123",
    "object": "batch",
    "endpoint": "/v1/chat/completions",
    "input_file_id": "file_abc123",
    "completion_window": "24h",
    "status": "validating",
    "output_file_id": null,
    "error_file_id": null,
    "created_at": 1706000000
  }
  ```
</ResponseExample>

## Wichtige Felder

<ResponseField name="id" type="string">Kennung für Folgeaufrufe und Support.</ResponseField>
<ResponseField name="status" type="string">Aktueller Lifecycle-Status dieser Ressource.</ResponseField>
<ResponseField name="output_file_id" type="string|null">Dateikennung für verwandte APIs.</ResponseField>
