Skip to main content
POST
/
communication-preferences
/
v4
/
statuses
/
{subscriberIdString}
Update a contact's subscription status
curl --request POST \
  --url https://api.hubapi.com/communication-preferences/v4/statuses/{subscriberIdString} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "channel": "EMAIL",
  "statusState": "NOT_SPECIFIED",
  "subscriptionId": 123,
  "legalBasis": "CONSENT_WITH_NOTICE",
  "legalBasisExplanation": "<string>"
}
'
{
  "completedAt": "2023-11-07T05:31:56Z",
  "results": [
    {
      "channel": "EMAIL",
      "source": "<string>",
      "status": "NOT_SPECIFIED",
      "subscriberIdString": "<string>",
      "subscriptionId": 123,
      "timestamp": "2023-11-07T05:31:56Z",
      "businessUnitId": 123,
      "legalBasis": "CONSENT_WITH_NOTICE",
      "legalBasisExplanation": "<string>",
      "setStatusSuccessReason": "NO_STATUS_CHANGE",
      "subscriptionName": "<string>"
    }
  ],
  "startedAt": "2023-11-07T05:31:56Z",
  "status": "CANCELED",
  "errors": [
    {
      "category": "<string>",
      "context": {},
      "errors": [
        {
          "message": "<string>",
          "code": "<string>",
          "context": "{missingScopes=[scope1, scope2]}",
          "in": "<string>",
          "subCategory": "<string>"
        }
      ],
      "links": {},
      "message": "<string>",
      "status": "<string>",
      "id": "<string>",
      "subCategory": {}
    }
  ],
  "links": {},
  "numErrors": 123,
  "requestedAt": "2023-11-07T05:31:56Z"
}

Supported products

Requires one of the following products or higher.
Marketing HubMarketing Hub -Starter
Sales HubSales Hub -Free
Service HubService Hub -Free
Content HubContent Hub -Free
Data HubData Hub -Free

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

subscriberIdString
string
required

The contact's email address.

Body

application/json
channel
enum<string>
required

The type of communication channel, with 'EMAIL' as the only supported option.

Available options:
EMAIL
statusState
enum<string>
required

The current subscription status of the contact, which can be 'SUBSCRIBED', 'UNSUBSCRIBED', or 'NOT_SPECIFIED'.

Available options:
NOT_SPECIFIED,
SUBSCRIBED,
UNSUBSCRIBED
subscriptionId
integer<int64>
required

The unique identifier of the subscription to be updated.

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'.

Available options:
CONSENT_WITH_NOTICE,
LEGITIMATE_INTEREST_CLIENT,
LEGITIMATE_INTEREST_OTHER,
LEGITIMATE_INTEREST_PQL,
NON_GDPR,
PERFORMANCE_OF_CONTRACT,
PROCESS_AND_STORE

An explanation for the legal basis used for communication.

Response

successful operation

completedAt
string<date-time>
required

The date and time when the operation was completed.

results
object[]
required

An array of results from the operation.

startedAt
string<date-time>
required

The date and time when the operation started.

status
enum<string>
required

Indicates the current status of the operation, with possible values: PENDING, PROCESSING, CANCELED, COMPLETE.

Available options:
CANCELED,
COMPLETE,
PENDING,
PROCESSING
errors
object[]

A list of errors that occurred during the operation.

Contains URLs related to the response, such as documentation or resources.

numErrors
integer<int32>

The number of errors that occurred during the operation.

requestedAt
string<date-time>

The date and time when the request was made.

Last modified on December 16, 2025