For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Arquivos de entrada

Saiba como usar arquivos como entradas na API da OpenAI.

O suporte a arquivos de entrada depende do endpoint da API. A API Responses aceita os tipos de arquivo listados abaixo como itens input_file. O Chat Completions aceita apenas arquivos PDF como partes de conteúdo do tipo file.

Método de entradaAPI ResponsesChat Completions
Dados do arquivo codificados em Base64 (file_data)Tipos de arquivo compatíveis listados abaixoApenas PDF
ID do arquivo enviado (file_id)Tipos de arquivo compatíveis listados abaixoApenas PDF
URL externa do arquivo (file_url)Tipos de arquivo compatíveis listados abaixoNão compatível

Use a API Responses para arquivos de entrada que não sejam PDF. Para usar texto de um arquivo no Chat Completions, leia o arquivo no seu aplicativo e envie seu conteúdo como uma parte de conteúdo do tipo text.

Como funciona

Na API Responses, o processamento de input_file depende do tipo de arquivo:

  • Arquivos PDF: em modelos com capacidades de visão, como gpt-4o e modelos posteriores, a API extrai tanto o texto quanto as imagens das páginas e envia ambos ao modelo.
  • Documentos e arquivos de texto em formatos diferentes de PDF (por exemplo, .docx, .pptx, .txt e arquivos de código): a API extrai apenas o texto.
  • Arquivos de planilha (por exemplo, .xlsx, .csv, .tsv): a API executa um fluxo de enriquecimento específico para planilhas (descrito abaixo).

Use estas ferramentas relacionadas quando forem mais adequadas à sua tarefa:

  • Use a Pesquisa de arquivos para recuperar informações de arquivos grandes em vez de passá-los diretamente como input_file.
  • Use o Shell hospedado para tarefas com uso intenso de planilhas que exigem análises detalhadas, como agregações, junções, criação de gráficos ou cálculos personalizados.

Limitações de imagens e gráficos em arquivos que não são PDF

Para arquivos que não são PDF, a API Responses não extrai imagens ou gráficos incorporados para o contexto do modelo.

Para preservar a fidelidade de gráficos e diagramas, primeiro converta o arquivo em PDF e depois envie o PDF como input_file.

Como funciona o enriquecimento de planilhas

Para arquivos em formato de planilha (como .xlsx, .xls, .csv, .tsv e .iif), a API Responses usa um processo de enriquecimento específico para planilhas.

Em vez de passar planilhas inteiras ao modelo, a API processa até as primeiras 1.000 linhas de cada planilha e adiciona metadados de resumo e cabeçalho gerados pelo modelo, para que ele possa trabalhar com uma visão reduzida e estruturada dos dados.

Níveis de detalhe de PDF

Para entradas em PDF na Responses API, defina o campo opcional detail de um item input_file como auto, low ou high para controlar como a API processa as imagens das páginas. Se omitido, detail assume o valor padrão auto. Para GPT-5.6 e modelos posteriores, auto usa high; para modelos anteriores, usa low. Use low para consumir menos tokens de entrada ou high para obter mais detalhes visuais, como em gráficos densos, letras pequenas ou diagramas.

A configuração detail afeta apenas o processamento das imagens das páginas do PDF. O texto extraído do PDF continua sendo incluído. Os arquivos de entrada de Chat Completions não oferecem suporte a detail.

Um corpo mínimo de requisição à Responses API com nível de detalhe alto definido explicitamente fica assim:

{
  "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 arquivo aceitos

A tabela a seguir lista os tipos de arquivo comuns aceitos pela API Responses como itens input_file. A lista completa de extensões e tipos MIME aparece mais adiante nesta página. O Chat Completions aceita apenas .pdf (application/pdf), tanto em file_data quanto em file_id.

CategoriaExtensões comuns
Arquivos PDF.pdf
Texto e código.txt, .md, .json, .html, .xml, arquivos de código
Documentos com formatação.doc, .docx, .rtf, .odt
Apresentações.ppt, .pptx
Planilhas.csv, .xls, .xlsx

URLs de arquivos

Você pode fornecer arquivos de entrada por meio de URLs externas.

Use uma URL de arquivo 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"
                    }
                ]
            }
        ]
    }'

Upload de arquivos

O exemplo a seguir faz o upload de um arquivo com a Files API e depois referencia o ID desse arquivo em uma requisição ao modelo.

Faça o upload de um arquivo
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?"
                    }
                ]
            }
        ]
    }'

Arquivos codificados em Base64

Você também pode enviar arquivos de entrada como dados de arquivo codificados em Base64.

Envie um arquivo codificado em 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?"
                    }
                ]
            }
        ]
    }'

Considerações de uso

Lembre-se destas restrições ao usar arquivos de entrada:

  • Uso de tokens: o processamento de PDFs inclui no contexto tanto o texto extraído quanto as imagens das páginas, o que pode aumentar o uso de tokens. Na Responses API, defina detail como auto (o padrão), low ou high para controlar a quantidade de detalhes visuais das imagens das páginas do PDF. Antes de implantar em escala, avalie os preços e as implicações para o uso de tokens. Saiba mais sobre preços.
  • Limites de tamanho de arquivo: uma única requisição pode incluir mais de um arquivo, mas cada arquivo deve ter menos de 50 MB. O limite total para todos os arquivos da requisição é de 50 MB.
  • Modelos compatíveis: o processamento de PDFs que inclui texto e imagens das páginas exige modelos com capacidades de visão, como gpt-4o e modelos posteriores.
  • Finalidade do upload de arquivos: você pode fazer o upload de arquivos com qualquer finalidade compatível, mas use user_data para arquivos que pretende passar como entradas do modelo.

Lista completa de tipos de arquivo aceitos

Esta lista se aplica à API Responses. O Chat Completions aceita apenas .pdf (application/pdf), tanto em file_data quanto em file_id.

CategoriaExtensõesTipos MIME
Arquivos PDFArquivos PDF (.pdf)application/pdf
PlanilhasPlanilhas do Excel (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw)application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
PlanilhasCSV / TSV / IIF (.csv, .tsv, .iif), Google Sheetstext/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet
Documentos formatadosDocumentos 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
ApresentaçõesSlides do 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 e 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 passos

A seguir, você pode explorar um destes recursos: