ForHosting KIT · Datos y archivos

Validar CSV con un esquema de columnas y detectar errores

Un archivo CSV puede parecer ordenado y aun así contener valores que interrumpan una importación, un informe o un flujo de datos.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.

Este validador compara la cabecera con las columnas exactas que usted espera y revisa cada fila mediante reglas explícitas para texto, números, enteros, booleanos y fechas ISO. En lugar de detenerse ante la primera celda incorrecta, devuelve una lista completa de infracciones con números de fila y nombres de columna. Puede ejecutarlo gratis en el navegador o usar la API por $0.002 por solicitud dentro de un flujo automatizado.

Defina el contrato antes de revisar el archivo

Describa cada columna esperada mediante tres propiedades: su nombre exacto, su tipo y si es obligatoria. El orden importa porque CSV representa datos posicionales; una cabecera nombre,id no puede intercambiarse con id,nombre de forma segura, aunque contenga los mismos nombres. Por eso, el validador compara la cabecera completa con el esquema antes de examinar las filas. Una columna ausente, adicional, renombrada, duplicada o reordenada provoca un error de entrada, no un informe engañoso. Se admiten los tipos string, number, integer, boolean y date. Los números aceptan notación decimal y científica; los enteros deben ser números enteros seguros; los booleanos aceptan true o false sin distinguir mayúsculas; y las fechas usan YYYY-MM-DD con comprobación del calendario. Un texto admite cualquier valor no vacío, mientras que required determina por separado si se permite una celda vacía. Así, un entero opcional puede quedar vacío, pero, si aparece, debe seguir siendo entero.

Interprete correctamente las infracciones

El resultado comienza con el indicador valid y con recuentos de filas, columnas e infracciones. Cuando valid es false, el arreglo violations identifica cada problema mediante número de fila, nombre de columna, código estable y mensaje legible. La numeración sigue el propio CSV: la fila 1 es la cabecera y el primer registro ocupa la fila 2. Así, usted puede abrir el archivo original y acudir directamente al punto señalado. Una infracción required indica que una celda obligatoria está vacía. Una infracción type señala que un valor presente no satisface el tipo declarado. Las filas con más o menos campos reciben column_count bajo la columna especial _row, ya que el fallo estructural no puede atribuirse con fiabilidad a una sola celda. El analizador entiende comas entre comillas, comillas escapadas, saltos de línea internos y archivos CRLF; por tanto, la puntuación válida dentro de un campo citado no desplaza las columnas posteriores ni genera avisos falsos.

Sitúe la validación en el límite del flujo

Valide el archivo lo más cerca posible de su entrada al sistema. Puede rechazar la carga de un socio antes de que llegue a la base de datos, comprobar una exportación programada antes de ejecutar cálculos posteriores o mostrar todas las celdas corregibles desde un importador. Como el algoritmo es determinista y no utiliza la red, el mismo CSV y el mismo esquema siempre producen el mismo informe. Esto permite usar la salida tanto en controles automáticos como en tareas de limpieza asistida. Trate una cabecera incorrecta de manera distinta a las infracciones de filas: la primera indica que el archivo no corresponde al conjunto de datos esperado; las segundas indican que existen registros reconocibles que deben corregirse. El validador solo informa: nunca edita, convierte, recorta ni sustituye valores. Así evita alterar silenciosamente identificadores, ceros iniciales o texto escrito por personas. Si necesita normalización, realícela como un paso independiente y vuelva a validar después contra el contrato real del destino.

Control de calidad de importaciones

Rechace cargas CSV de clientes o socios con referencias exactas de fila y columna antes de importarlas en una base de datos.

Supervisión de exportaciones

Revise exportaciones periódicas para detectar cambios de cabecera, celdas obligatorias vacías y valores cuyo tipo ya no coincide.

Corrección masiva

Obtenga todas las infracciones detectables de una vez para que una persona pueda reparar el archivo en una sola revisión.

¿La cabecera CSV debe seguir el mismo orden que el esquema?

Sí. Los nombres y el orden deben coincidir exactamente; de lo contrario, la solicitud falla con un error de entrada relativo a la cabecera.

¿Qué tipos de columna se admiten?

El esquema admite string, number, integer, boolean y date. Las fechas deben ser días reales del calendario en formato YYYY-MM-DD.

¿La validación se detiene tras la primera fila incorrecta?

No. Cuando la cabecera es válida, se revisan todas las filas y se devuelven juntas todas las infracciones detectadas.

¿Cómo se tratan las comas y los saltos de línea entre comillas?

Los campos citados pueden contener comas, comillas dobles escapadas y saltos de línea sin dividirse en columnas adicionales.

¿La herramienta modifica o convierte los valores CSV?

No. Solo informa de infracciones; nunca recorta, convierte, completa ni reescribe el CSV enviado.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

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

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

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"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

max_mb25
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →