Get a brand kit by id
Required permission: projects:read
API key auth. Prefix cf_live_ for production orgs, cf_test_ for sandbox.
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/brand-kits/string"{ "id": "string", "name": "string", "description": "string", "tagline": "string", "colors": { "property1": "string", "property2": "string" }, "extraColors": [ { "name": "string", "value": "string" } ], "fonts": { "heading": { "family": "string", "weight": 0 }, "body": { "family": "string", "weight": 0 } }, "voiceGuidelines": "string", "captions": { "sync": true, "profile": { "property1": null, "property2": null } }, "motion": { "duration": 0, "easing": "linear", "entrance": "none", "staggerMs": 0, "exitMs": 0 }, "logo": { "src": "string", "alt": "string", "placement": "tl", "sizePct": 0 }, "intro": { "kind": "card", "src": "string", "title": "string", "subtitle": "string", "durationMs": 0 }, "outro": { "kind": "card", "src": "string", "title": "string", "subtitle": "string", "durationMs": 0 }, "watermark": { "src": "string", "opacity": 0, "placement": "tl" }, "spacing": { "base": 0, "lg": 0, "sm": 0 }, "sizing": { "fontSizeHeading": 0, "fontSizeBody": 0, "fontSizeLabel": 0, "borderRadius": 0 }, "audio": { "sfxIntensity": "off", "musicEnabled": true, "musicMood": "string", "sonicLogo": { "ref": "string", "placement": "intro", "offsetMs": 0 }, "uiSoundSet": { "tick": "string", "pop": "string", "impact": "string", "confirm": "string", "error": "string", "whoosh": "string", "riser": "string" }, "bedStyle": { "bedId": "string", "genre": "string", "bpmRange": { "min": 0, "max": 0 } }, "ambiencePreference": { "ref": "string" } }, "exemplarKeys": [ "string" ], "contactSheetKey": "string", "motifs": [ { "id": "string", "observed": "string", "body": { "kind": "card", "html": "string", "tokens": { "property1": "string", "property2": "string" } }, "motion": { "preset": "fade-up", "enterMs": 0, "exitMs": 0, "staggerMs": 0, "confidence": "high" }, "role": "title-card", "zone": { "x": 0, "y": 0, "w": 0, "h": 0 }, "evidence": [ 0 ], "diffScore": 0, "coverage": "reproduced", "skipReason": "string" } ], "styleRubric": "string", "density": { "graphicsPerMin": 0, "maxSimultaneous": 1 }, "inspiration": { "sources": [ "string" ], "extractedAt": 0, "extractionVersion": "string" }, "createdAt": "string", "updatedAt": "string"}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "x402Version": 2, "accepts": [ {} ], "error": "string"}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}{ "error": { "code": "string", "message": "string", "details": { "property1": null, "property2": null } }}Extract brand tokens from a website URL POST
Queue brand-token extraction from a website URL — ASYNC: returns a 202 job receipt; poll GET /v1/jobs/{jobId} (or MCP wait_job kind=brand_kit_extract) for the tokens (colors, fonts, title, description) on the succeeded result. The executor fetches the site's HTML/CSS (20s cap) and regex-parses tokens — NOT a screenshot/vision pipeline; it does NOT persist a kit (pass the result to POST /brand-kits). A blocked (SSRF/private), non-2xx, non-HTML, or slow URL degrades to EMPTY token arrays on a SUCCEEDED terminal rather than erroring; succeeded extractions are reused for 5 minutes per URL.
Presign a brand kit's inspiration exemplar frames POST
Returns short-lived URLs for the kit's exemplar frames (the pixels the maker and judge condition on). Filter to one motif's evidence frames with `motifId`. Vision-budget-bounded consumers should keep `limit` small (default 6).