API abierta
Cinco endpoints gratuitos, sin registro, sin clave, con CORS habilitado. Mismos datos que el sitio: el espacio de 24 bits, 32.258 colores con nombre, 17.756 muestras estándar y 659 colores tradicionales chinos.
Endpoints de un vistazo
Cada endpoint tiene CORS habilitado: puedes obtener datos directamente desde el navegador o Node.js.
GET/api/search?q=crimson&limit=8
Buscar colores por nombre, código estándar, nombre tradicional o HEX
Parámetros
| q | Palabra clave de consulta: valor HEX (ff0000), nombre de color (crimson) o código estándar (RAL 3020) |
| limit | Máximo de resultados, valor predeterminado 12, límite máximo 50 |
Solicitud de ejemplo
curl "https://www.yanseku.com/api/search?q=crimson&limit=8"
La obtención directa funciona en el navegador (CORS habilitado).
Respuesta de ejemplo
{
"query": "crimson",
"results": [
{ "name": "BM 1299 Crimson", "hex": "b1625b", "source": "standard", "system": "benjamin_moore", "code": "BM 1299" },
{ "name": "crimson", "hex": "dc143c", "source": "standard", "system": "css_named", "code": "crimson" }
]
}GET/api/color/e63946
Perfil de color: 10 formatos + colores con nombre más cercanos + coincidencias en 8 sistemas estándar + coincidencias tradicionales + 6 armonías + contraste
Parámetros
| hex | Valor de color: dígitos hexadecimales de 3 o 6 (e63946 o e63) |
Solicitud de ejemplo
curl "https://www.yanseku.com/api/color/e63946"
Respuesta de ejemplo
{
"hex": "e63946",
"formats": {
"rgb": { "r": 230, "g": 57, "b": 70 },
"hsl": { "h": 355.5, "s": 77.6, "l": 56.3 },
"hsv": { "h": 355.5, "s": 75.2, "v": 90.2 },
"cmyk": { "c": 0, "m": 75.2, "y": 69.6, "k": 9.8 },
"xyz": { "x": 0.352, "y": 0.2019, "z": 0.0784 },
"lab": { "L": 52.06, "a": 65.72, "b": 34.14 },
"oklch": { "L": 0.612, "c": 0.208, "h": 22.2 },
"webSafe": "ff3333",
"css": { "rgb": "rgb(230, 57, 70)", "hsl": "hsl(355.5, 77.6%, 56.3%)" }
},
"named": {
"closest": { "name": "Paint the Town Red", "hex": "e63045", "deltaE": 1.34, "exact": false },
"nearest": [ { "name": "Red Radish", "hex": "ee3344", "deltaE": 1.36, "exact": false } ]
},
"standards": [
{ "system": "ncs", "systemName": "NCS (Natural Color System)", "code": "NCS S 0570-Y90R", "name": "NCS S 0570-Y90R", "hex": "e6373f", "deltaE": 1.69, "exact": false },
{ "system": "munsell", "systemName": "Munsell (Re-renotation)", "code": "7.5R 6/16", "name": "7.5R 6/16", "hex": "dd3743", "deltaE": 2.02, "exact": false }
],
"traditional": [
{ "name": "火红", "hex": "ff2d51", "cat": "红", "deltaE": 4.88, "exact": false },
{ "name": "银红", "hex": "f05654", "cat": "红", "deltaE": 5.89, "exact": false }
],
"harmony": [
{ "type": "complementary", "colors": ["e63946", "39e6d9"] },
{ "type": "split-complementary", "colors": ["e63946", "39e683", "399de6"] }
],
"contrast": {
"onWhite": { "ratio": 4.17, "levels": { "aaNormal": false, "aaLarge": true, "aaaNormal": false, "aaaLarge": false } },
"onBlack": { "ratio": 5.04, "levels": { "aaNormal": true, "aaLarge": true, "aaaNormal": false, "aaaLarge": true } },
"bestText": "#000000"
}
}GET/api/scheme?hex=e63946&mode=triadic
Esquema de armonía: seis reglas alrededor de tu color base
Parámetros
| hex | Valor de color: dígitos hexadecimales de 3 o 6 (e63946 o e63) |
| mode | Modo de armonía, predeterminado complementario. Opciones: complementary / split-complementary / triadic / tetradic / analogous / monochromatic |
Solicitud de ejemplo
curl "https://www.yanseku.com/api/scheme?hex=e63946&mode=triadic"
Respuesta de ejemplo
{
"hex": "e63946",
"mode": "triadic",
"count": 3,
"colors": ["e63946", "46e639", "3946e6"]
}GET/api/contrast?fg=ffffff&bg=e63946
Comprobación de contraste: ratio WCAG + niveles AA/AAA + color de texto óptimo
Parámetros
| fg | Hexadecimal de primer plano, ej. ffffff |
| bg | Hexadecimal de fondo, ej. e63946 |
Solicitud de ejemplo
curl "https://www.yanseku.com/api/contrast?fg=ffffff&bg=e63946"
Respuesta de ejemplo
{
"fg": "ffffff",
"bg": "e63946",
"ratio": 4.17,
"label": "AA Large",
"levels": { "aaNormal": false, "aaLarge": true, "aaaNormal": false, "aaaLarge": false },
"bestText": "#000000"
}GET/api/random?count=5
Colores aleatorios del grupo de nombres curado, hasta 10
Parámetros
| count | Cantidad de colores, 1-10, valor predeterminado 1 |
Solicitud de ejemplo
curl "https://www.yanseku.com/api/random?count=5"
Respuesta de ejemplo
{
"count": 3,
"colors": [
{ "name": "Sea Foam Green", "hex": "c2e4d0" },
{ "name": "Deep Koamaru", "hex": "333366" },
{ "name": "Laser Lemon", "hex": "ffff66" }
]
}Descargas de datos abiertos
Más allá de la API: lleva toda la base de datos contigo. Formato CSV (UTF-8, fila de encabezado), listo para análisis de datos, aprendizaje automático e investigación de sistemas de diseño. Los nombres de los campos están en el encabezado; los conjuntos de datos se actualizan en cada compilación.
Los nombres de color provienen de meodai/color-names (MIT) y la encuesta de colores xkcd; los colores de marca de los datos abiertos de simple-icons; los colores tradicionales chinos de zerosoul/chinese-colors y zhongguose.com; los valores de muestras estándar son conversiones simuladas por ordenador - verifica con muestras físicas para producción. Cumplir con las licencias upstream correspondientes.
Paquetes de código abierto
El motor y los datos del sitio se distribuyen como bibliotecas de código abierto: capaces de funcionar sin conexión, listas para producción. Tres paquetes npm cubren el motor, los conjuntos de datos y un servidor MCP, además de un puerto para Python y un conjunto de datos de HuggingFace.
Motor de color: conversiones de 10 formatos, CIEDE2000, APCA, mezcla OKLab, 6 reglas de armonía, simulación de visión - matemáticas puras, sin dependencias
npm install @yanseku/color
Conjuntos de datos: 17 corpus, más de 85.000 entradas (colores nombrados, muestras estándar, tradicionales, japoneses, marcas...), JSON con LAB precomputado
npm install @yanseku/data
Servidor MCP: conecta toda la base de datos de colores a Claude / Cursor - 7 herramientas sin conexión
npm install -g @yanseku/mcp
Puerto para Python: instala con pip y listo - mismas matemáticas D65 y deltaE2000, 659 historias tradicionales incluidas
pip install yanseku
Configuración MCP (claude_desktop_config.json)
{
"mcpServers": {
"yanseku": {
"url": "https://www.yanseku.com/api/mcp"
}
}
}Configuración MCP - local (npx, sin conexión)
{
"mcpServers": {
"yanseku": {
"command": "npx",
"args": ["-y", "@yanseku/mcp"]
}
}
}Comparación de capacidades con otras bibliotecas de color
Las bibliotecas comunes solo realizan cálculos matemáticos; la capa única de Yanseku son los datos: búsqueda de colores nombrados, coincidencia de muestras oficiales y historias de colores tradicionales.
| Característica | Yanseku | colorjs.io | culori | chroma-js |
|---|---|---|---|---|
| Conversiones de espacio de color (10 formatos) | ✔ | ✔ | ✔ | |
| Diferencia de color CIEDE2000 | ✔ | ✔ | ✔ | |
| Contraste perceptual APCA | ✔ | ✘ | ✘ | |
| Simulación de visión del color (8 tipos) | ✔ | ✘ | ✘ | |
| Búsqueda de color nombrado (32.258) | ✔ 32,258 | ✘ | ✘ | |
| Coincidencia de muestras oficiales (12 sistemas) | ✔ 17,756 | ✘ | ✘ | |
| Historias tradicionales chinas (659) | ✔ 659 | ✘ | ✘ | |
| Reglas de armonía perceptual | ✔ 6 rules | ✘ | ✔ palette | |
| Servidor MCP (sin conexión) | ✔ remote + offline | ✘ | ✘ | |
| Puerto Python | ✔ | ✘ | ✘ | |
| CSV completo / Conjunto de datos HF | ✔ 17 sets | ✘ | ✘ |
Dónde obtenerlo: npm (@yanseku/color · @yanseku/data · @yanseku/mcp) · PyPI (yanseku) · HuggingFace (yanseku/chinese-traditional-colors)
source: standard = muestra oficial; community = color nombrado por la comunidad; traditional = color tradicional chino
Endpoint público gratuito - por favor, sé razonable (se sugiere ≤ 60 req/min).