API
Brands
List, create, and extract brands. The Brand Kernel turns any public URL into a full palette + typography spec.
Base URL: https://heydecks.com
All endpoints require Authorization: Bearer hd_live_….
#GET /v1/brands
List all brands in your workspace.
curl https://heydecks.com/v1/brands \
-H "Authorization: Bearer hd_live_…"200 Response — array of brand objects:
[
{
"id": "brand_xyz",
"name": "Acme Corp",
"is_active": true,
"colors": { "primary": "#1B40F2" },
"typography": { "heading": "Inter" },
"tone": "professional"
}
]The brand with is_active: true is the workspace default — it is applied automatically when brand_id is omitted from POST /v1/generate.
#POST /v1/brands
Create a new empty brand.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Brand display name. |
curl -X POST https://heydecks.com/v1/brands \
-H "Authorization: Bearer hd_live_…" \
-H "Content-Type: application/json" \
-d '{"name": "Acme Corp"}'201 Response:
{
"id": "brand_new",
"name": "Acme Corp",
"is_active": false,
"colors": null,
"typography": null,
"tone": null
}Populate the brand's tokens via the dashboard Brand editor, or use the MCP update_brand tool.
#POST /v1/brands/extract
Brand Kernel. Fetch a public URL, analyse its palette, typography, and tone, and return an ExtractedBrand payload ready to review and save.
Costs 5 credits. Refunded on failure. The result is returned inline — nothing is persisted automatically.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | Public https:// URL to analyse. Must start with https://. |
curl -X POST https://heydecks.com/v1/brands/extract \
-H "Authorization: Bearer hd_live_…" \
-H "Content-Type: application/json" \
-d '{"url": "https://acme.com"}'
extractreturns the brand payload without creating a brand record. To persist it, create a brand viaPOST /v1/brandsand then apply the extracted tokens via the dashboard or the MCPupdate_brandtool.
200 Response — ExtractedBrand object with the analysed palette, typography, and tone.
#Brand limits by plan
| Plan | Brands |
|---|---|
| Free | 1 |
| Solo | 3 |
| Pro | 10 |
| Team | Unlimited |
| Agent | Unlimited |
| Enterprise | Unlimited |
Exceeding the limit returns 402 brand_limit. Upgrade to add more brands.