Free forever · No key · CORS enabled

Color API & open dataset

Every color in Coloripedia is available as static JSON and CSV under an open licence. No sign-up, no API key, no rate limits — it's a set of files on a CDN.

Quick start

One request, no setup.

curl https://coloripedia.com/api/v1/colors/sage.json

Response:

{
  "color": {
    "name": "Sage",
    "slug": "sage",
    "family": "green",
    "hex": "#B2AC88",
    "rgb": { "r": 178, "g": 172, "b": 136 },
    "hsl": { "h": 51, "s": 21, "l": 62 },
    "cmyk": { "c": 0, "m": 3, "y": 24, "k": 30 },
    "temperature": "warm",
    "saturation": "muted",
    "lightness": "medium",
    "tags": ["muted", "earthy", "calming", "subtle", "natural"],
    "complementary": ["ultramarine", "egyptian-blue", "royal-blue"],
    "url": "https://coloripedia.com/colors/sage/"
  },
  "license": "CC-BY-4.0",
  "attribution": "Color data by Coloripedia — https://coloripedia.com"
}

Built on this

Our own research use.

The WCAG 2.2 accessibility index tests all 312 colors as backgrounds against white and black text — contrast ratios, AA and AAA verdicts, and the text color that actually works on each one.

It ships as its own dataset: JSON · CSV

npm package

If you'd rather not call anything.

npm install coloripedia
const { colors, getColor, nearestColorName } = require("coloripedia");

colors.length;                // 312
getColor("sage").hex;         // "#B2AC88"
nearestColorName("#B4AE8A");  // "Sage"

The whole dataset ships with the package, so it works offline and adds no network calls. Zero dependencies, TypeScript types included.

Package on npm · Source on GitHub

Endpoints

All GET, all static.

GET /api/v1/colors.json

Every color in the database (312 entries) in a single request.

GET /api/v1/colors/{slug}.json

One color by slug — e.g. sage, terracotta, navy-blue.

GET /api/v1/families.json

All 10 color families with entry counts.

GET /api/v1/families/{family}.json

Every color in one family — e.g. green, blue, brown.

GET /api/v1/colors.csv

The whole dataset as CSV, for spreadsheets and data analysis.

GET /api/v1.json

Discovery document listing every endpoint above.

Using it

Browser, Node, anything.

const res = await fetch(
  "https://coloripedia.com/api/v1/colors.json"
);
const { colors } = await res.json();

// nearest named colour to an arbitrary hex
const nearest = (hex) => {
  const [r, g, b] = hex.match(/\w\w/g).map((h) => parseInt(h, 16));
  return colors.reduce((best, c) => {
    const d =
      (c.rgb.r - r) ** 2 + (c.rgb.g - g) ** 2 + (c.rgb.b - b) ** 2;
    return d < best.d ? { d, c } : best;
  }, { d: Infinity }).c;
};

nearest("#B4AE8A").name; // "Sage"

CORS is open (Access-Control-Allow-Origin: *), so you can call it straight from the browser. Responses are cached on the CDN for a day.

Licence

Free, including commercially.

The dataset is published under Creative Commons Attribution 4.0 International (CC-BY-4.0). Use it in commercial products, modify it, redistribute it — the only condition is attribution.

Attribution snippet:

<a href="https://coloripedia.com">Color data by Coloripedia</a>

Hex, RGB, HSL and CMYK values are factual and not copyrightable anywhere we know of. The licence covers the compilation, the descriptions and the curated relations. The long-form editorial content on individual color pages is not part of the dataset.

Stability

What you can rely on.

Additive changes only within /api/v1/. New fields may appear; existing fields will not be renamed or removed. Anything breaking gets a /api/v2/ prefix, and v1 stays up.

There is no server to fall over — every endpoint is a file built at deploy time and served from a CDN. There are no keys to rotate and no quota to exceed. If you need the data offline, take the CSV or the full JSON and vendor it.

Found a wrong value or a missing color? Open an issue or get in touch — corrections ship fast.

Copied!