---
title: "Start brand kit imports"
method: POST
path: "/api/v1/alpha/brand-kit-imports/start"
tags: ["alpha"]
---

# Start brand kit imports

`POST /api/v1/alpha/brand-kit-imports/start`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/alpha/brand-kit-imports/start`
- Auth: OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Start an import once its files are uploaded: each file is checked (it landed, its bytes are its declared type, an Office file carries no macros, ActiveX controls or embedded objects), then a model identifies each admitted file's role and the identified files are added to the kit in one new revision. Importing is free. Calling it again answers the same run. Read the outcome with alpha_brand_kit_imports_get. Needs a signed-in member.

## Headers

- `Point11-Organization` string, uuid
- `Idempotency-Key` string, uuid, required

## Request body

- AlphaBrandKitImportsStartRequest
  - `importId` string, uuid, required: The importId create answered.

## Response `202`

Accepted: the durable run started. Follow it with `GET /api/v1/platform/runs-v2/{id}`.

- AlphaBrandKitImportsStartResponse
  - `importId` string, uuid, required
  - `runId` string, uuid, nullable, required: The run identifying the files; null when no file was admitted, or the start was refused.
  - `status` 'started' | 'completed' | 'refused', required: started: the files are being identified. completed: nothing was left to identify. refused: the run was not admitted (see refusal); nothing was added.
  - `refusal` object, nullable, required
    - `code` string, required
    - `message` string, required
  - `files` object[], required
    - `fileId` string, uuid, required
    - `status` 'uploading' | 'identifying' | 'added' | 'needs_decision' | 'refused', required
    - `refusal` 'media_type_unsupported' | 'size_invalid' | 'kit_full' | 'already_in_kit' | 'kit_unavailable' | 'not_uploaded' | 'bytes_mismatch' | 'template_hazard', nullable, required

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `402`: Billing refused the write: the code names the reason and `details.reason` carries it.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

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