Colour science and original archive research in a single API. CIEDE2000 matching, Lab/LCh metrics, WCAG contrast, and cultural risk — computed deterministically. Documented entries carry a named primary source; colour science is computed deterministically. Neither is generated from training data.
Designing in Figma? The same key powers the Colour Memory plugin — select any fill and see its source, evidence grade and historical pairings without leaving your file.
Liked what you saw? Get full API and MCP access, with dozens of tools.
Get Studio access — £12/monthNo signup. Rate-limited to 25 calls, enough to try everything below.
CM_DEMO_KEY
Pass as header: X-Api-Key: CM_DEMO_KEY
Need more than 25 calls? Get a free Developer key: 500 archive calls, 10 Intelligence credits, no card required.
Match any hex to the archive. Returns the nearest named colour with its primary source, confidence score, claim_role, and do_not_say guardrails.
curl -X POST https://api.colourmemory.com/query/hex \ -H "X-Api-Key: CM_DEMO_KEY" \ -H "Content-Type: application/json" \ -d '{"hex": "#D4A829", "n_results": 1}'
claim_role tells you how hard you can push this entry: anchor = load-bearing evidence. reject = stub, exclude from deliverables.
Full-text keyword search across archive colours. Search for "arterial blood" not "red" — this is a text search, not a colour search. Use query_hex for hue-based retrieval.
curl -X POST https://api.colourmemory.com/archive/search \ -H "X-Api-Key: CM_DEMO_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "arterial blood", "archive": "Keats", "include_full": true}'
Always save the slug from results. Pass it to colour_card — slugs never break on apostrophes.
Pass a palette of hex values. Returns WCAG accessibility matrix, cultural risk notes by market, archive matches with provenance, palette role assignments, and a commercial verdict. Fully deterministic — no LLM.
curl -X POST https://api.colourmemory.com/brand/audit \ -H "X-Api-Key: CM_DEMO_KEY" \ -H "Content-Type: application/json" \ -d '{ "palette": ["#D4A829", "#1A5C6E", "#24214E", "#0A0A0B"], "markets": ["UK", "China", "Middle East"], "context": "luxury packaging" }'
All tools load instantly via MCP. One URL. No SDK, no boilerplate. New to MCP? The colour MCP server overview explains what your agent gets and how to set it up.
claude_desktop_config.json:"colour-memory": {
"type": "sse",
"url": "https://api.colourmemory.com/mcp",
"headers": {
"X-Api-Key": "YOUR_KEY"
}
}Start with the three above. Come back to the rest when you need them.
reject is a stub with no primary source. Don't use it in client-facing work.
minimum_claim_strength (e.g. "B") on archive_report_brief or session_brief for a hard, honestly-enforced floor.
semantic_match on archive_coverage_gap's best_match — it flags when the top lexical result doesn't actually address your theme, even on a "moderate" or "strong" grade.
Most core endpoints are fully deterministic. Some optionally call an LLM for written output — those are labelled clearly in the docs.
Thousands of historically grounded colours. Extensive tools. MCP + REST. No rate limit on production keys.