Portada » Batch API OpenAI: procesa miles de solicitudes con IA
OpenAI · Batch API · Procesamiento asíncrono

Batch API OpenAI: procesa miles de solicitudes de forma asíncrona

Batch API OpenAI permite enviar grandes volúmenes de solicitudes para procesarlas de forma asíncrona, sin depender de respuestas inmediatas. Puedes preparar un archivo JSONL, subirlo a OpenAI, crear un batch y recuperar los resultados una vez finalizado. Es especialmente útil para procesamiento masivo, clasificación, generación, embeddings y trabajos offline.

JSONL 24 horas Procesamiento asíncrono
Respuesta rápida

¿Qué es Batch API OpenAI?

Batch API OpenAI permite agrupar muchas solicitudes de API dentro de un archivo JSONL y ejecutarlas de forma asíncrona. En lugar de enviar cada request individualmente y esperar su respuesta en tiempo real, creas un batch que OpenAI procesa dentro de una ventana definida.

Ventajas

Qué permite hacer Batch API OpenAI

Batch API está pensado para workloads que no necesitan respuesta instantánea.

VOL

Procesar volumen

Ejecutar grandes conjuntos de solicitudes dentro de un solo trabajo.

50%

Reducir costos

Batch utiliza precios más bajos que el procesamiento Standard.

ASYNC

Trabajo asíncrono

No necesitas mantener una conexión abierta esperando cada respuesta.

JSONL

Usar JSONL

Cada línea representa una solicitud independiente dentro del batch.

ERR

Separar errores

Los resultados correctos y errores pueden recuperarse mediante archivos separados.

AUTO

Automatizar procesos

Ideal para tareas nocturnas, migraciones o procesamiento programado.

Publicidad
Flujo

Cómo funciona Batch API OpenAI

El proceso comienza preparando las requests y termina descargando los resultados.

01 · JSONL

Preparas el archivo

Cada línea contiene una solicitud completa de API.

02 · BATCH

Creas el trabajo

Subes el archivo y creas un nuevo batch.

03 · RESULT

Recuperas resultados

Cuando finaliza, descargas los outputs y errores.

Publicidad
Workflow

Flujo completo de Batch API OpenAI

Un batch normalmente sigue cinco etapas principales.

01

Crear el archivo JSONL con las requests.

02

Subir el archivo utilizando purpose: "batch".

03

Crear un batch utilizando el input_file_id.

04

Consultar el estado del procesamiento.

05

Descargar el archivo de resultados.

Publicidad
Input

Cómo preparar el archivo JSONL para Batch API

Cada línea debe representar una solicitud independiente.

batch.jsonl

Ejemplo con Responses API

{"custom_id":"req-001","method":"POST","url":"/v1/responses","body":{"model":"gpt-5.6-sol","input":"Resume este texto en tres puntos."}}
{"custom_id":"req-002","method":"POST","url":"/v1/responses","body":{"model":"gpt-5.6-sol","input":"Clasifica esta opinión como positiva, neutral o negativa."}}
{"custom_id":"req-003","method":"POST","url":"/v1/responses","body":{"model":"gpt-5.6-sol","input":"Extrae los conceptos principales del texto."}}
custom_id es muy importante

Utiliza un identificador único por request para relacionar fácilmente cada output con el registro original.

Estructura

Campos de cada request del archivo JSONL

Campo Función
custom_id Identificador que tú asignas a la solicitud
method Método HTTP de la request
url Endpoint que procesará esa solicitud
body Payload normal que enviarías al endpoint
Paso 1

Subir el archivo para Batch API OpenAI

Antes de crear el batch, debes subir el JSONL mediante Files API.

Python

Subir batch.jsonl

from openai import OpenAI

client = OpenAI()

batch_file = client.files.create(
    file=open("batch.jsonl", "rb"),
    purpose="batch"
)

print(batch_file.id)
Límite del archivo

Batch API admite actualmente archivos JSONL de hasta 200 MB.

Paso 2

Crear un batch

Una vez obtenido el file ID, puedes crear el trabajo asíncrono.

Python

Crear Batch API

batch = client.batches.create(
    input_file_id=batch_file.id,
    endpoint="/v1/responses",
    completion_window="24h"
)

print(batch.id)
completion_window

La ventana de procesamiento actual es 24h

Batch API no está pensado para respuestas en tiempo real.

24h

completion_window

El valor soportado actualmente para completion_window es 24h. Esto significa que el trabajo debe completarse dentro de esa ventana.

No significa que siempre demorará 24 horas

