---
title: "Batch unsubscribe contacts from all subscriptions"
method: POST
path: "/communication-preferences/2026-09/statuses/batch/unsubscribe-all"
tags: ["Batch"]
---

# Batch unsubscribe contacts from all subscriptions

`POST /communication-preferences/2026-09/statuses/batch/unsubscribe-all`

## Request

- Base URL: `https://api.hubapi.com`
- URL: `https://api.hubapi.com/communication-preferences/2026-09/statuses/batch/unsubscribe-all`
- Auth: OAuth 2
  - Authorization code: `https://app.hubspot.com/oauth/authorize`
  - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `communication_preferences.statuses.batch.write`

Unsubscribe a set of contacts from all email subscriptions.

## Query parameters

- `channel` 'EMAIL', required
- `businessUnitId` integer
- `verbose` boolean

## Request body

- BatchInputString
  - `inputs` string[], required: A list of strings representing the inputs for batch operations.

## Response `200`

successful operation

- BatchResponsePublicBulkOptOutFromAllResponse
  - `completedAt` string, date-time, required: The date and time when the bulk opt-out operation was completed.
  - `errors` StandardError[]: An array of error objects detailing any issues encountered during the bulk opt-out operation.
    - `category` string, required: A string that categorizes the type of error.
    - `context` object, required: An object containing additional context about the error condition, with keys as context names and values as arrays of strings.
    - `errors` ErrorDetail[], required: An array of ErrorDetail objects providing further information about the error.
      - `code` string: The status code associated with the error detail
      - `context` object: Context about the error condition
      - `in` string: The name of the field or parameter in which the error was found.
      - `message` string, required: A human readable message describing the error along with remediation steps where appropriate
      - `subCategory` string: A specific category that contains more specific detail about the error
    - `id` string: A string representing the unique identifier of the error.
    - `links` object, required: An object mapping link names to associated URIs that contain documentation about the error or recommended remediation steps.
    - `message` string, required: A string containing a human-readable message describing the error.
    - `status` string, required: A string indicating the status of the error.
    - `subCategory` object: An object providing more specific categorization of the error.
  - `links` object: A collection of URLs linking to related resources or documentation.
  - `numErrors` integer: The total number of errors encountered during the bulk opt-out operation.
  - `requestedAt` string, date-time: The date and time when the bulk opt-out request was made.
  - `results` PublicBulkOptOutFromAllResponse[], required: An array containing the results of the bulk opt-out from all communications operation.
    - `statuses` PublicStatus[]: An array of subscription status objects for the contact.
      - `businessUnitId` integer: The ID of the business unit associated with the subscription.
      - `channel` 'EMAIL', required: The type of communication channel, with 'EMAIL' as the only supported option.
      - `legalBasis` 'CONSENT_WITH_NOTICE' | 'LEGITIMATE_INTEREST_CLIENT' | 'LEGITIMATE_INTEREST_OTHER' | 'LEGITIMATE_INTEREST_PQL' | 'NON_GDPR' | 'PERFORMANCE_OF_CONTRACT' | 'PROCESS_AND_STORE': The legal basis for communication, with options including 'LEGITIMATE_INTEREST_PQL', 'LEGITIMATE_INTEREST_CLIENT', 'PERFORMANCE_OF_CONTRACT', 'CONSENT_WITH_NOTICE', 'NON_GDPR', 'PROCESS_AND_STORE', and 'LEGITIMATE_INTEREST_OTHER'.
      - `legalBasisExplanation` string: An explanation for the legal basis used for communication.
      - `setStatusSuccessReason` 'NO_STATUS_CHANGE' | 'REQUESTED_CHANGE_OCCURRED' | 'RESUBSCRIBE_OCCURRED' | 'UNSUBSCRIBE_FROM_ALL_OCCURRED': The reason for the successful change in subscription status, such as 'RESUBSCRIBE_OCCURRED' or 'NO_STATUS_CHANGE'.
      - `source` string, required: The origin or method through which the subscription status was set.
      - `status` 'NOT_SPECIFIED' | 'SUBSCRIBED' | 'UNSUBSCRIBED', required: The current subscription status of the contact, which can be 'SUBSCRIBED', 'UNSUBSCRIBED', or 'NOT_SPECIFIED'.
      - `subscriberIdString` string, required: The contact's email address.
      - `subscriptionId` integer, required: The unique identifier of the subscription.
      - `subscriptionName` string: The name of the subscription.
      - `timestamp` string, date-time, required: The date and time when the subscription status was last updated.
    - `subscriberIdString` string, required: The email address of the contact.
  - `startedAt` string, date-time, required: The date and time when the bulk opt-out operation began.
  - `status` 'CANCELED' | 'COMPLETE' | 'PENDING' | 'PROCESSING', required: The current status of the bulk opt-out operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE.

## Other responses

- `default`: An error occurred.

## Changes

- **2026-09-03** (2026-09) `e1706f57adc0`: 1 breaking, 1 info
  - the `results/items/statuses/items/subscriptionId` response's property format changed from `int32` to `int64` for status `200`
  - the endpoint scheme security `private_apps` was removed from the API

[Operation history](https://skmtc.dev/hubspot/apis/communication-preferences-subscriptions/changes/communication-preferences/2026-09/statuses/batch/unsubscribe-all/post.md)

---

[API](https://skmtc.dev/hubspot/apis/communication-preferences-subscriptions.md) - [All operations](https://skmtc.dev/hubspot/apis/communication-preferences-subscriptions/llms.txt) - [OpenAPI document](https://skmtc.dev/hubspot/apis/communication-preferences-subscriptions/revisions/7a38d643f718?raw)
