---
title: "Set who reads a brief"
method: PUT
path: "/briefs/{id}/audience"
tags: ["Briefs"]
---

# Set who reads a brief

`PUT /briefs/{id}/audience`

## Request

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

Sets a brief's audience: everyone at the organization (allCreators), or the campaigns it is linked to (campaignIds) plus the creators it is sent to directly (creatorIds). Omitted parts stay as they are. Everyone excludes campaigns and creators: turning it on while links exist needs campaignIds: [] and creatorIds: [] in the same call (409 otherwise). Every creator it newly reaches must read it on their next visit; with notify=true they are also notified. Removals are silent, and the version does not change.

## Path parameters

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

## Request body

- object: Sets who reads a brief: everyone at the organization, or its campaigns plus creators sent it directly. Omitted parts stay as they are. Everyone excludes campaigns and creators; turning it on while links exist needs campaignIds: [] and creatorIds: [] in the same call.
  - `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.
  - `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.
  - `notify` boolean, required

## Response `200`

OK

- object
  - `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
  - `newlyReachedCount` 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)