Puede terminar antes. Las 24 horas representan la ventana máxima definida por Batch API.

Endpoints

Qué endpoints admite Batch API OpenAI

El endpoint indicado al crear el batch debe coincidir con las requests del archivo JSONL.

Endpoint Uso
/v1/responses Responses API
/v1/chat/completions Chat Completions
/v1/embeddings Generación de embeddings
/v1/completions Completions legacy
/v1/moderations Moderation
Embeddings tiene un límite adicional

Los batches para /v1/embeddings están restringidos actualmente a un máximo de 50.000 inputs de embeddings sumando todas las requests del batch.

Publicidad
Paso 3

Consultar el estado de un batch

Después de crear el trabajo, puedes recuperar el objeto batch mediante su ID.

Python

Consultar progreso

batch = client.batches.retrieve(
    "batch_abc123"
)

print(batch.status)
Estados

Estados de un batch

El objeto Batch permite conocer en qué etapa se encuentra el trabajo.

Estado Significado general
validating El archivo y las solicitudes se están validando
in_progress Las solicitudes están siendo procesadas
finalizing OpenAI está preparando los resultados finales
completed El batch terminó correctamente
failed El batch falló
expired No terminó dentro de la ventana disponible
cancelling La cancelación está en proceso
cancelled El batch fue cancelado
Progreso

request_counts muestra cuánto se ha procesado

request_counts

Solicitudes completadas y fallidas

{
  "request_counts": {
    "total": 10000,
    "completed": 9850,
    "failed": 150
  }
}
Paso 4

Descargar los resultados del batch

Cuando el batch termina, el objeto puede incluir un output_file_id.

output_file_id

Recuperar el archivo de salida

file_response = client.files.content(
    batch.output_file_id
)

print(file_response.text)
Relaciona los resultados mediante custom_id

No dependas exclusivamente del orden de las líneas. El identificador personalizado permite emparejar cada respuesta con su request original.

Errores

error_file_id en Batch API

Un batch puede completar algunas requests correctamente y fallar en otras.

error_file_id

Errores separados de los outputs exitosos

El objeto Batch puede proporcionar un archivo específico con información correspondiente a las solicitudes que produjeron errores.

No reenvíes todo el batch

Guarda los custom_id fallidos y crea un nuevo batch únicamente con las requests que realmente necesitan reintentarse.

Administración

Listar batches de la organización

Batch API permite consultar trabajos anteriores mediante paginación.

Endpoint

GET /v1/batches

La API permite listar batches y utilizar parámetros como limit y after para recorrer los resultados.

Control

Cancelar un batch

Si un trabajo ya no es necesario, puedes solicitar su cancelación mientras sigue activo.

Cancel

Detener procesamiento innecesario

Después de solicitar la cancelación, el batch puede pasar temporalmente por el estado cancelling antes de quedar cancelled.

Publicidad
Comparativa

Batch API vs solicitudes normales

La principal diferencia está en la prioridad entre velocidad y costo.

Aspecto Batch API API Standard
Respuesta inmediata No Sí
Procesamiento Asíncrono Síncrono o streaming
Ventana Hasta 24h En tiempo de solicitud
Precio 50% de Standard en modelos compatibles Tarifa Standard
Uso ideal Procesamiento masivo offline Apps interactivas
Responses API

Batch API vs Background Mode

Ambas opciones son asíncronas, pero responden a necesidades diferentes.

Aspecto Batch API Background Mode
Unidad de trabajo Muchas requests Una respuesta larga o compleja
Archivo JSONL Sí No
Objetivo Volumen No bloquear una operación larga
Resultado Archivo batch Response object
Costos

Cuánto cuesta Batch API OpenAI

Batch está pensado para reducir el costo de workloads que pueden esperar.

50%

Batch cuesta la mitad de Standard

En los modelos que publican tarifas Batch, OpenAI cobra actualmente el 50% de la tarifa Standard correspondiente.

Muy útil para volumen

Si una tarea no necesita una respuesta inmediata, procesarla mediante Batch puede producir un ahorro importante a escala.

Ver precios OpenAI API →
Aplicaciones

Casos de uso de Batch API OpenAI

Batch API resulta especialmente útil en procesos que pueden ejecutarse fuera del flujo interactivo del usuario.

01

Clasificación: procesar miles de comentarios o documentos.

02

Resúmenes: generar resúmenes de grandes colecciones de textos.

03

Embeddings: procesar grandes conjuntos de contenido.

04

Moderación: analizar contenido de forma masiva.

