---
title: "Exclude many videos from GMV Max"
method: POST
path: "/gmv-max/excluded-videos/bulk"
tags: ["GMV Max"]
---

# Exclude many videos from GMV Max

`POST /gmv-max/excluded-videos/bulk`

## Request

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

Exclude a list of videos (creatives) from this shop's GMV Max delivery in one call — paste the video ids from an Ads Manager export or from the GMV Max video summary tool. Up to 500 valid ids per call; duplicates are collapsed, already-excluded ids are counted in `already_excluded`, and inputs that are not a numeric TikTok video id come back in `invalid` (nothing is silently dropped). Each excluded creative comes off spend on the next reconcile (~4h) while its creator's other videos keep delivering. Requires `read_write` scope and an `Idempotency-Key`. Single shop only.

## Headers

- `Idempotency-Key` string, nullable

## Request body

- GmvMaxExcludeVideosBulkRequest: POST /gmv-max/excluded-videos/bulk request body — exclude many videos in one call (an Ads Manager export pasted in). Ids the server cannot parse are returned in `invalid`, never silently dropped.
  - `video_ids` string[], required: TikTok video ids to exclude (max 500 per call). Duplicates are collapsed; already-excluded ids are counted, not re-written.
  - `reason` string, nullable: Optional note stored on every row created by this call.

## Response `200`

Successful Response

- GmvMaxBulkVideoExclusionResponse: POST /gmv-max/excluded-videos/bulk.
  - `data` GmvMaxBulkVideoExclusionResult, required
    - `requested` integer, required: How many ids were sent.
    - `excluded` integer, required: Newly excluded videos.
    - `already_excluded` integer, required: Valid ids that were already on the list.
    - `invalid` string[], required: Inputs that are not a numeric TikTok video id (not excluded).
    - `excluded_video_ids` string[], required: The ids newly excluded by this call.

## Other responses

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

## Changes

> 76 revisions in range; 1 not diffed.

- **2026-09-12** `19eefbad93ec`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/reacherapp/apis/reacher-data-api/changes/gmv-max/excluded-videos/bulk/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)
