Skip to main content
Responder um campo do tipo Anexo(s) são dois passos, nunca um. O arquivo sobe primeiro, em uma chamada própria, e devolve um objeto. É esse objeto — não o arquivo — que vira a resposta do campo.
1

Suba o arquivo

Uma requisição multipart/form-data com o arquivo. A resposta traz o objeto que representa esse arquivo.
2

Grave o objeto como resposta

Uma chamada de gravação de respostas, passando o objeto recebido como answer do campo de anexo.
Não existe upload junto com a resposta. Mandar um caminho de arquivo, uma URL externa ou o conteúdo em base64 como answer não anexa nada.

O upload

O corpo é multipart/form-data com um único campo, chamado file. Exige estar autenticado. Qualquer outra extensão é recusada com 422. A lista é restrita de propósito: o mesmo serviço atende links públicos e links assinados, então não aceita arquivo executável nem marcação.
Resposta
O upload por si só não anexa o arquivo a lugar nenhum. Enquanto o objeto não for gravado como resposta, ele fica solto — só o registro do upload existe no histórico da conta.

Gravar como resposta

A resposta de um campo attachment é sempre uma lista de objetos de arquivo, mesmo quando é um só. Copie o objeto inteiro que veio do upload:
Ao gravar, a plataforma descarta os parâmetros da URL e guarda só o endereço permanente. Na leitura, ela devolve uma URL temporária nova, também de 24 horas. Por isso a url que você guardar em outro sistema para de funcionar no dia seguinte — leia de novo em vez de armazenar.
Mais de um arquivo no mesmo campo exige is_multiple: true na definição dele. Ver Criar e editar formulários pela API.
Arquivos anexados por campo de formulário aparecem também no botão Arquivos do cartão. Ver Conteúdo do projeto.

Quem responde de fora

Quem preenche o formulário sem estar logado não alcança o endpoint acima. Existem dois caminhos, com os mesmos limites de tamanho e extensão e o mesmo campo file:
Na publicação, o upload só funciona enquanto a publicação está no ar e dentro da janela de datas. Fora disso a resposta é 403 com message: "form_is_not_available".

Erros comuns

O campo do multipart não se chama file, ou a requisição foi enviada como JSON. Precisa ser multipart/form-data.
A extensão não está na lista. Converta o arquivo antes de subir — um .zip ou um .svg, por exemplo, não passam.
Acima de 97.650 KB. Vale conferir também o limite do seu próprio proxy ou gateway, que costuma ser mais baixo que o da plataforma.
A url é temporária, de 24 horas. Ela não é um endereço fixo: leia as respostas de novo para obter um link válido.

Próximos passos

Criar e editar formulários pela API

Como declarar o campo de anexo e o resto da estrutura.

Formulários dinâmicos e o pivot

Onde a resposta é gravada.