Portada » Structured Outputs OpenAI API: JSON Schema con GPT
OpenAI · JSON Schema · Structured Outputs

Structured Outputs OpenAI API: respuestas JSON con esquema

Structured Outputs OpenAI API permite hacer que la respuesta de un modelo compatible siga un JSON Schema definido por tu aplicación. Esto facilita crear APIs, formularios, flujos de extracción, agentes y sistemas backend que necesitan datos con una estructura predecible en lugar de texto libre.

JSON Schema Strict mode Responses API
Respuesta rápida

¿Qué es Structured Outputs OpenAI API?

Structured Outputs OpenAI API es una capacidad que obliga al modelo a responder siguiendo una estructura JSON definida por el desarrollador. En vez de recibir texto libre o simplemente JSON válido, puedes especificar campos, tipos y restricciones mediante JSON Schema.

Capacidades

Qué permite hacer Structured Outputs OpenAI API

Structured Outputs facilita integrar modelos con aplicaciones que esperan datos estructurados.

JSON

Generar JSON estructurado

El modelo produce una salida compatible con un esquema definido.

SCH

Usar JSON Schema

Define campos, tipos y relaciones esperadas.

API

Integrar backends

Facilita consumir la respuesta directamente desde aplicaciones.

EXT

Extraer datos

Convierte contenido no estructurado en objetos predecibles.

UI

Generar interfaces

Permite producir estructuras que luego una aplicación puede renderizar.

AG

Agentes

Facilita pasar información estructurada entre pasos de un workflow.

Publicidad
Flujo

Cómo funciona Structured Outputs en OpenAI API

Tu aplicación define la estructura, el modelo genera una respuesta compatible y tu backend puede procesarla.

01 · SCHEMA

Defines el esquema

Especificas campos, tipos y restricciones.

02 · MODEL

El modelo responde

La salida se genera siguiendo la estructura indicada.

03 · APP

Tu aplicación procesa

El JSON puede utilizarse directamente en el workflow.

Publicidad
Diferencia clave

Structured Outputs vs JSON Mode

Ambos pueden producir JSON, pero no ofrecen el mismo nivel de garantía estructural.

Aspecto Structured Outputs JSON Mode
JSON válido Sí Sí
Respeta un schema Sí No garantiza un schema concreto
Uso recomendado Aplicaciones con estructura definida Compatibilidad con JSON simple
API moderna json_schema json_object
OpenAI recomienda json_schema

En la referencia actual de Responses API, json_object se mantiene como JSON mode antiguo, mientras json_schema es la opción preferida para modelos compatibles.

Publicidad
Responses API

Ejemplo de Structured Outputs OpenAI API

En Responses API, puedes indicar que el formato de salida utilice JSON Schema.

JSON

Respuesta estructurada

{
  "model": "gpt-5.6-sol",
  "input": "Extrae el nombre, email y tipo de cliente.",
  "text": {
    "format": {
      "type": "json_schema",
      "name": "cliente",
      "schema": {
        "type": "object",
        "properties": {
          "nombre": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "tipo": {
            "type": "string"
          }
        },
        "required": [
          "nombre",
          "email",
          "tipo"
        ],
        "additionalProperties": false
      },
      "strict": true
    }
  }
}
Revisa la sintaxis vigente

Responses API evoluciona, por lo que conviene comprobar siempre la referencia del SDK o endpoint que estés utilizando.

JSON Schema

Qué define un JSON Schema

El schema indica qué estructura debe tener la respuesta final.

Elemento Función
type Define el tipo de dato esperado
properties Define los campos del objeto
required Indica qué campos son obligatorios
enum Restringe un campo a valores concretos
items Define la estructura de elementos de un array
additionalProperties Controla campos adicionales no definidos
Strict mode

Qué significa strict: true

Structured Outputs está diseñado para que la respuesta respete el schema proporcionado.

strict

Adherencia al esquema

Cuando utilizas strict: true, el objetivo es que el output coincida con la estructura definida por el desarrollador.

Estructura no significa verdad

Un objeto puede respetar perfectamente el schema y aun contener un valor factual incorrecto. Debes validar también la calidad de los datos.

Resultado

Ejemplo de output estructurado

Una respuesta compatible con el schema anterior podría verse así.

JSON

Objeto procesable

{
  "nombre": "Empresa Ejemplo",
  "email": "contacto@ejemplo.cl",
  "tipo": "empresa"
}
Function Calling

Structured Outputs también funciona con funciones

OpenAI introdujo Structured Outputs tanto para respuestas directas como para Function Calling.

Function schema

strict dentro de una función

