---
title: "Create a brand"
method: POST
path: "/brands"
tags: ["Brands"]
---

# Create a brand

`POST /brands`

## Request

- Base URL: `https://www.rainbrand.com/api/v1`
- URL: `https://www.rainbrand.com/api/v1/brands`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://www.rainbrand.com/api/auth/oauth2/authorize`
    - Token URL: `https://www.rainbrand.com/api/auth/oauth2/token`

Build reusable brand context from your sources. Check progress with [Get a brand](/api-reference/brands/get-a-brand).

## Headers

- `idempotency-key` string: Optional retry key, 1–255 characters after trimming. Reuse with the same request to recover the original Brand ID. Use a new key for a new creation.

## Request body

- object
  - `sources` union[], required: Sources to combine into a Brand Skill. At most one website and one Instagram account can be included. Files may be public HTTPS URLs or completed temporary uploads, up to 100 MiB each and 256 MiB combined.
    - union
      - object
        - `kind` 'website', required: Source type for a public website
        - `url` string, uri, required: Public website URL to turn into a Brand Skill
      - object
        - `kind` 'instagram', required: Source type for an Instagram account
        - `username` string, required: Instagram username to use as brand evidence
      - object
        - `kind` 'file', required: Source type for an uploaded file, including a PDF
        - `url` string, uri, required: Temporary public HTTPS URL for a file up to 100 MiB, including a PDF
        - `filename` string: Original filename used for source labels. It defaults from the URL when possible.
      - object
        - `kind` 'file', required: Source type for a completed temporary upload
        - `uploadId` string, uuid, required: Completed temporary upload from POST /uploads
  - `instructions` string: Optional instructions passed to the Brand Agent for this run. The Agent applies them using its existing judgment.
  - `workspaceId` string: Team workspace ID. The brand is created in that workspace and billed to its customer. Omit to create in the caller's personal workspace.
  - `allowDuplicate` boolean: Allow creation when a website or Instagram source matches an existing brand in the selected workspace. Set to true only when the caller intentionally chooses to create another brand. Defaults to false.

## Response `202`

OK

- object
  - `data` object, required
    - `id` string, uuid, required
    - `status` 'analyzing', required

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `403`: 403
- `404`: 404
- `409`: 409
- `429`: 429
- `500`: 500
- `503`: 503

---

[API](https://skmtc.dev/rainbrand/apis/rainbrand-api.md) - [All operations](https://skmtc.dev/rainbrand/apis/rainbrand-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rainbrand/apis/rainbrand-api/revisions/012b8e9da4df?raw)
