Generar un UUID
Elegir un esquema de identificadores importa más de lo que parece, una vez que una tabla tiene millones de filas, la elección equivocada afecta el rendimiento de los índices durante años. Esta api para generar uuid produce identificadores v4, v7 y ULID bajo demanda, en el volumen que exija una migración o un esquema nuevo, sin que tenga que escribir la lógica de generación usted mismo.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
No todos los identificadores únicos se comportan igual
Un UUID v4 son 122 bits de aleatoriedad, lo que lo hace imposible de adivinar pero también imposible de ordenar y, con volúmenes altos de inserción, poco amigable con índices de base de datos que esperan claves aproximadamente ordenadas. Un UUID v7 corrige exactamente eso al incluir una marca de tiempo en milisegundos en los bits iniciales, así que los registros insertados cerca en el tiempo quedan ordenados cerca en disco, sin dejar de tener suficiente aleatoriedad para evitar colisiones. ULID resuelve el mismo problema de orden con una codificación distinta, usando base32 de Crockford para una cadena más corta, segura para URL y sin distinción de mayúsculas.
Qué hace POST /dev/uuid
Indica la versión, v4, v7 o ULID, y una cantidad, y la tarea devuelve esa cantidad de identificadores generados con una fuente de aleatoriedad criptográficamente sólida. No hay un límite artificial que le obligue a hacer decenas de solicitudes pequeñas cuando una sola migración necesita identificadores para una tabla entera; pide el lote que necesita y lo recibe como un solo resultado.
Una historia breve pero útil
Los UUID se estandarizaron en los años ochenta como parte del Apollo Network Computing System, y más tarde se formalizaron en el RFC 4122. Por más de dos décadas, la v4, puramente aleatoria, fue la opción por defecto, porque no requería coordinación entre sistemas que generaban identificadores de forma independiente. La v7 es reciente, se ratificó en 2024 específicamente para resolver el problema de localidad de índice que causan los UUID aleatorios en bases de datos modernas de alto volumen, y ULID surgió de la misma presión de la comunidad algunos años antes, como una alternativa pragmática y no estandarizada.
Dónde aparece esto en sistemas reales
Las migraciones de base de datos que necesitan rellenar claves primarias, los sistemas distribuidos que generan identificadores entre servicios sin un contador central, y los registros de eventos que se benefician de identificadores aproximadamente ordenados por tiempo son los tres escenarios donde esto aparece con más frecuencia. Como la tarea es asíncrona, una solicitud de un lote grande no bloquea su pipeline de despliegue; la encola, sigue trabajando, y recoge el resultado desde un webhook firmado o un enlace firmado válido por 24 horas.
Cómo elegir entre las tres
Si la impredecibilidad importa más que el orden, v4 sigue siendo la opción correcta por defecto. Si inserta filas a gran volumen y le importa el rendimiento del índice, v7 fue diseñada precisamente para eso. Si quiere una cadena más corta y fácil de escribir con el mismo beneficio de orden temporal, ULID es la opción práctica. Ninguna de las tres es 'mejor' de forma universal, cada una resuelve una restricción distinta.
Qué puede hacer con ella
Relleno masivo de claves primarias
Genere un lote grande de UUID v7 de una sola vez para rellenar claves primarias durante una migración de base de datos sin escribir código de generación propio.
Generación distribuida de identificadores
Produzca UUID v4 para servicios que crean registros de forma independiente entre regiones, sin necesidad de coordinación para evitar colisiones.
Identificadores ordenables para registros de eventos
Use ULID para entradas de log o mensajes de cola que se benefician de un orden aproximadamente cronológico junto con una cadena corta y legible.
Generación de datos de prueba
Genere miles de identificadores únicos en una sola llamada para poblar una base de datos de pruebas sin programar un generador local.
Preguntas frecuentes
¿Qué tipos de identificadores soporta esta api para generar uuid?
UUID v4, UUID v7 y ULID, seleccionables por solicitud según necesite aleatoriedad, orden temporal o una cadena codificada más corta.
¿Puedo generar UUID en lote en una sola llamada?
Sí, indica una cantidad junto con la versión y recibe el lote completo en un solo resultado, sin necesidad de repetir solicitudes de un identificador a la vez.
¿Cuál es la diferencia entre UUID v4 y v7?
La v4 es totalmente aleatoria y no se puede ordenar; la v7 incluye una marca de tiempo en milisegundos, así que los identificadores generados cerca en el tiempo quedan ordenados cerca, lo que ayuda al rendimiento del índice de la base de datos.
¿ULID es lo mismo que un UUID?
No, ULID es un formato relacionado pero distinto, usa codificación base32 de Crockford y está diseñado para ser más corto y seguro para URL, manteniendo el orden temporal.
¿Hay plan gratuito?
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.
¿Cuánto cuesta?
$0.002 por solicitud, y solo se cobra por las tareas completadas con éxito.
¿Cómo obtengo los identificadores generados?
POST /dev/uuid devuelve un task_id de inmediato, y la lista generada llega por webhook firmado o por un enlace firmado válido por 24 horas.
¿Qué pasa si la generación falla?
La tarea reintenta automáticamente hasta tres veces; si aún así falla, recibe un error claro y no se le cobra.
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/dev/uuid \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/dev/uuid", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/uuid",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/uuid", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/uuid", 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
{
"input": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.uuid",
"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.
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. |