{
  "type": "function",
  "name": "crear_cliente",
  "strict": true,
  "parameters": {
    "type": "object",
    "properties": {
      "nombre": {
        "type": "string"
      },
      "email": {
        "type": "string"
      }
    },
    "required": [
      "nombre",
      "email"
    ],
    "additionalProperties": false
  }
}
Dos objetivos distintos

Usa Structured Outputs para estructurar una respuesta. Usa Function Calling cuando quieres que el modelo solicite una acción externa.

Ver Function Calling →
Publicidad
Comparativa

Structured Outputs vs Function Calling

Ambas tecnologías utilizan schemas, pero resuelven problemas distintos.

Aspecto Structured Outputs Function Calling
Objetivo Dar formato a la respuesta Solicitar una acción externa
Resultado JSON estructurado Argumentos de una función
Ejecución backend No necesariamente Sí
Schema Describe la respuesta Describe los argumentos
Extraction

Extraer datos con Structured Outputs OpenAI API

La extracción de información es uno de los casos más claros de Structured Outputs.

01

Extraer datos desde emails.

02

Convertir documentos en objetos JSON.

03

Clasificar solicitudes de usuarios.

04

Detectar entidades y campos concretos.

05

Generar datos para guardar en bases de datos.

Interfaces

Structured Outputs para generar interfaces

OpenAI también ha mostrado Structured Outputs como una base para generar interfaces dinámicas.

UI schema

La respuesta puede describir componentes

En lugar de pedir HTML libre, una aplicación puede definir un schema con componentes permitidos y renderizarlos posteriormente de forma controlada.

Agentes

Structured Outputs dentro de workflows agentic

Los agentes suelen intercambiar información entre múltiples pasos.

Step 1

Analizar

Un modelo interpreta la solicitud.

Step 2

Estructurar

Produce un objeto con campos definidos.

Step 3

Actuar

Otro componente consume esos datos.

Refusals

Qué ocurre si el modelo rechaza una solicitud

Structured Outputs no elimina los mecanismos de seguridad del modelo.

refusal

Una negativa puede ser diferente al schema esperado

OpenAI introdujo un indicador de rechazo para que las aplicaciones puedan detectar cuándo el modelo se negó a responder en lugar de producir el objeto estructurado.

Tu backend debe contemplarlo

No asumas que cada respuesta contendrá necesariamente el objeto de negocio que esperabas.

Errores

Una generación puede terminar antes de completar el schema

Structured Outputs mejora la adherencia al formato, pero una respuesta puede interrumpirse antes de finalizar.

01

Límite de tokens.

02

Condición de parada.

03

Error durante la generación.

04

Rechazo del modelo.

Function Calling

Structured Outputs y llamadas paralelas de funciones

OpenAI ha documentado una limitación importante cuando se combinan schemas estrictos con llamadas paralelas.

parallel_tool_calls

Desactívalas cuando necesites adherencia estricta

En escenarios donde necesitas que los argumentos respeten estrictamente el schema, OpenAI recomienda utilizar parallel_tool_calls: false.

Publicidad
Aplicaciones

Casos de uso de Structured Outputs OpenAI API

Structured Outputs encaja especialmente bien cuando el resultado debe ser consumido por software.

01

CRM: convertir mensajes en datos de clientes.

02

Ecommerce: clasificar productos y atributos.

03

Soporte: detectar categoría, prioridad y acción sugerida.

04

Documentos: extraer campos de contratos, facturas o formularios.

05

Agentes: pasar estados estructurados entre pasos.

06

Apps: producir datos directamente consumibles por frontend o backend.

Ejemplo práctico

Clasificar una solicitud de soporte

Un schema puede limitar categorías y prioridades aceptadas.

Schema

Salida controlada

{
  "type": "object",
  "properties": {
    "categoria": {
      "type": "string",
      "enum": [
        "facturacion",
        "soporte_tecnico",
        "ventas",
        "otro"
      ]
    },
    "prioridad": {
      "type": "string",
      "enum": [
        "baja",
        "media",
        "alta"
      ]
    },
    "resumen": {
      "type": "string"
    }
  },
  "required": [
    "categoria",
    "prioridad",
    "resumen"
  ],
  "additionalProperties": false
}
Validación

El schema no sustituye la validación de negocio

Structured Outputs controla la forma de la respuesta, pero tu aplicación sigue siendo responsable de validar reglas reales.

Schema

Valida estructura

Tipos, campos y valores permitidos.

Backend

Valida negocio

Usuarios, permisos, stock, fechas, precios y reglas reales.

Compatibilidad

