---
title: "Extract a brand kit from a URL"
method: POST
path: "/v1/brand-kits"
tags: ["brand-kits"]
---

# Extract a brand kit from a URL

`POST /v1/brand-kits`

## Request

- Base URL: `https://api.framelane.io`
- URL: `https://api.framelane.io/v1/brand-kits`
- Auth: HTTP bearer

Fetch a public website and extract its palette, fonts, logo, and corner feel (best-effort, with per-field confidence). Override anything with PATCH.

## Request body

- BrandKitExtractRequest: ``POST /v1/brand-kits`` — extract a kit from a website.
  - `url` string, uri, required: Public website URL to extract brand tokens from.
  - `name` string, nullable: Optional label; defaults to the site's domain.

## Response `201`

Successful Response

- BrandKitOut
  - `id` string, required: Unique brand kit id.
  - `workspace_id` string, required
  - `name` string, required
  - `source_url` string, nullable: URL the kit was extracted from.
  - `palette` Palette: Brand colors. Missing values mean 'not confidently extracted'.
    - `primary` string, nullable: Dominant brand color.
    - `secondary` string, nullable: Supporting color.
    - `accent` string, nullable: Highlight / CTA color.
    - `bg` string, nullable: Page background.
    - `ink` string, nullable: Body text color.
  - `fonts` Fonts: Typography — Google-family names (unvalidated; renderer resolves them).
    - `heading` string, nullable: Display / heading family.
    - `body` string, nullable: Body-copy family.
  - `logo_url` string, nullable
  - `corner_feel` 'sharp' | 'soft' | 'pill', nullable
  - `confidence` object: Per-field extraction confidence 0–1 (e.g. {'palette.primary': 0.8}).
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401`: Missing or invalid API key.
- `422`: The URL could not be fetched or parsed.

---

[API](https://skmtc.dev/framelane/apis/framelane-api.md) · [All operations](https://skmtc.dev/framelane/apis/framelane-api/llms.txt) · [OpenAPI document](https://skmtc.dev/framelane/apis/framelane-api/revisions/a223001ca8e5?raw)
