O suporte a arquivos como entrada depende do endpoint da API. A API Responses aceita os tipos de arquivo listados abaixo como itens input_file. A API 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 listados abaixo | Somente PDF |
ID do arquivo enviado (file_id) |
Tipos de arquivo listados abaixo | Somente PDF |
URL externa do arquivo (file_url) |
Tipos de arquivo listados abaixo | Sem suporte |
Use a API Responses para enviar arquivos em formatos diferentes de PDF. Para usar o texto de um arquivo na API Chat Completions, leia o arquivo no seu aplicativo e envie o conteúdo como uma parte do tipo text.
Como funciona
Na API Responses, o processamento de um item input_file depende do tipo de arquivo.
- Arquivos PDF. Quando você usa um modelo com recursos de visão, como
gpt-4oou um modelo posterior, a API extrai o texto e 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,.csve.tsv). A API usa um processo específico para enriquecer os dados das planilhas, descrito abaixo.
Use estas ferramentas quando forem mais adequadas à sua tarefa.
- Use a Pesquisa em arquivos para recuperar informações de arquivos grandes sem precisar enviá-los diretamente como itens
input_file. - Use o Shell hospedado para tarefas que envolvem uso intensivo de planilhas e 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
Em arquivos de outros formatos, a API Responses não extrai imagens nem gráficos incorporados para incluí-los no contexto do modelo.
Para preservar a fidelidade dos gráficos e diagramas, converta primeiro o arquivo em PDF e depois envie o PDF como um item input_file.
Como funciona o enriquecimento de dados de planilhas
Para arquivos com estrutura de planilha (como .xlsx, .xls, .csv, .tsv e .iif), a API Responses usa um processo de enriquecimento específico para esse tipo de dado.
Em vez de enviar as planilhas inteiras ao modelo, a API lê no máximo as primeiras 1.000 linhas de cada aba e acrescenta um resumo e metadados de cabeçalho gerados pelo modelo. Assim, o modelo pode trabalhar com uma representação mais compacta e estruturada dos dados.
Níveis de detalhe para PDFs
Para controlar como a API Responses processa as imagens das páginas de um PDF, defina o campo opcional detail do item input_file como auto, low ou high. Se você omitir detail, a API usará auto por padrão. No GPT-5.6 e em modelos posteriores, auto usa high. Em modelos anteriores, usa low. Use low para consumir menos tokens de entrada ou high para obter mais detalhes visuais em elementos como gráficos densos, textos em letras pequenas ou diagramas.
A configuração detail afeta apenas o processamento das imagens das páginas do PDF. A API continua incluindo o texto extraído do PDF. A API Chat Completions não aceita detail em entradas de arquivo.
O exemplo abaixo mostra o corpo de uma requisição mínima à API Responses com o nível de detalhe definido explicitamente como alto.
{
"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 mostra os tipos de arquivo mais comuns que a API Responses aceita como itens input_file. A lista completa de extensões e tipos MIME aparece mais adiante nesta página. A API Chat Completions aceita apenas .pdf (application/pdf), tanto para file_data quanto para 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 como entrada usando 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"
}
]
}
]
}'A API Chat Completions não aceita URLs de arquivos. Para enviar um arquivo por URL, use a API Responses.
Envio de arquivos
O exemplo a seguir envia um arquivo com a API Files e depois usa o ID do 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 como entrada usando os dados do 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 sobre o uso
Ao usar arquivos como entrada, leve em conta as seguintes restrições.
- Consumo de tokens. Ao processar um PDF, a API inclui no contexto tanto o texto extraído quanto as imagens das páginas, o que pode aumentar o consumo de tokens. Na API Responses, defina
detailcomoauto(o padrão),lowouhighpara controlar o nível de detalhe visual das imagens das páginas do PDF. Antes de implantar em larga escala, avalie os preços e o impacto no consumo de tokens. Saiba mais sobre os preços. - Limites de tamanho dos arquivos. Uma requisição pode incluir vários arquivos, mas cada um deve ter menos de 50 MB. A soma dos tamanhos de todos os arquivos da requisição não pode ultrapassar 50 MB.
- Modelos compatíveis. Para processar tanto o texto quanto as imagens das páginas de um PDF, é necessário usar um modelo com recursos de visão, como
gpt-4oou um modelo posterior. - Finalidade do envio. Você pode enviar arquivos com qualquer finalidade aceita pela API, mas use
user_datapara arquivos que pretende fornecer como entrada ao modelo.
Lista completa dos tipos de arquivo aceitos
Esta lista se aplica à API Responses. A API Chat Completions aceita apenas .pdf (application/pdf), tanto para file_data quanto para 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), Planilhas Google |
text/csv, application/csv, text/tsv, text/x-iif, application/x-iif, application/vnd.google-apps.spreadsheet |
| Documentos com formatação | Documentos do Word, ODT e RTF (.doc, .docx, .dot, .odt, .rtf), Pages, Documentos 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 |
| Apresentações | Slides do PowerPoint (.pot, .ppa, .pps, .ppt, .pptx, .pwz, .wiz), Keynote, Apresentações 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 e código | Formatos de texto e 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
Para continuar, explore um destes recursos.