Campaign Content & Challenges

Apply a bulk exclusion as a background job

Applies a batch of video ids across every campaign the chosen scope resolves to. Returns a job_id IMMEDIATELY — a wide sweep costs one full re-aggregation per campaign and would outlive the request otherwise. Poll GET /campaigns/{campaign_id}/content/exclusions/jobs/{job_id} for progress.

The job RE-RESOLVES the targets rather than trusting a preview: minutes can pass between preview and apply, and in that window a creator can be removed or another manager can exclude the same video.

Same scope semantics and reason/note rules as the preview and single-exclude calls. Requires read_write scope and an Idempotency-Key; X-Dry-Run: true echoes the intended job without enqueuing it.

post/campaigns/{campaign_id}/content/exclusions/bulk

Request

  • Base URL
    https://api.reacherapp.com/public/v1
  • URL
    https://api.reacherapp.com/public/v1/campaigns/{campaign_id}/content/exclusions/bulk
  • Auth
    API key in header x-api-key and API key in header x-shop-id

Path parameters

campaign_idinteger required

Headers

Idempotency-Keystring nullable
X-Dry-Runstring nullable

Request body

video_idsstring[] required
reasonsExclusionReason[] required
notestring
scope'campaign' | 'shop'

How far an uploaded file reaches.

campaign is the default: the button lives on one campaign's Content tab and acting only there is what a brand expects. shop is the opt-in that also excludes the video from every other campaign it appears in, which is the whole point of the upload but is far more destructive, so it is never implied.

source_filestring nullable

Response

Successful Response

unknown required

Changes

No operation changes recorded.