---
title: "Get a brief"
method: GET
path: "/briefs/{id}"
tags: ["Briefs"]
---

# Get a brief

`GET /briefs/{id}`

## Request

- Base URL: `https://viral.app/api/v1`
- URL: `https://viral.app/api/v1/briefs/{id}`
- Auth: API key in header `x-api-key`

Retrieves a brief with its content (as TipTap JSON and as markdown), its audience, read progress, ordered sample videos, and how many creators a notify would reach right now.

## Path parameters

- `id` string, required: Campaign brief ID with orgbrief_ prefix

## Response `200`

OK

- object
  - `id` string, required: Campaign brief ID with orgbrief_ prefix
  - `name` string, required
  - `content` object, required: The brief as TipTap JSON (the editor's document)
    - `type` 'doc', required
    - `content` object[]
      - `type` string, required
  - `contentMarkdown` string, required: The same content as markdown
  - `version` integer, required
  - `lastNotifiedAt` string, date-time, nullable, required
  - `campaigns` object[], required
    - `id` string, required: Campaign ID with orgcamp_ prefix
    - `name` string, required
    - `status` 'upcoming' | 'active' | 'closing' | 'ended', required: Campaign lifecycle status derived from validity window. upcoming: validFrom in the future; active: started with no end date; closing: started and has an end date in the present/future; ended: end date is in the past.
    - `activeCreatorCount` integer, required
  - `audience` object, required
    - `allCreators` boolean, required
    - `campaigns` object[], required
      - `id` string, required: Campaign ID with orgcamp_ prefix
      - `name` string, required
      - `status` 'upcoming' | 'active' | 'closing' | 'ended', required: Campaign lifecycle status derived from validity window. upcoming: validFrom in the future; active: started with no end date; closing: started and has an end date in the present/future; ended: end date is in the past.
      - `activeCreatorCount` integer, required
    - `creators` object[], required
      - `id` string, required: Organization creator ID with orgcre_ prefix
      - `name` string, nullable, required
      - `image` string, nullable, required
    - `creatorCount` integer, required
    - `creatorIds` string[], required
  - `readCounts` object, required
    - `read` integer, required
    - `total` integer, required
  - `sampleVideos` object[], required
    - `orgAccountId` string, required: Organization account ID with orgacc_ prefix. Not the same as platform account ID.
    - `orgVideoId` string, nullable, required: Organization video ID with orgvid_ prefix
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
    - `platformVideoId` string, required
    - `url` string, required
    - `username` string, nullable, required
    - `label` string, nullable, required
    - `position` integer, required
    - `wasAlreadyTracked` boolean, required
  - `notifiableCreatorCount` integer, required

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `404`: 404
- `408`: 408
- `429`: 429
- `500`: 500

---

[API](https://skmtc.dev/viral/apis/viral-app-api.md) · [All operations](https://skmtc.dev/viral/apis/viral-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/viral/apis/viral-app-api/revisions/31e97fa79ef1?raw)
