---
title: "Analyze a brand or confirm a new project"
method: POST
path: "/onboard"
tags: ["Onboarding"]
---

# Analyze a brand or confirm a new project

`POST /onboard`

Two-step onboarding over Server-Sent Events. `action: analyze` researches a URL and proposes competitors and topics. `action: confirm` creates the project and generates prompts.

The response stream emits `data:` lines with progress events followed by a final event with `status: "complete"` and the payload.

## Request body

- union
  - object
    - `action` 'analyze', required
    - `url` string, uri, required
  - object
    - `action` 'confirm', required
    - `brandName` string, required
    - `url` string, uri
    - `industryType` 'saas' | 'media' | 'agency' | 'ecommerce' | 'other'
    - `location` string, nullable
    - `languages` string, nullable
    - `competitors` union[]
      - union
        - string
        - object
          - `name` string, required
          - `url` string, nullable
    - `topicList` union[]
      - union
        - string
        - object
          - `name` string, required
          - `category` string, nullable
    - `activePlatforms` string[]
    - `promptsPerTopic` integer
    - `projectId` string, uuid — Reuse an existing project instead of creating one.
    - `promptAttributes` string[]
    - `generateBrandedPrompts` boolean

## Response `200`

Server-Sent Events stream. The final event has `status: "complete"` with the result payload (analyze: brand/competitor/topic suggestions; confirm: `{ projectId }`).

## Other responses

- `400` — Missing or invalid request parameter.
- `401` — Missing, malformed, or revoked API key.
- `402` — Monthly included API calls for your tier are used up (code `USAGE_LIMIT`). Body includes a `limit` object — `{ limitHit, currentTier, targetTier, feature, cap, used, resetAt }` — describing the cap and the upgrade that lifts it.
- `404` — Resource not found or not owned by your account.
- `429` — Rate limit, project cap, or daily quota hit. Body includes a `code` field.
- `500` — Server error. Retry; if persistent, contact support.

---

[API](https://skmtc.dev/openlens/apis/openlens-api.md) · [All operations](https://skmtc.dev/openlens/apis/openlens-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openlens/openlens-api/revisions/f8f03e555193/schema)
