CueFrame
Api

Extract brand tokens from a website URL

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.

POST
/v1/brand-kits/extract

Authorization

AuthorizationBearer <token>

API key auth. Prefix cf_live_ for production orgs, cf_test_ for sandbox.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

POST /brand-kits/extract body — the website URL to extract brand tokens from.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/brand-kits/extract" \  -H "Content-Type: application/json" \  -d '{    "url": "http://example.com"  }'
{  "jobId": "string",  "jobKey": "string",  "kind": "string",  "status": "running"}
{  "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    }  }}
{  "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    }  }}