Skip to content

Baixa um arquivo (link assinado)

POST/api/downloads/files/{fileId}/download

Auth
Requires a token
X-CommunityId
X-CommunityId Send the X-CommunityId of the community the operation happens in.
Endpoint descriptions come straight from the API specification and are in Portuguese for now. The interface around them is translated.

Confere o acesso e devolve `{ url, expiresAt, name, mimeType, size }`: link do S3 válido por **5 minutos**, gerado a cada pedido, `attachment` com o nome original. Quem recebe o link o abre até ele vencer. **Nunca grave nem registre a URL**.

Quem baixa: a equipe (owner, admin, moderador, financeiro) e o autor sempre, sem contar; os demais, se o item está publicado e aprovado, a pessoa vê o space e o produto do item é livre (rascunho, inativo ou preço 0 sem estoque), ou há compra ativa (não reembolsada nem expirada), ou plano que inclui o produto, ou ela já baixou antes (o item que passou a ter preço não tira o acesso de quem já tinha). Sem acesso: 403 com `data.productId`, `price` e `soldOut` para a tela mostrar "Comprar". Cada download de membro vira um registro (contadores da equipe); no máximo 120 por hora por pessoa.

Se o item tem `stampPdf` e o arquivo é PDF, quem não é da equipe recebe uma cópia carimbada ("Baixado por {e-mail} em {data e hora}", fuso da comunidade, idioma de quem baixa) e `stamped: true`. Acima de 25 MB, criptografado ou corrompido: o original, `stamped: false`.

Parameters

NameInTypeDescription
fileIdrequiredpathstring (uuid)

Headers

NameTypeDescription
X-CommunityIdoptionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Request body application/json

The specification does not declare the fields of this body (a multipart upload, for example). See the topic guide.

Responses

StatusDescription
200Link assinado.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
429Muitos downloads em pouco tempo.
500Erro interno do servidor.

curl example

curl -X POST "https://api.memberfy.net/api/downloads/files/<fileId>/download" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{}'