REST + MCP · public demo

Your first colour call,
with receipts.

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.

220w average per archive entry — hand-researched, primary source cited, evidence graded. Not licensed, not scraped, not generated.
65+ deterministic endpoints — CIEDE2000 distance, Lab/LCh/LRV, WCAG contrast, cultural risk, palette roles. No LLM, no variance between calls.
0 hallucinated colours — every result cites a primary source or flags insufficient evidence
Get full access
2,000 calls · Studio  |  10,000 calls · Pro
Annual: Studio £99 · Pro £325 · Enterprise
Live archive demo api.colourmemory.com
Click any question above — or type your own below.
Results come directly from the live archive.

Liked what you saw? Get full API and MCP access, with dozens of tools.

Get Studio access — £12/month
For developers · copy-paste examples · public demo key
1
Authentication

Get a key

No signup. Rate-limited to 25 calls, enough to try everything below.

API Key
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.


2
Tool 1 of 3

query_hex

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
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}'
Response — key fields
nameRa Gold Divine Flesh
archiveAncient Egypt
primary_sourceBook of the Celestial Cow; Tutankhamun death mask, Cairo JE 60672
confidence0.88
claim_strengthB — Named documentary source
claim_rolesupport
do_not_say
Do not describe this hex as spectrophotometrically measured — values are computed from material descriptions.

claim_role tells you how hard you can push this entry: anchor = load-bearing evidence. reject = stub, exclude from deliverables.


3
Tool 2 of 3

archive_search

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
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}'
Response
nameKeats's Lung
hex#C8B6B0
primary_sourceThe Letters, 3 February 1820
claim_roleanchor

Always save the slug from results. Pass it to colour_card — slugs never break on apostrophes.


4
Tool 3 of 3 · Commercial palette analysis

brand_audit

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
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"
  }'
Response — key fields
wcag_matrixAll foreground/background combinations with AA/AAA pass/fail
cultural_riskPer-market flags with context notes
commercial_labelArchive-verified name for each hex
verdict_copyPlain-English palette verdict

5
No code required

Connect to Claude or ChatGPT

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.

https://api.colourmemory.com/mcp
Claude (web)
Settings → Integrations → Add Integration → paste URL
Claude Desktop
Add to claude_desktop_config.json:

"colour-memory": {
  "type": "sse",
  "url": "https://api.colourmemory.com/mcp",
  "headers": {
    "X-Api-Key": "YOUR_KEY"
  }
}
ChatGPT / any client
Settings → Connectors → Add → paste URL. Tools use underscore notation: archive_search, brand_audit, brand_collision

6
Reference

All tools

Start with the three above. Come back to the rest when you need them.

query_hex ★
Match any hex to the archive with CIEDE2000 distance
archive_search ★
Full-text search across archive colour names and notes
brand_audit ★
WCAG matrix, cultural risk, palette roles, verdict
brand_collision
Can this brand own this colour?
archive_evidence_gap
Is this claim supported?
archive_coverage_gap
Which themes are thin?
query_conceptual
Semantic search by mood or concept
ecommerce_namer
Archive names for up to 40 SKUs
colour_card
Full provenance by slug
palette_concept
Heritage palette from cultural concept
archive_report_brief
Editorial research package
index_resonance
Material-consequence score

!
Watch out

Common mistakes

Searching for colour by hue with archive_search. Use query_hex or query_conceptual instead. archive_search is text matching, not perceptual matching.
Ignoring claim_role. Anything marked reject is a stub with no primary source. Don't use it in client-facing work.
Using names instead of slugs. Names break on apostrophes. Slugs always work.
Ignoring do_not_say fields. They stop your agent making claims the archive doesn't support. Read them.
Assuming strict_sources filters by evidence grade. It only checks a source is present, not that it meets a quality bar. Pass minimum_claim_strength (e.g. "B") on archive_report_brief or session_brief for a hard, honestly-enforced floor.
Trusting a coverage grade at face value. Check 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.
Multi-word avoid terms. "arsenic pigments" correctly excludes any entry containing both words anywhere in its text, not just that exact phrase — so it will catch "Arsenic Teal Wallpaper" as intended.
?
Transparency

What runs without an LLM?

Most core endpoints are fully deterministic. Some optionally call an LLM for written output — those are labelled clearly in the docs.

Deterministic (no LLM)
Nearest-colour matching (CIEDE2000)
Lab / LCh metrics and LRV
WCAG contrast and accessibility matrix
Palette role assignment
Cultural risk scoring
Image palette extraction
Design token export
Uses LLM (opt-in)
Brand reports and editorial briefs
session_brief forensic narrative
colour_hooks and colour_story
agent_brief for image generation
Start building

The archive is ready when you are.

Thousands of historically grounded colours. Extensive tools. MCP + REST. No rate limit on production keys.

Studio  £12/month Pro  £39/month
Annual: Studio £99  ·  Pro £325  ·  All plans  ·  Enterprise