Skip to main content
POST
https://upload.lazydata.com.br
/
enrichment
Enriquecimento
curl --request POST \
  --url https://upload.lazydata.com.br/enrichment \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-LazyData-Upload-Signature: <x-lazydata-upload-signature>' \
  --data '{}'
{
  "code": 202,
  "message": "Arquivo recebido. O processamento foi iniciado.",
  "result": {
    "id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
    "type": "pf",
    "name": "Base de clientes",
    "status": "validating_file",
    "status_label": "Validando arquivo",
    "file": {
      "id": null,
      "signature": null,
      "name": "base-clientes.csv",
      "extension": "csv",
      "content_type": "text/csv",
      "size": 24576,
      "storage_key": null,
      "uploaded_at": null,
      "total_rows": null
    },
    "progress": {
      "stage": "validating_file",
      "stage_label": "Arquivo recebido. Preparando análise...",
      "percent": 50,
      "uploaded_bytes": 24576,
      "total_bytes": 24576,
      "total_rows": 0,
      "processed_rows": 0,
      "enriched_documents": 0,
      "invalid_documents": 0,
      "not_found_documents": 0,
      "failed_rows": 0
    }
  }
}
Envia o arquivo de entrada de um enriquecimento para 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/enrichment
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 enriquecimento.

Fluxo

1

Prepare o enriquecimento

Crie ou prepare o enriquecimento informando tipo, nome e metadados do arquivo.
2

Receba a assinatura

A resposta da preparação retorna upload_url, signature e signature_expires_at.
3

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.
4

Aguarde a análise

Após o upload, o arquivo entra em validação e análise para identificação de colunas, amostras e quantidade de registros.

Requisição

X-LazyData-Upload-Signature
string
required
Assinatura temporária de upload retornada na preparação do enriquecimento.
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 e extensão usados para gerar a assinatura. Se o nome ou extensão forem diferentes, o upload será recusado.

Exemplo com cURL

curl --request POST \
  --url "https://upload.lazydata.com.br/enrichment" \
  --header "X-LazyData-Upload-Signature: <assinatura_de_upload>" \
  --form "file=@./base-clientes.csv"

Exemplo com JavaScript

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

const response = await fetch("https://upload.lazydata.com.br/enrichment", {
  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

ExtensãoContent types aceitos
csvtext/csv, application/csv, text/plain, application/vnd.ms-excel, application/octet-stream
xlsapplication/vnd.ms-excel, application/octet-stream, application/x-ole-storage
xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/octet-stream

Limites

ItemRegra
Tamanho máximoAté 1024 MB.
Campo do arquivoDeve ser file.
AssinaturaDeve estar ativa e corresponder ao enriquecimento.
Nome do arquivoDeve ser o mesmo usado na preparação do upload.
ExtensãoDeve ser csv, xls ou xlsx.

Respostas

{
  "code": 202,
  "message": "Arquivo recebido. O processamento foi iniciado.",
  "result": {
    "id": "9fcb573b-7f62-4774-978b-07e89dfef5f2",
    "type": "pf",
    "name": "Base de clientes",
    "status": "validating_file",
    "status_label": "Validando arquivo",
    "file": {
      "id": null,
      "signature": null,
      "name": "base-clientes.csv",
      "extension": "csv",
      "content_type": "text/csv",
      "size": 24576,
      "storage_key": null,
      "uploaded_at": null,
      "total_rows": null
    },
    "progress": {
      "stage": "validating_file",
      "stage_label": "Arquivo recebido. Preparando análise...",
      "percent": 50,
      "uploaded_bytes": 24576,
      "total_bytes": 24576,
      "total_rows": 0,
      "processed_rows": 0,
      "enriched_documents": 0,
      "invalid_documents": 0,
      "not_found_documents": 0,
      "failed_rows": 0
    }
  }
}

Estrutura da resposta 202

code
integer
required
Código da resposta. 202 indica que o arquivo foi recebido e a validação/análise foi iniciada.
message
string
required
Mensagem descritiva da etapa iniciada.
result
object
required
Dados atuais do enriquecimento após o recebimento do arquivo.

Estrutura de result

CampoTipoDescrição
idstringIdentificador do enriquecimento.
typestringTipo do enriquecimento: pf ou pj.
namestringNome definido para o enriquecimento.
statusstringStatus atual do enriquecimento.
status_labelstringNome amigável do status, quando disponível.
fileobjectMetadados do arquivo enviado.
progressobjectAndamento da recepção e análise do arquivo.

Estrutura de result.file

CampoTipoDescrição
idstring/nullIdentificador definitivo do arquivo após validação e envio para storage.
signaturestring/nullAssinatura interna do arquivo após validação, quando disponível.
namestringNome do arquivo.
extensionstringExtensão do arquivo.
content_typestringTipo MIME detectado ou informado.
sizeintegerTamanho do arquivo em bytes.
storage_keystring/nullChave de armazenamento após envio definitivo para storage.
uploaded_atstring/nullData de upload definitivo após validação, em ISO 8601.
total_rowsinteger/nullTotal de linhas de dados identificado após análise.

Estrutura de result.progress

CampoTipoDescrição
stagestringEtapa atual do processamento.
stage_labelstringDescrição amigável da etapa atual.
percentintegerPercentual aproximado de andamento.
uploaded_bytesintegerBytes recebidos.
total_bytesintegerTamanho total recebido ou estimado.
total_rowsintegerTotal de linhas identificado após análise do arquivo.
processed_rowsintegerRegistros processados durante a execução do enriquecimento.
enriched_documentsintegerRegistros enriquecidos com sucesso durante a execução.
invalid_documentsintegerRegistros inválidos identificados durante a execução.
not_found_documentsintegerRegistros sem retorno encontrado durante a execução.
failed_rowsintegerRegistros que falharam durante a execução.

Status comuns após upload

StatusDescrição
validating_fileArquivo recebido e validação inicial em andamento.
analyzing_fileArquivo validado e amostra em análise.
uploading_storageArquivo validado e sendo salvo no storage.
waiting_configurationArquivo pronto para mapeamento e configuração do enriquecimento.
failedO arquivo falhou na validação ou análise.

Erros comuns

Status HTTPMotivo
400Arquivo vazio, nome divergente, extensão inválida ou tipo de conteúdo não permitido.
401Assinatura ausente, inválida ou expirada.
404Enriquecimento vinculado à assinatura não foi localizado.
409O enriquecimento não está disponível para upload ou já recebeu arquivo.
413Arquivo acima do limite permitido.
500Falha inesperada ao processar o upload.

Regras importantes

  • Use sempre https://upload.lazydata.com.br/enrichment.
  • A assinatura é temporária e deve ser usada apenas uma vez.
  • O upload deve ser feito com multipart/form-data.
  • O campo do arquivo deve se chamar file.
  • O nome e a extensão do arquivo precisam ser iguais aos informados na etapa de assinatura.
  • O retorno 202 não significa que o enriquecimento já está pronto para execução; significa que o arquivo foi recebido e a análise começou.
  • Após o upload, acompanhe o status do enriquecimento para aguardar a análise do arquivo e seguir para a configuração.