05

Ecommerce: generar descripciones, categorías o atributos para catálogos.

06

SEO: procesar metadatos o clasificar grandes colecciones de contenido.

Ejemplo real

Procesar 50.000 productos con Batch API

Imagina un ecommerce que necesita categorizar decenas de miles de productos.

01

Exportas los productos desde la base de datos.

02

Generas una línea JSONL por producto.

03

Creas el batch.

04

Esperas a que finalice.

05

Importas los resultados utilizando custom_id.

Usage

Medir tokens utilizados por un batch

El objeto Batch actual puede incluir información agregada de uso.

usage

Uso agregado del trabajo

Para batches creados desde septiembre de 2025, OpenAI puede incluir métricas agregadas de input, output y total de tokens en el objeto Batch.

Escalamiento

Batch queue limits

Batch utiliza límites específicos separados de las solicitudes interactivas normales.

Batch queue

El límite depende del modelo y usage tier

Las fichas de modelos publican un Batch queue limit que puede variar considerablemente según tu tier.

No confundas RPM con Batch queue

Para workloads Batch, revisa específicamente la capacidad de cola publicada para el modelo que estés utilizando.

Ver límites OpenAI API →
Publicidad
Buenas prácticas

Cómo diseñar un buen workflow con Batch API OpenAI

01

Genera un custom_id único y estable para cada request.

02

Valida el JSONL antes de subirlo.

03

Guarda batch_id e input_file_id en tu base de datos.

04

Procesa por separado resultados correctos y errores.

05

Reintenta solo requests fallidas.

06

Utiliza Batch únicamente cuando el usuario no necesita una respuesta inmediata.

Decisión

Cuándo conviene usar Batch API

Sí

Trabajo offline

Miles de tareas que pueden esperar varias horas.

Sí

Procesamiento nocturno

Jobs recurrentes que no bloquean al usuario.

Sí

Grandes migraciones

Clasificación, embeddings o transformación de datasets.

No recomendado

Cuándo no deberías utilizar Batch API

Chat

Conversaciones en vivo

El usuario espera una respuesta en segundos.

Realtime

Procesamiento interactivo

Una aplicación necesita reaccionar inmediatamente.

Dependency

Tareas encadenadas inmediatas

El siguiente paso depende del resultado de la request actual.

Producción

Buenas prácticas de seguridad con Batch API

01

No incluyas secretos innecesarios en el JSONL.

02

Valida los datos antes de generar el batch.

03

Controla quién puede crear trabajos masivos.

04

Guarda logs de creación y resultados.

05

Valida outputs antes de escribirlos automáticamente en sistemas críticos.

Fuente oficial

Documentación oficial de Batch API OpenAI

Los endpoints, modelos, precios y límites pueden evolucionar.

OpenAI Developers

Batch API

Comprueba creación de batches, archivos JSONL, estados, output files, límites y pricing vigente.

Consultar documentación oficial →
Publicidad
Sigue aprendiendo

Guías relacionadas con Batch API OpenAI

Continúa aprendiendo a optimizar costos, rendimiento y escala.

Publicidad
Preguntas frecuentes

FAQ sobre Batch API OpenAI

Respuestas sobre JSONL, precios, duración, errores y resultados.

Batch API OpenAI permite procesar grandes conjuntos de solicitudes de forma asíncrona mediante archivos JSONL.

La ventana de procesamiento soportada actualmente es de hasta 24 horas, aunque el batch puede completarse antes.

Sí. En los modelos compatibles, Batch se factura actualmente al 50% de la tarifa Standard.

Los archivos de entrada deben utilizar formato JSONL, con una solicitud por línea.

OpenAI permite actualmente archivos Batch JSONL de hasta 200 MB.

Sí. /v1/responses está entre los endpoints actualmente admitidos por Batch API.

Es un identificador asignado por tu aplicación para relacionar una request del archivo de entrada con su resultado.

Es el ID del archivo que contiene los resultados correctamente procesados del batch.

Es el ID del archivo que contiene resultados correspondientes a solicitudes que produjeron errores.

No es su uso ideal. Batch API está diseñada para trabajos asíncronos que pueden esperar, no para conversaciones interactivas.

Publicidad
Siguiente guía

Continúa con Background Mode en OpenAI API

Ya sabes cómo procesar miles de solicitudes de forma asíncrona. El siguiente paso es aprender cómo ejecutar una respuesta individual larga en segundo plano mediante Responses API.

Ver Background Mode →
Carrito de compra
Scroll al inicio