---
title: "Update GMV Max BOF auto-exclude settings"
method: PUT
path: "/gmv-max/bof-settings"
tags: ["GMV Max"]
---

# Update GMV Max BOF auto-exclude settings

`PUT /gmv-max/bof-settings`

## Request

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

Enable or disable automatic exclusion of bottom-of-funnel creators (`auto_exclude_enabled`) and/or AI-labelled videos (`ai_auto_exclude_enabled`) for this shop's GMV Max delivery. Send at least one; only the toggles sent are changed. Returns both values. Requires `read_write` scope and an `Idempotency-Key`. Single shop only.

## Headers

- `Idempotency-Key` string, nullable

## Request body

- GmvMaxBofSettingsUpdateRequest: PUT /gmv-max/bof-settings request body — toggle auto-exclusion of bottom-of-funnel creators and AI-labelled videos for the shop. Only the fields sent are written; at least one is required.
  - `auto_exclude_enabled` boolean, nullable: When true, the shop's GMV Max BOF reconcile job automatically excludes creators it flags as bottom-of-funnel. When false, only creators excluded manually (via POST /gmv-max/excluded-creators) are taken off delivery. Omit to leave unchanged.
  - `ai_auto_exclude_enabled` boolean, nullable: When true, videos TikTok labels as AI-generated are automatically excluded from the shop's GMV Max delivery, one video at a time. Omit to leave unchanged.

## Response `200`

Successful Response

- GmvMaxBofSettingsResponse: GET /gmv-max/bof-settings and PUT /gmv-max/bof-settings.
  - `data` GmvMaxBofSettings, required
    - `shop_id` integer, required
    - `auto_exclude_enabled` boolean, required: Whether the shop auto-excludes bottom-of-funnel creators. Defaults to false for shops that have never toggled it.
    - `ai_auto_exclude_enabled` boolean, required: Whether the shop auto-excludes videos TikTok labels as AI-generated, per video. Defaults to false for shops that have never toggled it.

## 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-10-22** `de8b452a7811`: 4 info
  - added the new optional request property `ai_auto_exclude_enabled`
  - the request property `auto_exclude_enabled` became optional
  - request property `auto_exclude_enabled` list-of-types was widened by adding types `null` to media type `application/json`
  - added the required property `data/ai_auto_exclude_enabled` to the response with the `200` status

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