---
title: "Exclude videos from GMV Max campaigns"
method: POST
path: "/gmv-max/campaign-exclusions/exclude"
tags: ["GMV Max"]
---

# Exclude videos from GMV Max campaigns

`POST /gmv-max/campaign-exclusions/exclude`

## Request

- Base URL: `https://api.reacherapp.com/public/v1`
- URL: `https://api.reacherapp.com/public/v1/gmv-max/campaign-exclusions/exclude`
- Auth: API key in header `x-api-key` and API key in header `x-shop-id`

Exclude the given videos from the given campaigns, leaving the same videos live in the shop's other campaigns. Idempotent on (shop, campaign, video): re-excluding an already-excluded placement is a no-op. Ids that are not a numeric TikTok video id come back in `invalid`, never silently dropped. Requires `read_write` scope and an `Idempotency-Key`. Single shop only.

## Headers

- `Idempotency-Key` string, nullable

## Request body

- GmvMaxCampaignExcludeRequest: POST /gmv-max/campaign-exclusions/exclude request body — exclude the given videos from the given campaigns. Idempotent on (shop, campaign, video).
  - `campaign_ids` string[], required: TikTok campaign ids to scope the exclusion to (max 100 per call) — the same campaign ids returned by GET /gmv-max/campaigns.
  - `video_ids` string[], required: TikTok video ids to exclude from the named campaigns (max 500 per call). Pasted URLs are unwrapped; ids that are not a numeric TikTok video id are returned in `invalid`, never silently dropped.
  - `reason` string, nullable: Optional free-text note stored on every row created by this call.

## Response `200`

Successful Response

- GmvMaxCampaignExclusionWriteResponse: POST /gmv-max/campaign-exclusions/exclude.
  - `data` GmvMaxCampaignExclusionResult, required
    - `queued` integer, required: (campaign, video) placements newly queued for exclusion.
    - `in_progress` integer: Placements whose previous TikTok call is still running; not changed this time.
    - `already_excluded` integer, required: Placements that were already excluded.
    - `not_in_campaign` integer, required: Requested placements that are not in the campaign.
    - `invalid` string[], required: Inputs that are not a numeric TikTok video id (not excluded).

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `409`: Conflict
- `422`: Unprocessable Entity
- `429`: Too Many Requests
- `500`: Internal Server Error
- `503`: Service Unavailable

## Changes

> 76 revisions in range; 1 not diffed.

- **2026-10-14** `2a7ed9f8c407`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/reacherapp/apis/reacher-data-api/changes/gmv-max/campaign-exclusions/exclude/post.md)

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) - [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reacherapp/apis/reacher-data-api/revisions/63ce74b30b5a?raw)
