> ## 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.

# Crear Lote

> Crea un trabajo por lotes compatible con OpenAI a partir de un archivo de entrada subido.

## Descripción General

Este endpoint es parte de la API de Lotes compatible con OpenAI de TokenLab. Los trabajos por lotes utilizan archivos JSONL subidos, se ejecutan de manera asíncrona y pueden devolver archivos de salida/error más tarde.

## Notas

* Los archivos de entrada por lotes deben usar `purpose=batch`.
* `completion_window` es actualmente `24h`.
* El orden de salida no está garantizado; siempre coincida por `custom_id`.
* La transmisión no es compatible dentro de los elementos del lote.
* Los endpoints de elementos de lote admitidos actualmente son `/v1/chat/completions` y `/v1/embeddings`; los trabajos por lotes de `/v1/responses` se rechazan hasta que esté disponible un ejecutor de lotes nativo de Responses.

## Ejemplo

<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>

## Solicitud / Respuesta

Utilice el panel interactivo de OpenAPI arriba para el esquema exacto.

## Consejos Operativos

* Use `custom_id` para la reconciliación idempotente en downstream.
* Espere `output_file_id` y `error_file_id` solo después de que el trabajador finalice el lote.
* La fijación de precios por lotes puede diferir de la fijación de precios sincrónica porque se aplican las reglas de descuento `isBatchRequest=true`.

## Ejemplo de respuesta

<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>

## Campos importantes

<ResponseField name="id" type="string">Identificador para llamadas posteriores y soporte.</ResponseField>
<ResponseField name="status" type="string">Estado actual del ciclo de vida de este recurso.</ResponseField>
<ResponseField name="output_file_id" type="string|null">Identificador de archivo usado por APIs relacionadas.</ResponseField>
