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

# Criar Lote

> Cria um trabalho em lote compatível com OpenAI a partir de um arquivo de entrada carregado.

## Visão Geral

Este endpoint faz parte da API de Lote compatível com OpenAI da TokenLab. Trabalhos em lote utilizam arquivos JSONL carregados, são executados de forma assíncrona e podem retornar arquivos de saída/erro posteriormente.

## Observações

* Arquivos de entrada em lote devem usar `purpose=batch`.
* `completion_window` é atualmente `24h`.
* A ordenação da saída não é garantida; sempre combine pelo `custom_id`.
* Streaming não é suportado dentro dos itens de lote.
* Os endpoints de item de lote atualmente compatíveis são `/v1/chat/completions` e `/v1/embeddings`; trabalhos em lote de `/v1/responses` são rejeitados até que um executor nativo de lotes Responses esteja disponível.

## Exemplo

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

## Solicitação / Resposta

Use o painel interativo do OpenAPI acima para o esquema exato.

## Dicas Operacionais

* Use `custom_id` para reconciliação idempotente a montante.
* Espere `output_file_id` e `error_file_id` apenas após o trabalhador finalizar o lote.
* A precificação de lote pode diferir da precificação síncrona porque as regras de desconto `isBatchRequest=true` se aplicam.

## Exemplo de resposta

<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 chamadas seguintes e suporte.</ResponseField>
<ResponseField name="status" type="string">Estado atual do ciclo de vida deste recurso.</ResponseField>
<ResponseField name="output_file_id" type="string|null">Identificador de arquivo usado por APIs relacionadas.</ResponseField>