Modelos compatibles con Structured Outputs

La compatibilidad depende del modelo y del tipo de uso.

Model support

Comprueba la ficha del modelo

OpenAI distingue entre Structured Outputs utilizados como formato de respuesta y los utilizados dentro de Function Calling. Antes de producción, confirma que el modelo elegido soporta la modalidad necesaria.

Comparar modelos →
Seguridad

Buenas prácticas con Structured Outputs OpenAI API

Un JSON bien formado no debe considerarse automáticamente confiable.

01

Valida los datos en el backend.

02

No utilices valores del modelo directamente para operaciones críticas.

03

Usa enums cuando el dominio tenga opciones cerradas.

04

Utiliza additionalProperties: false cuando quieras limitar campos extras.

05

Contempla refusals y respuestas incompletas.

06

Registra errores de validación para mejorar prompts y schemas.

Publicidad
Decisión

Cuándo conviene utilizar Structured Outputs

Structured Outputs es especialmente útil cuando otra parte del sistema consume la respuesta.

01

Cuando necesitas JSON predecible.

02

Cuando un backend procesa automáticamente la respuesta.

03

Cuando quieres extraer campos concretos.

04

Cuando necesitas enums, arrays u objetos anidados.

05

Cuando varios pasos de un agente deben intercambiar datos estructurados.

Simplicidad

Cuándo no necesitas Structured Outputs

No todas las respuestas necesitan convertirse en objetos JSON.

Texto libre

Contenido editorial

Artículos, explicaciones o conversaciones pueden funcionar mejor como texto.

Tool call

Acción externa

Si necesitas ejecutar una acción, Function Calling puede ser la opción adecuada.

Costos

Costos de Structured Outputs OpenAI API

Structured Outputs forma parte de la generación realizada por el modelo.

Tokens

El schema también forma parte de la solicitud

Schemas grandes pueden aumentar el contexto que debe procesar el modelo. Por eso conviene mantenerlos claros y tan simples como permita el caso de uso.

Compara costo y confiabilidad

Structured Outputs puede reducir lógica de reintentos y parsing manual, algo que también tiene valor operativo.

Ver precios OpenAI API →
Escalamiento

Structured Outputs y los límites de OpenAI API

El uso de respuestas estructuradas continúa sujeto a los límites del modelo y del proyecto.

Production

Planifica schemas y salidas grandes

Objetos extensos, listas largas o respuestas muy detalladas pueden consumir más tokens de salida.

Ver límites OpenAI API →
Fuente oficial

Documentación oficial de Structured Outputs OpenAI API

Structured Outputs forma parte de las capacidades para generación estructurada de OpenAI API.

OpenAI Developers

JSON Schema y Responses API

Consulta formatos de respuesta, JSON Schema, strict mode y compatibilidad actual.

Consultar documentación oficial →
Publicidad
Sigue aprendiendo

Guías relacionadas con Structured Outputs OpenAI API

Continúa explorando APIs, herramientas y capacidades de OpenAI.

Publicidad
Preguntas frecuentes

FAQ sobre Structured Outputs OpenAI API

Respuestas sobre JSON Schema, strict mode, JSON mode, funciones y Responses API.

Structured Outputs OpenAI API permite hacer que la respuesta siga un JSON Schema definido por el desarrollador.

Su objetivo es producir una salida JSON que respete el schema proporcionado cuando se utiliza la configuración compatible.

No. JSON Mode garantiza principalmente JSON válido, mientras Structured Outputs permite exigir una estructura definida mediante JSON Schema.

Indica que la salida debe adherirse al schema proporcionado dentro de las capacidades soportadas.

Sí. OpenAI permite usar strict mode dentro de definiciones de funciones para obtener argumentos compatibles con el schema.

No. Una respuesta puede respetar perfectamente la estructura y aun contener información incorrecta.

La aplicación debe contemplar un posible rechazo en lugar del objeto estructurado esperado.

Sí. Es uno de los casos de uso más importantes: convertir texto o documentos en campos estructurados.

Sí, siempre que la característica de JSON Schema utilizada sea compatible con la implementación actual del modelo y API.

No. Tu aplicación debe seguir validando permisos, existencia de recursos, reglas de negocio y cualquier condición que dependa de datos reales.

Publicidad
Siguiente guía

Continúa con Prompt Caching en OpenAI API

Ya sabes cómo generar respuestas siguiendo un schema. El siguiente paso es aprender cómo reducir costo y latencia cuando una aplicación reutiliza grandes partes del mismo contexto.

Ver Prompt Caching →
Carrito de compra
Scroll al inicio