---
title: "Add sample videos to a brief"
method: POST
path: "/briefs/{id}/samples"
tags: ["Briefs"]
---

# Add sample videos to a brief

`POST /briefs/{id}/samples`

## Request

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

Appends videos to the end of a brief's sample list — the organization's tracked videos by platform and platform video id, or viral-library videos by libraryVideoId (tracked as reference-only samples, hidden from analytics and payouts) — each with an optional label creators see above it. Videos the brief already lists are skipped. Silent by default; with notify=true and at least one video appended, the brief is re-published (version bump) and every creator in its audience is notified.

## Path parameters

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

## Request body

- object: Request to append videos to a brief's sample list: the organization's tracked videos by platform + platformVideoId, or viral-library videos by libraryVideoId. Videos the brief already holds are skipped. With notify=true and at least one video appended, the brief is re-published: its version is bumped and every assigned creator is notified.
  - `notify` boolean
  - `videos` union[], required
    - union
      - object
        - `platform` 'facebook' | 'instagram' | 'tiktok' | 'youtube' | 'snapchat', required: Social media platform (facebook, instagram, tiktok, youtube, snapchat)
        - `platformVideoId` string, required
        - `orgAccountId` string: Organization account ID with orgacc_ prefix. Not the same as platform account ID.
        - `platformAccountId` string
        - `label` string, nullable: Optional caption creators see above the video, after its number in the list
      - object
        - `libraryVideoId` string, required: Viral video library id (orgrsv_…). The video is tracked as a reference-only sample — hidden from analytics and payouts — and counts against the tracked-videos limit.
        - `label` string, nullable: Optional caption creators see above the video, after its number in the list

## Response `200`

OK

- object
  - `id` string, required: Campaign brief ID with orgbrief_ prefix
  - `name` string, required
  - `addedCount` integer, required
  - `skippedCount` integer, required

## Other responses

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