ForHosting KIT · Dados e planilhas

Validar CSV com esquema de colunas e localizar erros

Um arquivo CSV pode parecer organizado e ainda conter valores que interrompem uma importação, um relatório ou um pipeline de dados.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.

Este validador compara o cabeçalho com as colunas exatas esperadas por você e examina cada linha com regras explícitas para texto, números, inteiros, booleanos e datas ISO. Em vez de parar na primeira célula inválida, ele devolve uma lista completa de violações com números de linha e nomes de coluna. Você pode executá-lo gratuitamente no navegador ou usar a API por US$ 0,002 por solicitação em um fluxo automatizado.

Defina o contrato antes de verificar o arquivo

Descreva cada coluna esperada com três propriedades: nome exato, tipo e obrigatoriedade. A ordem importa porque CSV representa dados posicionais; um arquivo com cabeçalho nome,id não pode ser trocado com segurança por id,nome, mesmo que ambos tragam os mesmos nomes. Por isso, o validador compara o cabeçalho inteiro com o esquema antes de analisar as linhas. Uma coluna ausente, extra, renomeada, duplicada ou reordenada gera erro de entrada, e não um relatório enganoso. Os tipos aceitos são string, number, integer, boolean e date. Números admitem notação decimal e científica; inteiros devem ser números inteiros seguros; booleanos aceitam true ou false sem diferenciar maiúsculas; e datas usam YYYY-MM-DD com validação do calendário. Um texto aceita qualquer valor não vazio, enquanto required determina separadamente se a célula pode ficar vazia. Assim, um inteiro opcional pode ser omitido, mas, quando informado, ainda precisa ser um inteiro válido.

Interprete corretamente as violações

O resultado começa com o indicador valid e os totais de linhas, colunas e violações. Quando valid é false, o array violations identifica cada problema por número da linha, nome da coluna, código estável e mensagem legível. A numeração acompanha o próprio CSV: a linha 1 é o cabeçalho e o primeiro registro está na linha 2. Dessa forma, você pode abrir o arquivo original e ir diretamente ao ponto indicado. Uma violação required significa que uma célula obrigatória está vazia. Uma violação type significa que um valor presente não atende ao tipo declarado. Linhas com campos a mais ou a menos recebem column_count na coluna especial _row, pois o problema estrutural não pode ser atribuído com segurança a uma célula nomeada. O parser reconhece vírgulas entre aspas, aspas escapadas, quebras de linha internas e arquivos CRLF; portanto, pontuação legítima dentro de um campo citado não desloca colunas posteriores nem cria alertas falsos.

Valide na entrada do fluxo de trabalho

Faça a validação o mais perto possível do ponto em que o arquivo entra no seu sistema. Um upload de parceiro pode ser rejeitado antes de chegar ao banco de dados, uma exportação agendada pode ser conferida antes dos cálculos seguintes e um importador pode apresentar todas as células corrigíveis de uma só vez. Como o algoritmo é determinístico e não acessa a rede, o mesmo CSV e o mesmo esquema sempre produzem o mesmo relatório. Isso torna a saída útil tanto para bloqueios automáticos quanto para limpeza interativa. Trate uma divergência de cabeçalho de modo diferente das violações de linha: a primeira mostra que o arquivo não é o conjunto de dados esperado; as demais mostram registros reconhecíveis que precisam de correção. O validador apenas informa e nunca edita, converte, remove espaços ou substitui valores. Se o seu pipeline exigir normalização, execute-a como uma etapa deliberada separada e valide novamente conforme o contrato exigido pelo destino.

Controle de qualidade da importação

Rejeite uploads CSV de clientes ou parceiros com referências exatas de linha e coluna antes da importação no banco de dados.

Monitoramento de exportações

Verifique exportações recorrentes para detectar mudanças no cabeçalho, campos obrigatórios vazios e valores fora do tipo declarado.

Correção em lote

Receba todas as violações detectáveis de uma vez para que uma pessoa corrija o arquivo em uma única revisão.

O cabeçalho CSV precisa seguir a mesma ordem do esquema?

Sim. Nomes e ordem devem coincidir exatamente; caso contrário, a solicitação falha com um erro de entrada no cabeçalho.

Quais tipos de coluna são aceitos?

O esquema aceita string, number, integer, boolean e date. Datas devem representar dias reais no formato YYYY-MM-DD.

A validação para após a primeira linha inválida?

Não. Depois que o cabeçalho passa, todas as linhas são verificadas e todas as violações encontradas são devolvidas juntas.

Como são tratadas vírgulas e quebras de linha entre aspas?

Campos entre aspas podem conter vírgulas, aspas duplas escapadas e quebras de linha sem criar colunas extras.

A ferramenta modifica ou converte valores CSV?

Não. Ela apenas relata violações; nunca remove espaços, converte, preenche ou reescreve o CSV enviado.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/data/csv-validate-schema

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/data/csv-validate-schema \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"csv":"id,email,active\n1,ada@example.com,true\n2,grace@example.com,false","schema":[{"name":"id","type":"integer","required":true},{"name":"email","type":"string","required":true},{"name":"active","type":"boolean","required":true}]}'
{
  "csv": "id,email,active\n1,ada@example.com,true\n2,grace@example.com,false",
  "schema": [
    {
      "name": "id",
      "type": "integer",
      "required": true
    },
    {
      "name": "email",
      "type": "string",
      "required": true
    },
    {
      "name": "active",
      "type": "boolean",
      "required": true
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "data.csv_validate_schema",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_mb25
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →