Skip to main content
POST
https://upload.lazydata.com.br
/
storage
Armazenamento
curl --request POST \
  --url https://upload.lazydata.com.br/storage \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-LazyData-Upload-Signature: <x-lazydata-upload-signature>' \
  --data '{}'
{
  "code": 200,
  "message": "Arquivo enviado.",
  "result": {
    "id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
    "type": "file",
    "name": "contrato.pdf",
    "parent_id": "54d8a266-4e21-4a9a-9c15-b4b93bc11c6e",
    "extension": "pdf",
    "content_type": "application/pdf",
    "size": 24576,
    "status": "uploaded",
    "uploaded_at": "2026-06-22T12:00:00+00:00",
    "created_at": "2026-06-22T11:59:40+00:00",
    "updated_at": "2026-06-22T12:00:00+00:00"
  }
}
Envia um arquivo para o armazenamento da conta usando o serviço de upload da Lazy Data. Este endpoint não usa a URL base da API principal. A chamada deve ser feita para:
https://upload.lazydata.com.br/storage
Esta requisição não usa Authorization: Bearer. A autenticação do upload é feita pelo header X-LazyData-Upload-Signature, retornado na etapa de preparação do upload.

Fluxo

1

Solicite a assinatura

Informe o nome do arquivo e a pasta de destino para receber upload_url, signature, signature_expires_at, max_size e os metadados iniciais do arquivo.
2

Envie o arquivo

Faça POST para upload_url, enviando o arquivo em multipart/form-data e a assinatura no header X-LazyData-Upload-Signature.
3

Receba o registro do arquivo

Após o envio, a API salva o arquivo no armazenamento e retorna os metadados finais do item.
4

Use o arquivo no storage

Depois de enviado, o arquivo pode ser listado, baixado, renomeado ou excluído conforme as permissões da conta.

Requisição

X-LazyData-Upload-Signature
string
required
Assinatura temporária de upload retornada na preparação do envio para armazenamento.
file
file
required
Arquivo enviado em multipart/form-data. O nome do campo deve ser exatamente file.
O arquivo enviado precisa ter o mesmo nome usado para gerar a assinatura. Se o nome for diferente, o upload será recusado.

Exemplo com cURL

curl --request POST \
  --url "https://upload.lazydata.com.br/storage" \
  --header "X-LazyData-Upload-Signature: <assinatura_de_upload>" \
  --form "file=@./contrato.pdf"

Exemplo com JavaScript

const formData = new FormData();
formData.append("file", file, file.name);

const response = await fetch("https://upload.lazydata.com.br/storage", {
  method: "POST",
  headers: {
    "X-LazyData-Upload-Signature": uploadSignature
  },
  body: formData
});

const data = await response.json();
console.log(data);
Não defina manualmente o header Content-Type ao usar FormData no navegador. O próprio navegador adiciona o boundary correto do multipart/form-data.

Formatos aceitos

O armazenamento aceita diferentes tipos de arquivo, desde que o upload respeite o tamanho máximo, a assinatura gerada e os limites de espaço da conta. O tipo MIME é normalizado a partir do arquivo enviado. Quando o navegador envia application/octet-stream, a API tenta inferir o tipo com base no nome do arquivo.

Limites

ItemRegra
Tamanho máximo por arquivoAté 1024 MB.
Campo do arquivoDeve ser file.
AssinaturaDeve estar ativa e corresponder ao arquivo preparado.
Nome do arquivoDeve ser o mesmo usado na preparação do upload.
Espaço disponívelO arquivo precisa caber no limite de armazenamento da conta.
Nome duplicadoNão é permitido manter dois arquivos com o mesmo nome na mesma pasta.

Respostas

{
  "code": 200,
  "message": "Arquivo enviado.",
  "result": {
    "id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
    "type": "file",
    "name": "contrato.pdf",
    "parent_id": "54d8a266-4e21-4a9a-9c15-b4b93bc11c6e",
    "extension": "pdf",
    "content_type": "application/pdf",
    "size": 24576,
    "status": "uploaded",
    "uploaded_at": "2026-06-22T12:00:00+00:00",
    "created_at": "2026-06-22T11:59:40+00:00",
    "updated_at": "2026-06-22T12:00:00+00:00"
  }
}

Estrutura da resposta 200

code
integer
required
Código da resposta. 200 indica que o arquivo foi recebido e salvo no armazenamento.
message
string
required
Mensagem descritiva da operação.
result
object
required
Metadados finais do arquivo armazenado.

Estrutura de result

CampoTipoDescrição
idstringIdentificador do arquivo no armazenamento.
typestringTipo do item. Para este endpoint, retorna file.
namestringNome do arquivo armazenado.
parent_idstring/nullIdentificador da pasta onde o arquivo foi salvo. Quando null, o arquivo foi salvo na raiz.
extensionstring/nullExtensão identificada a partir do nome do arquivo.
content_typestringTipo MIME identificado para o arquivo.
sizeintegerTamanho final do arquivo em bytes.
statusstringStatus atual do arquivo. Após upload bem-sucedido, retorna uploaded.
uploaded_atstringData de upload em ISO 8601.
created_atstringData de criação do registro do arquivo em ISO 8601.
updated_atstringData da última atualização do registro em ISO 8601.

Status do arquivo

StatusDescrição
waiting_uploadRegistro criado e aguardando o envio do arquivo.
receiving_uploadUpload em andamento.
uploadedArquivo recebido e salvo com sucesso.
failedO upload falhou ou foi recusado.

Erros comuns

Status HTTPMotivo
400Arquivo vazio, nome divergente ou payload inválido.
401Assinatura ausente, inválida ou expirada.
403Armazenamento desabilitado, limite excedido ou espaço insuficiente.
404Arquivo vinculado à assinatura não foi localizado ou já foi enviado.
409O arquivo não está disponível para upload no momento.
413Arquivo acima do limite permitido.
500Falha inesperada ao receber ou salvar o arquivo.

Regras importantes

  • Use sempre https://upload.lazydata.com.br/storage.
  • A assinatura é temporária e deve ser usada apenas para o arquivo preparado.
  • O upload deve ser feito com multipart/form-data.
  • O campo do arquivo deve se chamar file.
  • O nome do arquivo precisa ser igual ao informado na etapa de assinatura.
  • O arquivo é contabilizado no espaço de armazenamento da conta após o upload.
  • Se o upload falhar, gere uma nova assinatura antes de tentar novamente.
  • Para enviar para uma pasta específica, informe a pasta na etapa de preparação da assinatura.