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

Archivos de entrada

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

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

Método de entradaAPI ResponsesChat Completions
Datos del archivo codificados en Base64 (file_data)Tipos de archivo admitidos que se indican a continuaciónSolo PDF
ID del archivo cargado (file_id)Tipos de archivo admitidos que se indican a continuaciónSolo PDF
URL de un archivo externo (file_url)Tipos de archivo admitidos que se indican a continuaciónNo se admite

Usa la API Responses para archivos de entrada que no sean 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 Responses, el procesamiento de input_file depende del tipo de archivo:

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

Usa estas herramientas relacionadas cuando se adapten mejor a tu tarea:

  • Usa Búsqueda de archivos para recuperar información de archivos grandes en lugar de pasarlos directamente como input_file.
  • Usa Terminal alojada en la nube para tareas centradas en hojas de cálculo que requieran análisis detallados, como agregaciones, uniones, creación de gráficos o cálculos personalizados.

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

En el caso de los archivos que no son PDF, la API Responses no extrae las imágenes ni los gráficos integrados 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 hojas de cálculo

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

En lugar de pasar hojas completas al modelo, la API procesa hasta las primeras 1000 filas de cada hoja y agrega metadatos de resumen y encabezados generados por el modelo para que este pueda trabajar con una vista de los datos más reducida y estructurada.

Niveles de detalle de PDF

Para las entradas PDF en la API Responses, establece 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 se omite, detail toma el valor predeterminado auto. En GPT-5.6 y modelos posteriores, auto usa high; en modelos anteriores, usa low. Usa low para reducir la cantidad de tokens de entrada, o high para obtener más detalle visual, por ejemplo, en gráficos densos, letra pequeña o diagramas.

La configuración detail solo afecta al procesamiento de las imágenes de las páginas del PDF. El texto extraído del PDF se sigue incluyendo. Los archivos de entrada de Chat Completions no admiten detail.

Así se ve un cuerpo mínimo de solicitud a la API Responses con un nivel de detalle alto establecido explícitamente:

{
  "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 comunes que la API Responses acepta como elementos input_file. La lista completa de extensiones y tipos MIME aparece más adelante en esta página. Chat Completions solo admite .pdf (application/pdf), tanto para file_data como para file_id.

CategoríaExtensiones 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 enlaces a URL externas.

Usar una URL de archivo externa
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"
                    }
                ]
            }
        ]
    }'

Subir archivos

El siguiente ejemplo sube un archivo con la API Files y luego hace referencia a su ID de archivo en una solicitud al modelo.

Subir 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 de archivo codificados en Base64.

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

  • Uso de tokens: el procesamiento de PDF incluye tanto el texto extraído como las imágenes de las páginas en el contexto, lo que puede aumentar el uso de tokens. En la API Responses, establece 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 las implicaciones del uso de tokens. Más información sobre precios.
  • Límites de tamaño de archivo: una misma solicitud puede incluir más de un archivo, pero cada archivo debe tener un tamaño inferior a 50 MB. El límite combinado de todos los archivos de la solicitud es de 50 MB.
  • Modelos compatibles: el procesamiento de PDF que incluye texto e imágenes de las páginas requiere modelos con capacidades de visión, como gpt-4o y modelos posteriores.
  • Propósito de la carga de archivos: puedes subir archivos con cualquier propósito admitido, pero usa user_data para los archivos que planeas pasar como entradas al modelo.

Lista completa de tipos de archivo admitidos

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

CategoríaExtensionesTipos MIME
Archivos PDFArchivos PDF (.pdf)application/pdf
Hojas de cálculoHojas de Excel (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
Hojas de cálculoCSV / TSV / IIF (.csv, .tsv, .iif), Google Sheetstext/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet
Documentos con formatoDocumentos de Word/ODT/RTF (.doc, .docx, .dot, .odt, .rtf), Pages, Google Docsapplication/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
PresentacionesDiapositivas de PowerPoint (.pot, .ppa, .pps, .ppt, .pptx, .pwz, .wiz), Keynote, Google Slidesapplication/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ódigoFormatos de texto/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

A continuación, puedes explorar alguno de estos recursos: