Generar datos de prueba
Describa la forma de los datos que necesita — un registro de usuario, un historial de pedidos, mil productos — y reciba fixtures realistas y estructuralmente válidos sin escribir a mano una sola fila falsa. Es la manera más rápida de poblar una base de datos de staging, llenar una demo de interfaz o poner a prueba un parser con datos que parecen reales pero nunca lo fueron.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Por qué los datos reales son la herramienta equivocada para probar
Usar datos de producción en un entorno de desarrollo o QA es un problema de privacidad esperando a ocurrir, y los datos de muestra hechos a mano son todavía peor: normalmente son cinco registros copiados y pegados cambiando el nombre, lo cual nunca revela los casos límite — un nombre con apóstrofe, una dirección sin campo de estado, un correo con signo más — que rompen formularios y parsers en producción. Lo que todo equipo necesita en realidad son datos estructuralmente realistas sin ser reales.
Cómo funciona el paso de esquema a fixtures
POST /data/fake recibe un esquema que describe los campos que quiere — tipos como name, email, address, uuid, date, integer con un rango, u objetos anidados — junto con una cantidad de registros, y genera esa cantidad de filas respetando los tipos y las restricciones que defina, como un mínimo y máximo para campos numéricos o un conjunto fijo de valores enum para una columna de estado. El task_id que recibe permite obtener el resultado en JSON, CSV o sentencias SQL una vez que termina la generación.
Realista, no basura aleatoria
Hay una diferencia importante entre cadenas aleatorias y datos de prueba que se comportan como el mundo real: una dirección generada incluye una calle, ciudad y código postal con un formato internamente coherente; un nombre generado proviene de patrones reales de nombres y no de caracteres al azar; un número de teléfono generado sigue un formato plausible. Esto importa porque el propósito de un fixture es ejercitar su lógica de validación y su interfaz igual que lo haría la entrada real de un usuario.
Cómo encaja en un flujo de pruebas o demos
Como es asíncrono, puede disparar este endpoint como paso de preparación en un pipeline de integración continua antes de correr las pruebas de integración, o desde un script de seed que pobla una base de datos de staging nueva cada noche. Enlácelo con nuestras herramientas de conversión de formato para pasar directamente de un JSON generado a un archivo CSV de importación o a un script de inserción SQL, de modo que el fixture llegue exactamente en la forma que espera su proceso de siembra.
De dónde viene la generación de datos de prueba
La práctica se remonta a la cultura de pruebas unitarias y, más específicamente, a bibliotecas como Faker, que popularizó hace más de dos décadas la idea de generación aleatoria consciente del tipo de dato; nuestro endpoint sigue el mismo principio — respetar el tipo, respetar las restricciones, pero mantener el valor impredecible — mientras elimina la necesidad de instalar, configurar y mantener una biblioteca de generación en cada servicio que necesite datos de muestra.
Qué puede hacer con ella
Poblar bases de datos de staging
Genere miles de registros realistas de usuarios y pedidos cada noche para mantener poblado un entorno de staging sin tocar nunca datos de producción.
Entornos de frontend y demos
Llene un panel o una demo de producto con nombres, fechas y cifras de clientes plausibles en lugar de las mismas tres filas fijas que ve cada prospecto.
Pruebas de carga y de parsers
Produzca un lote grande de registros con valores límite — nombres largos, caracteres inusuales, números en los extremos — para confirmar que su lógica de validación resiste.
Pruebas de contrato de API
Genere fixtures de solicitud y respuesta que coincidan exactamente con su esquema, para que las pruebas de integración ejerciten la forma real de los datos que espera su API.
Preguntas frecuentes
¿Cómo genero datos falsos con la API?
Envíe por POST un esquema que describa sus campos y la cantidad de registros deseada a /data/fake; recibe un task_id y los fixtures generados llegan por webhook o enlace firmado en formato JSON, CSV o SQL.
¿Existe un plan gratuito para el generador de datos de prueba?
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é tipos de campo soporta?
Tipos comunes como name, email, address, phone, uuid, date, integer y float con rangos, boolean y valores enum de una lista fija, además de objetos anidados para registros más complejos.
¿Cuántos registros puedo generar en una sola solicitud?
Usted define la cantidad de registros en el esquema; cantidades mayores simplemente tardan más en procesarse, y el precio de $0.002 es por solicitud sin importar cuántas filas produzca.
¿Puedo controlar restricciones, como una edad mínima o un rango de fechas específico?
Sí, los campos numéricos y de fecha aceptan límites mínimo y máximo, y puede restringir un campo a un conjunto fijo de valores para cosas como estado o categoría.
¿Los datos generados son realmente aleatorios o se repiten?
Cada solicitud produce un conjunto de registros generado de forma independiente y fresca; nada se guarda en caché ni se reutiliza entre solicitudes.
¿Qué formatos de salida están disponibles?
JSON, CSV y sentencias de inserción SQL, para que el fixture se integre directamente en un script de siembra de base de datos o en un mock de frontend.
¿Los datos generados podrían coincidir por accidente con una persona real?
Son sintéticos y provienen de patrones genéricos de nombres y formatos, no de registros de ninguna persona real, aunque como con cualquier texto generado es posible una coincidencia casual con un nombre existente.
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/fake \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/fake", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/fake",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/fake", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/fake", 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
{
"text": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.fake",
"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. |