ColorMagic API
Free colour palette API with no key: search thousands of named palettes by keyword and get five hex codes, descriptive tags and a like count. Tested example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the ColorMagic API?
ColorMagic lets you search a community palette library by keyword with no API key. Each result returns five hex colours, the palette's name, a list of descriptive tags and how many people have liked it.
Palette generators that work from a seed colour solve the wrong problem most of the time. What a designer usually has is a word — sunset, brutalist, autumnal — and what they want is a set of colours that reads that way. ColorMagic searches on exactly that, matching keywords against palette names and tags rather than requiring a starting hex.
The `tags` array is where the search actually happens and it is more descriptive than a name alone: the sunset palette in the captured response is tagged apricot, coral, cream, light, peach, pink, soft, warm and yellow, which means it surfaces for any of those searches too. `likesCount` gives a crude quality ranking, since community-liked palettes tend to be the balanced ones. Two practical notes: colours always come as five hex strings including the leading hash, and the response carries no CORS header, so this needs calling from a server rather than from a browser.
Quick facts
- Base URL
https://colormagic.app/api- Authentication
- No API key and no account for palette search.
- Rate limit
- No published limit. Palettes change slowly — cache search results.
- Pricing
- Free.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the ColorMagic API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Search colour palettes by keyword
GET https://colormagic.app/api/palette/search?q=sunset
curl 'https://colormagic.app/api/palette/search?q=sunset'const res = await fetch("https://colormagic.app/api/palette/search?q=sunset");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://colormagic.app/api/palette/search?q=sunset", timeout=20)
res.raise_for_status()
print(res.json())[
{
"id": "6712593deab8122db20f7915",
"colors": [
"#ff997a",
"#ffb88f",
"#ffcc99",
"#ffe5b3",
"#fff5e0"
],
"text": "Peachy",
"tags": [
"apricot",
"coral",
"cream",
"light",
"peach",
"pink",
"soft",
"sunset",
"warm",
"yellow"
],
"likesCount": 166,
"isLiked": false,
"normalizedHash": "6e8ac241f7ca3b791f184550c3c0e03dbf1258c03a0d662bc10d5dd5d1a5d34a",
"createdAt": "2024-10-18T12:49:01.046Z"
},
{
"id": "67179bf105be065749691c18",
"colors": [
"#dac6b9",
"#c0b0a5",
"#a58e8d",
"#8c5a5a",
"#6c4b4b"
],
"text": "Rodeo Sunset",
"tags": [
"aesthetic",
"beige",
"brown",
"desert",
"earthy",
"retro",
"soft",
"vintage",
"warm",
"warm-autumn"
],
"likesCount": 129,
"isLiked": false,
"normalizedHash": "64a2e519cfb994bdfb17ee350bc9b5fbe73f03a9363385c16bb99afe3b18fbbc",
"createdAt": "2024-10-22T12:34:57.356Z"
},
{
"id": "6768cc54be680a86c6266bf1",
"colors": [
"#3b1c2f",
"#5d3c47",
"#9a5b63",
"#d1a789",
"#f4e2c2"
],
"text": "Moody Sunset",
"tags": [
"autumn",
"beige",
"dark",
"deep",
"earthy",
"pink",
"red",
"retro",
"warm"
],
"likesCount": 83,
"isLiked": false,
"normalizedHash": "d7524a961f55a8a5ca0b82defd3216ee4015194982b8afd1222b95549e556db7",
"createdAt": "2024-12-23T02:35:00.218Z"
},
{
"id": "671Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | query | Required | Search keyword, matched against palette names and tags. sunset |
Response fields
(root)array- Matching palettes, most relevant first. There is no envelope object.
idstring- Palette identifier.
colorsarray- Five hex colour strings including the leading `#`, ordered light to dark or as the creator arranged them.
textstring- The palette's name, for example `Peachy` or `Rodeo Sunset`.
tagsarray- Descriptive tags — colour names, moods and qualities. These drive the search as much as the name does.
likesCountinteger- Community likes. A reasonable proxy for how balanced a palette is.
isLikedboolean- Always false for anonymous requests, since there is no session to attribute a like to.
normalizedHashstring- Hash of the colour set, which identifies duplicate palettes submitted under different names.
createdAtstring- ISO 8601 creation timestamp.
What you can build with the ColorMagic API
- Suggest palettes from a mood keyword in a design tool
- Seed a theme generator with community-validated colour sets
- Build a palette browser filtered by descriptive tag
- Find harmonious five-colour sets for data visualisation
Common errors and how to fix them
Empty array
The keyword matched no palette names or tags.
Fix: Try a broader or more common descriptive word. The corpus is community-created, so niche terms return nothing.
Cross-origin request blocked
No Access-Control-Allow-Origin header is sent.
Fix: Call it from a server and proxy the result to your front end.
Duplicate-looking palettes
The same colour set can be submitted under several names.
Fix: Deduplicate on `normalizedHash`, which exists for exactly this purpose.
Colours fail a contrast check
Palettes are chosen aesthetically, not for accessibility.
Fix: Run your own contrast checks before using a palette for text and background pairs.
ColorMagic API — frequently asked questions
Is the ColorMagic API free?
Yes, free with no key or account for palette search.
How does the search work?
It matches your keyword against palette names and their descriptive tags, so a mood word like `sunset` or `soft` finds palettes even when the name does not contain it.
How many colours per palette?
Five hex values, supplied with the leading hash so they can go straight into CSS.
Can I call it from the browser?
No. The response carries no CORS header, so a browser fetch is blocked. Proxy it through your own server.
Tools that pair with this API
Color Palette Generator
Generate complementary, analogous, triadic, tetradic and monochromatic color palettes from any base color. Click any swatch to copy its HEX code fast.
CSS Color Format Converter
Turn one colour into every modern CSS syntax at once: hex, rgb, hsl, hwb, lab, lch, oklab, oklch and display-p3, each with its own copy button.
Color Contrast Grid
Paste a palette and get every foreground-on-background contrast ratio in one matrix, colour-coded by WCAG pass level and exportable as CSV or Markdown.
ColorMagic is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.