---
title: "Get a brand"
method: GET
path: "/brands/{brandId}"
tags: ["Account"]
---

# Get a brand

`GET /brands/{brandId}`

## Request

- Base URL: `https://www.app.ocoya.com/api/_public/v1`
- URL: `https://www.app.ocoya.com/api/_public/v1/brands/{brandId}`
- Auth: API key in header `X-API-Key`

Returns the brand profile as the Brand page shows it: description, website, logos, colors, fonts, tone of voice, writing guidelines, SEO keywords with search volumes, hashtags, and the brand score with its suggested next step.

## Path parameters

- `brandId` string, required

## Response `200`

Success

- object
  - `id` string, required: Brand ID.
  - `name` string, nullable, required: Brand name.
  - `image` string, nullable, required: Brand avatar URL.
  - `timezone` string, nullable, required: Brand timezone.
  - `weekStart` integer, nullable, required: First day of the week in the calendar (0 is Sunday).
  - `description` string, required: What the brand does, as AI writing reads it.
  - `url` string, required: Website, or an empty string.
  - `logos` string[], required: Logo image URLs.
  - `colors` string[], required: Brand colors as hex values.
  - `fonts` object, required: Heading and body fonts used for designs.
  - `socials` object, required: Social profile links, by network.
  - `tone` string[], required: Tone of voice: up to 3 of `Friendly`, `Professional`, `Playful`, `Warm`, `Bold`, `Witty`, `Inspiring`, `Calm`, `Expert`, `Casual`.
  - `guidelines` string, required: Extra writing guidelines every AI prompt follows.
  - `keywords` object[], required: SEO keywords the brand wants to be found for, up to 20.
    - `keyword` string, required
    - `monthlySearches` integer, nullable, required: Monthly searches, where keyword detection found a number; `null` for a keyword typed in.
  - `hashtags` string[], required: Hashtags the brand's posts use, lowercase and without the `#`, up to 200. AI campaigns use them.
  - `channelCount` integer, required: Connected channels and stores, as the score counts them.
  - `score` object, required
    - `score` integer, required: How complete the brand profile is, out of 100: the same score the app shows on the Brand page.
    - `nextStep` object, nullable, required: The step worth the most points, or `null` at 100.
      - `section` 'channels' | 'website' | 'details' | 'voice' | 'logos' | 'colors' | 'keywords' | 'hashtags', required: Brand page section to work on.
      - `sectionLabel` string, required: That section's name in the app.
      - `label` string, required: The suggested next step, as the app words it.
      - `points` integer, required: Points the step can still add.

## Other responses

- `401`: Missing or invalid API key.
- `403`: Invalid brand id, or the API key's user does not own this brand.
- `429`: Rate limit exceeded: 60 requests per minute per API key.
- `500`: Unknown error

## Changes

- **2026-11-04** `ef9bd3530850`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ocoya/apis/ocoya-api/changes/brands/:brandId/get.md)

---

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