---
title: "Update a contact's subscription status"
method: POST
path: "/communication-preferences/2026-09/statuses/{subscriberIdString}"
tags: ["Status"]
---

# Update a contact's subscription status

`POST /communication-preferences/2026-09/statuses/{subscriberIdString}`

## Request

- Base URL: `https://api.hubapi.com`
- URL: `https://api.hubapi.com/communication-preferences/2026-09/statuses/{subscriberIdString}`
- Auth: OAuth 2
  - Authorization code: `https://app.hubspot.com/oauth/authorize`
  - Token URL: `https://api.hubapi.com/oauth/v1/token` scopes: `communication_preferences.read_write`

Set the subscription status of a specific contact.

## Path parameters

- `subscriberIdString` string, required

## Request body

- PartialPublicStatusRequest
  - `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.
  - `statusState` 'NOT_SPECIFIED' | 'SUBSCRIBED' | 'UNSUBSCRIBED', required: The current subscription status of the contact, which can be 'SUBSCRIBED', 'UNSUBSCRIBED', or 'NOT_SPECIFIED'.
  - `subscriptionId` integer, required: The unique identifier of the subscription to be updated.

## Response `200`

successful operation

- ActionResponseWithResultsPublicStatus
  - `completedAt` string, date-time, required: The date and time when the operation was completed.
  - `errors` StandardError[]: A list of errors that occurred during the 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: Contains URLs related to the response, such as documentation or resources.
  - `numErrors` integer: The number of errors that occurred during the operation.
  - `requestedAt` string, date-time: The date and time when the request was made.
  - `results` PublicStatus[], required: An array of results from the operation.
    - `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.
  - `startedAt` string, date-time, required: The date and time when the operation started.
  - `status` 'CANCELED' | 'COMPLETE' | 'PENDING' | 'PROCESSING', required: Indicates the current status of the operation, with possible values: PENDING, PROCESSING, CANCELED, COMPLETE.

## Other responses

- `default`: An error occurred.

## Changes

- **2026-09-03** (2026-09) `e1706f57adc0`: 1 breaking, 6 info
  - the `results/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
  - the endpoint scheme security `private_apps` was removed from the API
  - the security scope `communication_preferences.read_write` was added to the endpoint's security scheme `oauth2`
  - …3 more

[Operation history](https://skmtc.dev/hubspot/apis/communication-preferences-subscriptions/changes/communication-preferences/2026-09/statuses/:subscriberIdString/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)
