---
title: "Read the org's Profile — its legible taste"
method: GET
path: "/v1/profile"
tags: ["account"]
---

# Read the org's Profile — its legible taste

`GET /v1/profile`

## Request

- Base URL: `https://api.cueframe.ai`
- URL: `https://api.cueframe.ai/v1/profile`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.cueframe.ai/api/auth/mcp/authorize`, token URL `https://api.cueframe.ai/api/auth/mcp/token`, scopes: `projects:read`)
  - API key in header `PAYMENT-SIGNATURE`

One read for everything the platform knows about this org's taste: brand kits, registered critics (the machine-checkable standard both the Director's gates and score_composition enforce), the critics' reference media with presigned thumbnails, and the recent checkpoint-decision log (what was approved/revised/abandoned, where). Read this before composing for an org you haven't worked with — it is the house style.

## Response `200`

The org profile.

- ProfileResponse: The org's legible taste: brand + critics + references + decision log.
  - `brandKits` object[], required: The org's brand kits (bind one to a project via update_project). `audio` carries the brand sound kit when set.
    - `id` string, required
    - `name` string, required
    - `audio` object
      - `sfxIntensity` 'off' | 'light' | 'standard' | 'dense'
      - `musicEnabled` boolean
      - `musicMood` string
      - `sonicLogo` object: A brand sound signature bound to the intro/outro bookend. `ref` = a palette reference; bound only when the kit carries the matching bumper (intro/outro), else a non-blocking advisory.
        - `ref` string, required
        - `placement` 'intro' | 'outro' | 'both', required
        - `offsetMs` integer
      - `uiSoundSet` object: Per-family SFX overrides (the brand's own tick/pop/…). Highest-priority tier over the org palette + pack default in the compose SFX draw.
        - `tick` string
        - `pop` string
        - `impact` string
        - `confirm` string
        - `error` string
        - `whoosh` string
        - `riser` string
      - `bedStyle` object: Preferred music bed (`bedId`) or a style hint (`genre` / `bpmRange`). Surfaced for driving agents; compose does not auto-select a pack bed.
        - `bedId` string
        - `genre` string
        - `bpmRange` object
          - `min` number, required
          - `max` number, required
      - `ambiencePreference` object, nullable: Preferred ambience bed (`{ref}`) or explicit null (opt-out). Surfaced for driving agents; compose has no ambience auto-placement.
        - `ref` string, required
  - `critics` CriticSummary[], required: Registered critics — run in the Director's gates AND score_composition.
    - `criticId` string, required
    - `label` string, required
    - `tier` 'rules' | 'rubric' | 'evaluator', required
    - `floor` number, required
    - `referenceMediaIds` string[]
  - `references` object[], required: The union of critic reference media — the org's visual standard, with provenance.
    - `mediaId` string, required
    - `name` string
    - `thumbnailUrl` string: Presigned reference thumbnail (~1 week).
  - `recentDecisions` object[], required: The last recorded checkpoint decisions — the raw taste log phase 2 will distill.
    - `checkpointId` string, required
    - `projectId` string, required
    - `kind` 'gate' | 'score', required
    - `stage` 'content' | 'layout' | 'motion'
    - `decision` string, required
    - `decidedAt` number, required

## Other responses

- `400`: Bad request — validation_error / invalid_cursor / invalid_query.
- `401`: Missing or invalid Authorization header.
- `402`: Payment required. Returned when the caller presents no API key on a priced operation: the body AND the `Payment-Required` header carry the x402 v2 challenge (accepted scheme, network, USDC asset, amount, payTo). Sign the EIP-3009 authorization and retry with a `PAYMENT-SIGNATURE` header. A KEYED caller sees this status instead when their plan lacks or has exhausted the feature (`billing_required`).
- `403`: Forbidden — permission insufficient.
- `429`: Rate limited. Retry-After header present.
- `500`: Internal error.

---

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