CSV a JSON
Un archivo CSV parece simple hasta que tiene que interpretar uno que exportó otra persona: comillas inconsistentes, un BOM perdido, números guardados como texto con ceros a la izquierda que sí importan. Este endpoint convierte un CSV en JSON estructurado, infiriendo si cada columna es número, booleano, fecha o texto, y permitiéndole remapear cabeceras desordenadas hacia los nombres de campo que su aplicación realmente espera.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
El problema de tratar el CSV como "solo texto"
El CSV parece el formato de datos más simple que existe, y esa fama es justamente la que causa problemas. La especificación nunca definió con rigor cómo escapar una coma dentro de un campo o qué codificación asumir, así que cada exportador —una hoja de cálculo, un ERP antiguo, un generador de estados de cuenta— lo hace de manera ligeramente distinta. Un analizador ingenuo que divide por comas se rompe con el primer archivo real que encuentra. Los equipos que integran exportaciones de proveedores terminan manteniendo analizadores frágiles que fallan en silencio ante una comilla sin escapar.
Lo que realmente aporta la inferencia de tipos
Llame a POST /data/csv-to-json con su archivo y la tarea lee la cabecera, toma muestras de cada columna, y decide si representa un entero, un decimal, un booleano, una fecha o texto plano, de modo que una columna con "42", "17", "3" llega como números que puede sumar de inmediato, no cadenas que primero hay que convertir. Los valores que parecen numéricos pero cargan significado como texto, como un código postal con cero inicial, se dejan como cadenas, porque la inferencia solo es útil cuando también es cuidadosa.
Mapeo de cabeceras para archivos que no controla
Los CSV del mundo real casi nunca usan los nombres de campo que espera su base de datos. La exportación de un procesador de pagos puede llamar a una columna "Txn Date" mientras su esquema espera transaction_date. En vez de procesar cada respuesta después, envía un mapeo de cabeceras junto con el archivo y el endpoint renombra las columnas durante la conversión, así que lo que regresa ya coincide con la forma que consume su aplicación, un paso de transformación menos que escribir y mantener.
Un poco de historia, brevemente
El CSV es anterior a la propia web, con raíces en software empresarial de mainframe de los años setenta, y nunca desapareció porque nada más simple lo ha reemplazado para el intercambio tabular entre sistemas que, por lo demás, no comparten nada. El JSON, en cambio, surgió de los literales de objeto de JavaScript a inicios de los años dos mil para que los programas lo consumieran directamente. Convertir uno en otro es un puente entre dos épocas del intercambio de datos, y hacerlo bien significa respetar las particularidades que el CSV acumuló en el camino.
Dónde encaja en un flujo automatizado
Como la conversión corre de forma asíncrona, se integra sin fricción en trabajos ETL, importaciones programadas desde sistemas de socios, o un flujo de carga de formulario donde un usuario arrastra una hoja de cálculo y su aplicación necesita registros estructurados en segundos. Recibe un task_id de inmediato y el JSON llega por webhook, listo para insertarse, validarse o reenviarse sin que su flujo quede bloqueado esperando la conversión.
Qué puede hacer con ella
Ingesta de datos de socios comerciales
Convierta las exportaciones diarias en CSV de un proveedor o procesador de pagos en JSON que se mapea directamente a su esquema interno, sin escribir un analizador personalizado por cada socio.
Carga de hojas de cálculo en una app SaaS
Deje que los usuarios finales arrastren un CSV de contactos o inventario y conviértalo en registros JSON validados que su API puede insertar en un solo paso.
Migración de sistemas heredados
Tome exportaciones de tablas de un sistema antiguo que solo habla CSV y conviértalas en documentos JSON para una base de datos moderna orientada a documentos.
Trabajo ETL programado
Ejecute cada noche una conversión de los archivos CSV de registro acumulados a JSON antes de cargarlos en un pipeline de analítica.
Preguntas frecuentes
¿Esta API de CSV a JSON infiere los tipos de dato automáticamente?
Sí, cada columna se muestrea y se tipifica automáticamente como número, booleano, fecha o texto, así que no necesita convertir valores después de la conversión.
¿Puedo renombrar columnas durante la conversión?
Sí, envíe un mapeo de cabeceras junto con su solicitud y el JSON de salida usará los nombres de campo que defina en lugar de las cabeceras originales del CSV.
¿Hay un plan gratuito para probar el endpoint de CSV a JSON?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Qué particularidades del CSV maneja, como comas entre comillas o distintos delimitadores?
El analizador respeta las reglas estándar de comillas para comas y saltos de línea incluidos en un valor, y detecta delimitadores comunes, así que las exportaciones de hojas de cálculo y sistemas empresariales se convierten de forma confiable.
¿Puedo convertir archivos CSV grandes o lotes masivos?
Sí, envíe los archivos como solicitudes asíncronas separadas; cada una devuelve su propio task_id para que pueda rastrear y procesar lotes grandes de forma independiente.
¿Qué pasa si un archivo CSV está mal formado?
La tarea se reintenta automáticamente hasta tres veces; si aun así no puede interpretar el archivo, recibe un error claro que describe el problema y no se le cobra.
¿Cómo recibo el JSON convertido?
A través de un webhook firmado, recomendado para flujos automatizados, o un enlace firmado válido durante 24 horas para obtenerlo manualmente.
¿Cuánto cuesta la API de CSV a JSON?
$0.002 por solicitud, cobrado únicamente cuando la conversión se completa con éxito.
Para desarrolladores — acceso por API
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.
Endpoint de API
¿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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/csv-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"csv":"nombre,edad\\nAna,30\\nLuis,25"}'const res = await fetch("https://api.kit.forhosting.com/data/csv-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"csv": "nombre,edad\\nAna,30\\nLuis,25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/csv-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"csv": "nombre,edad\\nAna,30\\nLuis,25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/csv-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"csv":"nombre,edad\\nAna,30\\nLuis,25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"csv":"nombre,edad\\nAna,30\\nLuis,25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/csv-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"csv": "nombre,edad\\nAna,30\\nLuis,25"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.csv_to_json",
"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.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |