---
title: "Accept a brand kit import"
description: "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. `POST /api/v1/brand-kits/imports/{id}/accept`"
url: https://www.unitpost.com/docs/email/post-brand-kits-imports-id-accept
section: "Email API reference"
updated: 2026-10-13
---
# Accept a brand kit import

`POST /api/v1/brand-kits/imports/{id}/accept`

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](https://www.unitpost.com/docs/email/patch-brand-kits-id). The body is optional. Requires the `branding:write` capability.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | — |

## Request body

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `brand_kit_id` | string | no | Apply to this profile instead of the one the import named. |
| `name` | string | no | The profile's name (default: the one the import found). |
| `sync_visual` | boolean | no | Also set the email branding's accent from the imported colors (the default profile only). |

## Response fields (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | yes | — |
| `id` | string | yes | — |
| `status` | enum | yes | `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. One of: `pending`, `running`, `preview_ready`, `completed`, `failed`, `cancelled`. |
| `review` | boolean | yes | Whether it waits for an accept (false: applied when the crawl lands). |
| `source` | object | yes | — |
| `brand_kit_id` | string \| null | yes | The profile it fills. |
| `proposal` | object \| null | yes | What the import found, once ready. |
| `warnings` | string[] | yes | — |
| `error` | string \| null | yes | — |
| `created_at` | string | yes | — |
| `updated_at` | string | yes | — |
| `completed_at` | string \| null | yes | — |
| `brand_kit` | object | yes | The profile as the accept left it. |
| `apply_warnings` | string[] | yes | What the accept couldn't bring in (a logo that wouldn't fetch, the graphics cap, a renamed profile). |

## Responses

| Status | Description |
| --- | --- |
| 200 | The import, the profile, and what couldn't be brought in. |
| 400 | The body isn't JSON. |
| 401 | Missing or invalid API key. |
| 403 | Insufficient scope (`branding:write` is opt-in on a key), or a new profile over the five-profile limit (`limit_reached`). |
| 404 | Brand import or `brand_kit_id` not found. |
| 409 | Not a ready import (a one-shot import applies itself; a finished one is done), or another accept took it first. |
| 422 | An unknown key or query key. |
| 429 | Too many imports; retry after the wait. |

## Example request

```bash
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 '{ }'
```

## Example response (200)

```json
{
  "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"
  ]
}
```

## Links

- HTML reference (with Node.js, Python, Ruby, PHP, Laravel, Go, Java, Rust, .NET and CLI examples): https://www.unitpost.com/docs/email/post-brand-kits-imports-id-accept
- OpenAPI 3.1 (full schemas): https://www.unitpost.com/api/v1/openapi.json
