Accept a brand kit import
POST/api/v1/brand-kits/imports/{id}/accept
POST /brand-kits/imports/{id}/accept
curl -X POST 'https://www.unitpost.com/api/v1/brand-kits/imports/bki_123/accept' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'User-Agent: my-app/1.0' \
-H 'Content-Type: application/json' \
-d '{ }'Response · 200
{
"object": "brand_import",
"id": "id_123",
"status": "pending",
"review": false,
"source": {
"kind": "url",
"url": "https://example.com"
},
"brand_kit_id": "brand_kit_123",
"proposal": {
"name": "Example",
"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"
]
},
"memory_facts": [
{
"key": "string",
"content": "string"
}
]
},
"warnings": [
"string"
],
"error": "string",
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"completed_at": "2026-01-01T00:00:00.000Z",
"brand_kit": {
"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"
},
"apply_warnings": [
"string"
]
}Apply a review import's proposal (preview_ready) to a profile: voice, colors and pages, and its logos and backgrounds brought into the image library and pinned. Without brand_kit_id it fills the profile the import named, else the default, or a new profile when the default has content; the profile takes the name the import found unless you send name. A one-shot import whose automatic apply failed (preview_ready with an error) can be accepted too. The site becomes a sending domain only when the key holds domains:write. To change fields, accept and then Update a brand kit. The body is optional. Requires the branding:write capability.
Parameters1 field
| Field | Type | Description |
|---|---|---|
idrequired | string · path | — |
Request body3 fields
| Field | Type | Description |
|---|---|---|
brand_kit_id | string | Apply to this profile instead of the one the import named. |
name | string | The profile's name (default: the one the import found). |
sync_visual | boolean | Also set the email branding's accent from the imported colors (the default profile only). |
Response · 200 fields14 fields
| Field | Type | Description |
|---|---|---|
objectrequired | string | — |
idrequired | string | — |
statusrequired | enumpending | running | preview_ready | completed | failed | cancelled | `preview_ready`: the proposal waits for an accept (review imports) or is being applied (one-shot); with an `error` on a one-shot import, applying it failed: accept or cancel it. |
reviewrequired | boolean | Whether it waits for an accept (false: applied when the crawl lands). |
sourcerequired | object | — |
brand_kit_idrequired | string | null | The profile it fills. |
proposalrequired | object | null | What the import found, once ready. |
warningsrequired | string[] | — |
errorrequired | string | null | — |
created_atrequired | string | — |
updated_atrequired | string | — |
completed_atrequired | string | null | — |
brand_kitrequired | object | The profile as the accept left it. |
apply_warningsrequired | string[] | What the accept couldn't bring in (a logo that wouldn't fetch, the graphics cap, a renamed profile). |
200400401403404409422429