Upload e download de mídia
Uploads assinados e URLs temporárias para os resultados.
Uma URL HTTPS pública de imagem, vídeo ou áudio pode ser enviada diretamente no campo aceito pelo modelo. O envio e o commit abaixo só são necessários para arquivos locais. Baixe o resultado diretamente por output.assets[].url, sem enviar a chave de API. expiresAt costuma ser 20 minutos depois e nunca ultrapassa os 14 dias de retenção. Consulte novamente para renovar o link; download-url é opcional.
POST /api/v1/common/upload-url
PUT <uploadUrl>
POST /api/v1/files/{fileId}/commit
GET <output.assets[].url>Enviar Base64 pelo SDK
client.uploadBase64 aceita uma Data URI ou uma string Base64 com contentType e executa o fluxo existente de upload e commit. Passe a URI spicy:// retornada para input. O limite é de 10 MiB para imagens e 100 MiB para áudio e vídeo; limites menores do modelo continuam valendo. Esse método não envia Base64 diretamente para um campo de entrada do modelo.
Envie a entrada
POST /api/v1/common/upload-url retorna fileId e uploadUrl. Faça o PUT com o Content-Type indicado, chame depois POST /api/v1/files/{fileId}/commit e use somente a URI spicy:// retornada no input do modelo. Não use uploadUrl nem um caminho temporário do objeto como input.
O Content-Type deve coincidir com a assinatura. Valide também formato e tamanho no cliente. As URI pertencem à conta e não funcionam entre contas.
Baixe o resultado
Baixe o resultado diretamente por output.assets[].url, sem enviar a chave de API. expiresAt costuma ser 20 minutos depois e nunca ultrapassa os 14 dias de retenção. Consulte novamente para renovar o link; download-url é opcional.
Consulte o contrato OpenAPI 3.1 para ver a definição completa dos campos.
Documentação relacionada
O limite é 10 MiB para imagens e 100 MiB para áudio e vídeo. Respeite um max_size_mb menor no schema e o maxBytes do ticket. A duração máxima é 600 segundos. Commit valida o formato real e pode retornar durationSeconds como string decimal, width e height. No fluxo de upload gerenciado, use a referência spicy:// de um commit bem-sucedido, válida por um dia. Esse fluxo não é obrigatório para URLs públicas ou dados Base64 aceitos pelo campo.
image/jpeg · image/png · image/webp · image/gif · video/mp4 · video/webm · audio/mpeg · audio/wav

