Convertir colores
Un solo color de marca suele necesitar existir en cinco formatos distintos antes de que termine el día: HEX para la hoja de estilos, CMYK para la imprenta, LAB para un algoritmo de comparación de color. Esta API recibe un color en cualquier notación soportada y lo devuelve traducido a las demás, sin que nadie tenga que adivinar a ojo frente a una muestra de color.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
El problema que resuelve en silencio
Los sistemas de diseño, las imprentas y los frontends web crecieron hablando cada uno un lenguaje de color distinto, y la matemática para pasar de uno a otro no es intuitiva: convertir de RGB a LAB, en particular, implica una transformación intermedia a XYZ y un punto de blanco de referencia que la mayoría de los desarrolladores no tiene motivo para recordar. En vez de buscar esa fórmula o copiarla de un blog de hace diez años, envía el color una vez y recibe de vuelta cada representación, calculada siempre de la misma manera.
Cómo luce el request
Se entrega un color en cualquiera de los formatos soportados —una cadena HEX como #1E90FF, un triplete RGB, un valor HSL, un conjunto LAB, o porcentajes CMYK para impresión— y la tarea corre de forma asíncrona. El task_id llega de inmediato, y poco después el conjunto completo de valores equivalentes se entrega mediante un webhook firmado o un enlace firmado que permanece válido por 24 horas.
Por qué cinco formatos y no dos
HEX y RGB son el vocabulario nativo de la web, pero se quedan cortos en otros contextos: CMYK es lo que realmente mezcla una imprenta comercial sobre el papel y no corresponde uno a uno con RGB sin pérdida, HSL es lo que un diseñador usa cuando ajusta la luminosidad de un tono de forma intuitiva, y LAB existe precisamente porque aproxima la distancia perceptual humana entre colores, algo que RGB no logra. Soportar los cinco significa que la misma llamada sirve a un desarrollador web, a un equipo de producción de impresión y a un ingeniero de calidad que compara dos colores por su similitud perceptual.
Dónde encaja en un flujo automatizado
Se integra en un paso de generación de tokens de diseño que produce piezas listas para imprenta junto con las digitales, en un generador de manual de marca que necesita documentar automáticamente cada formato, o en un verificador de accesibilidad que primero normaliza colores arbitrarios enviados por usuarios antes de un análisis posterior. Como se cobra por conversión exitosa y sin sorpresas de suscripción, escala igual de bien si convierte una sola paleta de marca o un set completo de íconos.
Una nota breve sobre precisión
Convertir hacia y desde LAB y CMYK implica, en ciertos casos, una pérdida inherente: no todo color RGB tiene un equivalente CMYK exacto que una imprenta pueda reproducir, y eso es una propiedad de los espacios de color mismos, no un atajo en el cálculo. Lo que este endpoint garantiza es que las fórmulas de conversión se aplican correcta y consistentemente en cada llamada.
Qué puede hacer con ella
Herramientas de sistemas de diseño
Generar automáticamente los valores HEX, RGB, HSL, LAB y CMYK de cada token de un sistema de diseño, en vez de mantenerlos a mano en cada formato.
Entrega para producción de impresión
Convertir la paleta HEX nativa de la web de una marca a porcentajes CMYK antes de enviar los archivos finales a una imprenta comercial.
Herramientas de accesibilidad y contraste
Normalizar colores arbitrarios enviados por usuarios a un formato consistente antes de calcular relaciones de contraste o diferencias perceptuales.
Documentos de manual de marca
Completar automáticamente la sección de colores de una guía de estilo con cada notación que un diseñador o desarrollador pueda necesitar, a partir de un solo color fuente.
Preguntas frecuentes
¿Qué formatos de color soporta la api convertir colores?
HEX, RGB, HSL, LAB y CMYK: envía un color en cualquiera de ellos y recibe los demás calculados a partir de este.
¿Es gratuita esta api convertir colores?
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ál es el precio por conversión?
$0.002 por request, y solo se cobra cuando la tarea se completa con éxito.
¿Por qué RGB a CMYK no siempre es una conversión perfecta de ida y vuelta?
CMYK y RGB describen espacios de color físicamente distintos, uno sustractivo de tinta y otro aditivo de luz, así que algunos colores RGB no tienen un equivalente CMYK imprimible exacto; es una propiedad del color mismo, no una limitación de esta API.
¿Cómo se entrega el resultado?
De forma asíncrona: recibe un task_id de inmediato y el resultado llega después mediante un webhook firmado o un enlace firmado válido por 24 horas.
¿Puedo convertir varios colores a la vez?
Cada request procesa la conversión de un color; para paletas extensas, se llama al endpoint por cada color dentro de un proceso por lotes automatizado.
¿Usa un punto de blanco de referencia específico para LAB?
Sí, la conversión a LAB utiliza un blanco de referencia estándar, de modo que los resultados sean consistentes y reproducibles en cada request.
¿Qué ocurre con un código HEX inválido o un valor fuera de rango?
La tarea falla con un error claro después de hasta tres reintentos, y una tarea fallida nunca se 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/data/color-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/data/color-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/color-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/color-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/color-convert", 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
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.color_convert",
"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. |