Create a brand kit

Create a brand kit

POST/api/v1/brand-kits

POST /brand-kits
curl -X POST 'https://www.unitpost.com/api/v1/brand-kits' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0' \
  -H 'Content-Type: application/json' \
  -d '{ }'
Response · 201
{
  "object": "brand_kit",
  "id": "id_123",
  "name": "Example",
  "is_default": false,
  "website_url": "https://example.com",
  "description": "string",
  "tone": "NEUTRAL",
  "voice_notes": "string",
  "industry": "string",
  "core_pages": [
    {
      "url": "https://example.com",
      "title": "string"
    }
  ],
  "extracted": {
    "colors": [
      {
        "hex": "string",
        "label": "string"
      }
    ],
    "logo_urls": [
      "string"
    ],
    "background_urls": [
      "string"
    ],
    "fonts": [
      "string"
    ]
  },
  "graphics": [
    {
      "library_image_id": "library_image_123",
      "image_id": "image_123",
      "path": "string",
      "role": "logo",
      "label": "string"
    }
  ],
  "source": "string",
  "updated_at": "2026-01-01T00:00:00.000Z"
}

Create an empty profile (name, unique in the workspace). The first profile, or one with make_default, becomes the default. At most five profiles (403 limit_reached). Fill it with Update a brand kit or an import. Requires the branding:write capability.

Request body2 fields
FieldTypeDescription
namerequiredstringUnique in the workspace.
make_defaultbooleanMake it the default profile (the first profile always is).
Response · 201 fields14 fields
FieldTypeDescription
objectrequiredstring—
idrequiredstring—
namerequiredstring—
is_defaultrequiredboolean—
website_urlrequiredstring | null—
descriptionrequiredstring | null—
tonerequiredenum | null—
voice_notesrequiredstring | null—
industryrequiredstring | null—
core_pagesrequiredobject[]—
extractedrequiredobject—
graphicsrequiredobject[]—
sourcerequiredstring | null—
updated_atrequiredstring | null—
201400401403409422429

Search docs and guides

Search the docs and product guides.