For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal
Theme

Archivos de entrada

Aprende a usar archivos como entrada en la API de OpenAI.

La compatibilidad con archivos de entrada depende del punto de acceso de la API. La API de Responses acepta los tipos de archivo que se indican más adelante como elementos input_file. Chat Completions solo acepta archivos PDF como partes de contenido de tipo file.

Método de entrada API de Responses Chat Completions
Datos del archivo codificados en Base64 (file_data) Tipos de archivo compatibles que se indican más adelante Solo PDF
ID del archivo cargado (file_id) Tipos de archivo compatibles que se indican más adelante Solo PDF
URL externa del archivo (file_url) Tipos de archivo compatibles que se indican más adelante No compatible

Usa la API de Responses para enviar archivos de entrada en formatos distintos de PDF. Para usar el texto de un archivo en Chat Completions, lee el archivo en tu aplicación y envía su contenido como una parte de contenido de tipo text.

Cómo funciona

En la API de Responses, el procesamiento de input_file depende del tipo de archivo:

  • Archivos PDF: con modelos que tienen capacidades de visión, como gpt-4o y los modelos posteriores, la API extrae tanto el texto como las imágenes de las páginas y envía ambos al modelo.
  • Documentos en formatos distintos de PDF y archivos de texto (por ejemplo, .docx, .pptx, .txt y archivos de código): la API extrae solo el texto.
  • Hojas de cálculo (por ejemplo, .xlsx, .csv y .tsv): la API aplica un proceso de enriquecimiento específico para hojas de cálculo que se describe más adelante.

Usa estas herramientas cuando se ajusten mejor a tu tarea:

  • Usa la búsqueda de archivos para recuperar información de archivos grandes en lugar de enviarlos directamente como input_file.
  • Usa la Terminal alojada en la nube para tareas que requieren un análisis detallado de hojas de cálculo, como calcular valores agregados, combinar tablas, crear gráficos o realizar cálculos personalizados.

Limitaciones de las imágenes y los gráficos en archivos que no son PDF

En los archivos que no son PDF, la API de Responses no extrae las imágenes ni los gráficos incrustados para incluirlos en el contexto del modelo.

Para conservar la fidelidad de los gráficos y diagramas, primero convierte el archivo a PDF y luego envía el PDF como input_file.

Cómo funciona el enriquecimiento de las hojas de cálculo

Para los archivos con estructura de hoja de cálculo (como .xlsx, .xls, .csv, .tsv y .iif), la API de Responses usa un proceso de enriquecimiento específico.

En lugar de enviar hojas enteras al modelo, la API analiza como máximo las primeras 1000 filas de cada hoja y agrega metadatos generados por el modelo que incluyen un resumen e información sobre los encabezados. Así, el modelo puede trabajar con una representación más compacta y estructurada de los datos.

Niveles de detalle para archivos PDF

Para los archivos PDF de entrada en la API de Responses, configura el campo opcional detail de un elemento input_file en auto, low o high para controlar cómo procesa la API las imágenes de las páginas. Si omites detail, el valor predeterminado es auto. En GPT-5.6 y los modelos posteriores, auto usa high. En los modelos anteriores, usa low. Usa low para consumir menos tokens de entrada o high si necesitas más detalle visual, por ejemplo, en gráficos con mucha información, texto pequeño o diagramas.

El ajuste detail solo afecta el procesamiento de las imágenes de las páginas del PDF. El texto extraído del PDF se incluye de todos modos. Los archivos de entrada de Chat Completions no admiten detail.

Este ejemplo mínimo muestra cómo especificar un nivel de detalle alto en el cuerpo de una solicitud a la API de Responses:

{
  "model": "gpt-4.1",
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_file",
          "filename": "document.pdf",
          "file_data": "data:application/pdf;base64,...",
          "detail": "high"
        },
        {
          "type": "input_text",
          "text": "Summarize this document."
        }
      ]
    }
  ]
}

Tipos de archivo admitidos

La siguiente tabla muestra los tipos de archivo más comunes que la API de Responses acepta como elementos input_file. Más adelante en esta página encontrarás la lista completa de extensiones y tipos MIME. Chat Completions solo admite .pdf (application/pdf) tanto para file_data como para file_id.

Categoría Extensiones comunes
Archivos PDF .pdf
Texto y código .txt, .md, .json, .html, .xml, archivos de código
Documentos con formato .doc, .docx, .rtf, .odt
Presentaciones .ppt, .pptx
Hojas de cálculo .csv, .xls, .xlsx

URL de archivos

Puedes proporcionar archivos de entrada mediante sus URL externas.

Usa la URL externa de un archivo
curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_text",
                        "text": "Analyze the letter and provide a summary of the key points."
                    },
                    {
                        "type": "input_file",
                        "file_url": "https://www.berkshirehathaway.com/letters/2024ltr.pdf"
                    }
                ]
            }
        ]
    }'

Carga de archivos

En el siguiente ejemplo se carga un archivo con la API de Files y luego se usa su ID en una solicitud al modelo.

Carga un archivo
curl https://api.openai.com/v1/files \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -F purpose="user_data" \
    -F file="@draconomicon.pdf"

curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_file",
                        "file_id": "file-6F2ksmvXxt4VdoqmHRw6kL"
                    },
                    {
                        "type": "input_text",
                        "text": "What is the first dragon in the book?"
                    }
                ]
            }
        ]
    }'

Archivos codificados en Base64

También puedes enviar archivos de entrada como datos codificados en Base64.

Envía un archivo codificado en Base64
curl "https://api.openai.com/v1/responses" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
        "model": "gpt-6-astra",
        "input": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "input_file",
                        "filename": "draconomicon.pdf",
                        "file_data": "...base64 encoded PDF bytes here..."
                    },
                    {
                        "type": "input_text",
                        "text": "What is the first dragon in the book?"
                    }
                ]
            }
        ]
    }'

Consideraciones de uso

Ten en cuenta estas restricciones al usar archivos de entrada:

  • Consumo de tokens: al procesar un PDF, la API incluye en el contexto tanto el texto extraído como las imágenes de las páginas, lo que puede aumentar el consumo de tokens. En la API de Responses, configura detail en auto (el valor predeterminado), low o high para controlar el nivel de detalle visual de las imágenes de las páginas del PDF. Antes de implementar a gran escala, revisa los precios y evalúa el consumo de tokens. Más información sobre los precios.
  • Límites de tamaño de los archivos: puedes incluir varios archivos en una misma solicitud, pero cada archivo debe tener un tamaño inferior a 50 MB. El tamaño total de los archivos de la solicitud no puede superar los 50 MB.
  • Modelos compatibles: para procesar tanto el texto como las imágenes de las páginas de un PDF, se necesita un modelo con capacidades de visión, como gpt-4o o un modelo posterior.
  • Propósito de la carga: puedes cargar archivos con cualquier propósito admitido, pero usa user_data para los archivos que planeas enviar como entrada al modelo.

Lista completa de tipos de archivo admitidos

Esta lista corresponde a la API de Responses. Chat Completions solo admite .pdf (application/pdf) tanto para file_data como para file_id.

Categoría Extensiones Tipos MIME
Archivos PDF Archivos PDF (.pdf) application/pdf
Hojas de cálculo Hojas de Excel (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
Hojas de cálculo CSV / TSV / IIF (.csv, .tsv, .iif), Hojas de cálculo de Google text/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet
Documentos con formato Documentos de Word, ODT y RTF (.doc, .docx, .dot, .odt, .rtf), Pages, Documentos de Google application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/msword, application/rtf, text/rtf, application/vnd.oasis.opendocument.text, application/vnd.apple.pages, application/vnd.google-apps.document, application/vnd.apple.iwork
Presentaciones Diapositivas de PowerPoint (.pot, .ppa, .pps, .ppt, .pptx, .pwz, .wiz), Keynote, Presentaciones de Google application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-powerpoint, application/vnd.apple.keynote, application/vnd.google-apps.presentation, application/vnd.apple.iwork
Texto y código Formatos de texto y código (.asm, .bat, .c, .cc, .conf, .cpp, .css, .cxx, .def, .dic, .eml, .h, .hh, .htm, .html, .ics, .ifb, .in, .js, .json, .ksh, .list, .log, .markdown, .md, .mht, .mhtml, .mime, .mjs, .nws, .pl, .py, .rst, .s, .sql, .srt, .text, .txt, .vcf, .vtt, .xml) application/javascript, application/typescript, text/xml, text/x-shellscript, text/x-rst, text/x-makefile, text/x-lisp, text/x-asm, text/vbscript, text/css, message/rfc822, application/x-sql, application/x-scala, application/x-rust, application/x-powershell, text/x-diff, text/x-patch, application/x-patch, text/plain, text/markdown, text/x-java, text/x-script.python, text/x-python, text/x-c, text/x-c++, text/x-golang, text/html, text/x-php, application/x-php, application/x-httpd-php, application/x-httpd-php-source, text/x-ruby, text/x-sh, text/x-bash, application/x-bash, text/x-zsh, text/x-tex, text/x-csharp, application/json, text/x-typescript, text/javascript, text/x-go, text/x-rust, text/x-scala, text/x-kotlin, text/x-swift, text/x-lua, text/x-r, text/x-R, text/x-julia, text/x-perl, text/x-objectivec, text/x-objectivec++, text/x-erlang, text/x-elixir, text/x-haskell, text/x-clojure, text/x-groovy, text/x-dart, text/x-awk, application/x-awk, text/jsx, text/tsx, text/x-handlebars, text/x-mustache, text/x-ejs, text/x-jinja2, text/x-liquid, text/x-erb, text/x-twig, text/x-pug, text/x-jade, text/x-tmpl, text/x-cmake, text/x-dockerfile, text/x-gradle, text/x-ini, text/x-properties, text/x-protobuf, application/x-protobuf, text/x-sql, text/x-sass, text/x-scss, text/x-less, text/x-hcl, text/x-terraform, application/x-terraform, text/x-toml, application/x-toml, application/graphql, application/x-graphql, text/x-graphql, application/x-ndjson, application/json5, application/x-json5, text/x-yaml, application/toml, application/x-yaml, application/yaml, text/x-astro, text/srt, application/x-subrip, text/x-subrip, text/vtt, text/x-vcard, text/calendar

Próximos pasos

Puedes explorar alguno de estos recursos: