ChinaModelAPI

Guias / DeepSeek Files API

Guia · verificado em 2026-08-21 com api-docs.deepseek.com

DeepSeek Files API (2026): Limites, uploads e file_id na prática

A DeepSeek lançou discretamente seu primeiro endpoint de arquivos em 21 de agosto de 2026, junto com o modelo de visão — o que torna obsoletos muitos guias antigos (vários ainda afirmam que a API da DeepSeek "não tem rota de upload de arquivos"). Este guia traz os limites verificados, exemplos de upload e referência em curl e Python, e quando usar arquivos em vez de base64.

Resposta direta

A DeepSeek Files API faz o upload de uma imagem uma única vez e retorna um file_id para você referenciar no chat. Faça o upload com purpose="user_data"; um arquivo pode ter até 64 MiB (janela de upload de 10 minutos); o armazenamento é de 25 GiB / 10.000 arquivos por usuário; retenção de 1 hora a 30 dias ou permanente sem expires_after. Referencie arquivos a partir de chats do deepseek-v4-flash-vision-exp via um bloco {"type":"file","file_id":...} — imagens via file_id podem ter 64 MiB em uma requisição, contra 32 MiB inline. No endpoint compatível com a Anthropic, adicione o cabeçalho anthropic-beta: files-api-2025-04-14.

Visão geral dos limites

LimiteValor (documentação oficial, 2026-08-21)
FormatosJPEG, PNG, GIF, WebP — detectado pelo conteúdo do arquivo, não pela extensão
Por arquivoMáx. 64 MiB; o upload deve ser concluído em até 10 minutos
Por usuário25 GiB de armazenamento; 10.000 arquivos armazenados
Retenção1 hora a 30 dias, ou permanente (omita expires_after)
FinalidadeDeve ser user_data (única finalidade suportada, também para filtragem de listas)
Tamanho na requisiçãoImagem via file_id de até 64 MiB por requisição; imagens inline em base64/URL limitadas a 32 MiB
Compatibilidade da APICompatível com OpenAI e compatível com Anthropic; o endpoint /messages da Anthropic precisa do cabeçalho beta files-api

Fonte: guia oficial da Files API, consultado em 2026-08-21.

Faça o upload uma vez, referencie para sempre (bem, até 30 dias)

Faça o upload de uma captura de tela e obtenha um file_id:

curl https://api.deepseek.com/files \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -F "purpose=user_data" \
  -F "file=@dashboard.png"

Depois, referencie-o em um chat do vision-exp — sem blob base64, sem novo upload em turnos subsequentes:

curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -d '{
    "model": "deepseek-v4-flash-vision-exp",
    "messages": [{
      "role": "user",
      "content": [
        {"type": "text", "text": "Which metric regressed in this dashboard?"},
        {"type": "file", "file_id": "file-api-xxxx"}
      ]
    }]
  }'

Python com o SDK da OpenAI — faça o upload e depois converse no chat:

from openai import OpenAI

client = OpenAI(api_key="YOUR_KEY", base_url="https://api.deepseek.com")

f = client.files.create(file=open("dashboard.png", "rb"), purpose="user_data")

resp = client.chat.completions.create(
    model="deepseek-v4-flash-vision-exp",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "Which metric regressed?"},
            {"type": "file", "file_id": f.id},
        ],
    }],
)
print(resp.choices[0].message.content)
  • Alternativa inline: um bloco de arquivo pode conter file_data (base64) em vez de file_id — campos mutuamente exclusivos; filename só pode acompanhar file_data.
  • Stack no estilo Anthropic: os mesmos blocos de arquivo funcionam em /messages com o cabeçalho anthropic-beta: files-api-2025-04-14.

Quando usar arquivos vs base64 vs URL

MétodoTamanho máximoMelhor para
base64 inline32 MiBImagens pontuais geradas no processo; mais simples de programar
URL externa32 MiB, URL de 8.192 caracteres, busca em 60sImagens hospedadas publicamente; sem nenhuma etapa de upload
Files API64 MiBLoops de capturas de tela de agentes, imagens de referência repetidas, qualquer conteúdo reutilizado entre turnos

FAQ

Li que a DeepSeek não tem endpoint de arquivos — isso é novo?

Correto até 21 de agosto de 2026 — guias antigos que descreviam "sem rota /v1/files, extraia o texto por conta própria" eram precisos na época e agora estão desatualizados. A Files API foi lançada junto com o modelo de visão.

Posso fazer upload de PDFs ou documentos?

Não — a Files API atualmente aceita apenas formatos de imagem (JPEG/PNG/GIF/WebP). Para PDFs, renderize as páginas como imagens no lado do cliente e faça o upload ou insira-as inline.

Quanto tempo os arquivos duram?

Entre 1 hora e 30 dias via expires_after, ou permanente se você o omitir — dentro da sua cota de 25 GiB / 10.000 arquivos.

Os arquivos funcionam com modelos que não são de visão?

Os blocos de arquivo são consumidos por deepseek-v4-flash-vision-exp; o V4-Flash/V4-Pro padrão continuam apenas para texto. Não aponte referências de arquivos para modelos de texto.

Relacionados