Skip to main content
POST
/
communication-preferences
/
2026-03
/
statuses
/
{subscriberIdString}
Update a contact's subscription status
curl --request POST \
  --url https://api.hubapi.com/communication-preferences/2026-03/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"
}

Documentation Index

Fetch the complete documentation index at: https://developers.hubspot.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Supported products

Authorizations

Authorization
string
header
required

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

Path Parameters

subscriberIdString
string
required

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 May 1, 2026