---
title: "Queue async brand identity generation"
method: POST
path: "/v1/brand-identities/generate"
tags: ["Content"]
---

# Queue async brand identity generation

`POST /v1/brand-identities/generate`

Creates the brand identity immediately, then queues a website analysis that fills in company details, tone, and audience. The first brand identity in an organization becomes the default. Poll GET /v1/brand-identities/generate/{jobId} until job.status is completed or failed.

## Request body

- object
  - `name` string — Display name. Must be unique within the organization. Defaults to "Untitled Brand Voice".
  - `websiteUrl` string, required — Public website to analyze for company details, tone, and audience. The scheme is optional; https is assumed.

## Response `202`

Brand identity generation queued successfully

- object
  - `organization` object, required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `logo` string, nullable, required
  - `job` object, required
    - `id` string, required
    - `organizationId` string, required
    - `brandIdentityId` string, required — ID of the brand identity being analyzed. The identity is created immediately and its details are filled in as the job completes.
    - `status` 'queued' | 'running' | 'completed' | 'failed', required — Job state. Stop polling once it is completed or failed.
    - `step` 'scraping' | 'extracting' | 'saving' | 'null', nullable, required — Current analysis step while the job is running.
    - `currentStep` integer, required
    - `totalSteps` integer, required
    - `workflowRunId` string, nullable, required
    - `error` string, nullable, required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `completedAt` string, nullable, required

## Other responses

- `400` — Invalid request body
- `401` — Missing or invalid API key
- `403` — Forbidden
- `404` — Organization not found
- `409` — Brand identity name already exists
- `429` — Rate limit exceeded. This endpoint allows 5 requests per 1 minute per API key.
- `503` — Authentication service or brand analysis unavailable

---

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