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 entrada | API Responses | Chat Completions |
|---|---|---|
Dados do arquivo codificados em Base64 (file_data) | Tipos de arquivo compatíveis listados abaixo | Apenas PDF |
ID do arquivo enviado (file_id) | Tipos de arquivo compatíveis listados abaixo | Apenas PDF |
URL externa do arquivo (file_url) | Tipos de arquivo compatíveis listados abaixo | Nã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-4oe 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,.txte 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.
| Categoria | Extensõ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.
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"
}
]
}
]
}'Chat Completions não oferece suporte a URLs de arquivos. Use a Responses API para essa opção.
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.
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?"
}
]
}
]
}'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/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6-astra",
"messages": [
{
"role": "user",
"content": [
{
"type": "file",
"file": {
"file_id": "file-6F2ksmvXxt4VdoqmHRw6kL"
}
},
{
"type": "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.
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?"
}
]
}
]
}'curl "https://api.openai.com/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-6-astra",
"messages": [
{
"role": "user",
"content": [
{
"type": "file",
"file": {
"filename": "draconomicon.pdf",
"file_data": "...base64 encoded bytes here..."
}
},
{
"type": "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
detailcomoauto(o padrão),lowouhighpara 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-4oe modelos posteriores. - Finalidade do upload de arquivos: você pode fazer o upload de arquivos com qualquer finalidade compatível, mas use
user_datapara 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.
| Categoria | Extensões | Tipos MIME |
|---|---|---|
| Arquivos PDF | Arquivos PDF (.pdf) | application/pdf |
| Planilhas | Planilhas do Excel (.xla, .xlb, .xlc, .xlm, .xls, .xlsx, .xlt, .xlw) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel |
| Planilhas | CSV / TSV / IIF (.csv, .tsv, .iif), Google Sheets | text/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet |
| Documentos formatados | Documentos Word/ODT/RTF (.doc, .docx, .dot, .odt, .rtf), Pages, Google Docs | 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 |
| Apresentações | Slides do PowerPoint (.pot, .ppa, .pps, .ppt, .pptx, .pwz, .wiz), Keynote, Google Slides | application/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ódigo | Formatos 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: