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

# Subir Archivo

> Sube un archivo de entrada en formato JSONL para su posterior creación por lotes.

## Descripción General

Este endpoint es parte de la API por 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.

## Modos de archivo admitidos

TokenLab trata `/v1/files` como tres modos explícitos:

* Archivos de lote: usa `purpose=batch` para `/v1/batches`.
* Archivos de imagen/referencia: usa `purpose=user_data` o `purpose=vision` para solicitudes de imagen basadas en archivos.
* Modo Anthropic Files API: añade `anthropic-beta: files-api-2025-04-14` para almacenamiento de archivos nativo de Anthropic.

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

## Ejemplo

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/files" \
    -H "Authorization: Bearer sk-your-api-key" \
    -F "purpose=batch" \
    -F "file=@batch-input.jsonl;type=application/jsonl"
  ```
</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.
* Los precios por lotes pueden diferir de los precios sincrónicos porque se aplican las reglas de descuento de `isBatchRequest=true`.

## Entradas de archivos de imagen

La misma ruta `/v1/files` también puede subir archivos de imagen de referencia para `/v1/images/edits`.

* Usa `purpose=user_data` o `purpose=vision`.
* Incluye opcionalmente `model` para seleccionar el modelo de edición de imágenes; el valor predeterminado es `gpt-image-2`.
* El `file_id` devuelto se vincula a la configuración de edición de imágenes seleccionada y puede reutilizarse en `images[].file_id`.

## Modo Anthropic Files API

Esta misma ruta `/v1/files` también admite la ruta de Anthropic Files API.

* Añade el encabezado `anthropic-beta: files-api-2025-04-14` para cambiar al modo Anthropic.
* En modo Anthropic, sube el archivo original directamente y no envíes `purpose=batch`.
* El `file_id` devuelto queda vinculado al mismo canal/workspace oficial de Anthropic y debe reutilizarse en las solicitudes `/v1/messages`.
* Si vas a referenciar ese archivo desde el contenido de un mensaje Anthropic, sigue usando los encabezados nativos de Anthropic (`x-api-key`, `anthropic-version` y, cuando haga falta, el beta header).

## Ejemplo de respuesta

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "file_abc123",
    "object": "file",
    "bytes": 32768,
    "created_at": 1706000000,
    "filename": "batch-input.jsonl",
    "purpose": "batch"
  }
  ```
</ResponseExample>

## Campos importantes

<ResponseField name="id" type="string">Identificador de archivo usado por APIs relacionadas.</ResponseField>
<ResponseField name="purpose" type="string">Propósito asignado al archivo. Las subidas aceptan `batch`, `user_data` o `vision`.</ResponseField>
<ResponseField name="bytes" type="integer">Tamaño del archivo en bytes.</ResponseField>
