roasOS
API referenceBrand kit

Replace the brand kit

Replace the whole brand kit. There is no PATCH: an omitted field clears that part of the kit. The logo must be media this workspace owns, named by its immutable `cdn.roasos.com` URL — upload it at `POST /v1/uploads` first. A URL from another workspace is refused with `reference_media_not_workspace_owned`, and a Discover creative is refused by name with `discover_source_not_allowed`. Colours are lower-case six-digit hex, one per role. Fonts are NAMES, not files: roasOS hosts no font and embeds none, so a later render maps the name onto a bundled fallback. That is a real limit, not a placeholder. Free, and there is no quote: proving your logo does not buy it.

PUT
/v1/brand-kit

Replace the whole brand kit. There is no PATCH: an omitted field clears that part of the kit.

The logo must be media this workspace owns, named by its immutable cdn.roasos.com URL — upload it at POST /v1/uploads first. A URL from another workspace is refused with reference_media_not_workspace_owned, and a Discover creative is refused by name with discover_source_not_allowed.

Colours are lower-case six-digit hex, one per role. Fonts are NAMES, not files: roasOS hosts no font and embeds none, so a later render maps the name onto a bundled fallback. That is a real limit, not a placeholder.

Free, and there is no quote: proving your logo does not buy it.

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication. Use your API key as the bearer token: Authorization: Bearer roasos_sk_...

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/brand-kit" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "schema_version": "brand-kit@1",    "kind": "brand_kit",    "logo_url": "http://example.com",    "logo_dark_url": "http://example.com",    "colors": {      "primary": "string",      "secondary": "string",      "accent": "string",      "background": "string",      "text": "string"    },    "fonts": {      "heading": "string",      "body": "string"    },    "cta_text": "string",    "cta_url": "http://example.com",    "source_analysis_id": "39fd60e7-a97c-4723-a6ca-600c3c203434",    "updated_by": "deea00dc-b6b6-4412-a483-26ac61e1f6fe",    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z"  }}