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

# Update a brief

`PUT /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`

Updates what is sent and leaves the rest: name, content (contentMarkdown or TipTap JSON content), the complete sample list, and the audience (campaignIds, creatorIds, allCreators). notify=true bumps the version and re-notifies every creator in the audience (sent alone, it re-publishes the current brief); notify=false saves silently in place.

## Path parameters

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

## Request body

- object: Request to update a brief. Only the fields sent change. notify=true bumps the version and re-notifies creators (with nothing else sent, it re-publishes the current brief); notify=false saves silently.
  - `name` string: Brief name (unique per organization)
  - `content` object: The new content as TipTap JSON (replaces the old content). Send this or contentMarkdown, or neither to keep it.
    - `type` 'doc', required
    - `content` object[]
      - `type` string, required
  - `contentMarkdown` string: The new content as markdown (replaces the old content). Send this or content, or neither to keep it.
  - `sampleVideos` object[]: The complete ordered sample list, replacing the current one — omit to keep the samples. Append with POST /briefs/{id}/samples instead.
    - `orgAccountId` string, required: Organization account ID with orgacc_ prefix. Not the same as platform account ID.
    - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
    - `platformVideoId` string, required
    - `url` string, uri, required
    - `label` string, nullable: Optional caption creators see above the video, after its number in the list
  - `campaignIds` string[]
  - `creatorIds` string[]: Creators (org creator ids, from list_creators) who read the brief directly, outside any campaign. Not-joined creators are allowed: they read it once they join.
  - `allCreators` boolean: true = every creator at the organization reads the brief, including creators who join later. Such a brief has no campaign or creator links of its own: send campaignIds: [] and creatorIds: [] in the same call to clear existing ones.
  - `notify` boolean, required

## Response `200`

OK

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

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `404`: 404
- `408`: 408
- `409`: 409
- `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)
