# HubSpot Communication Preferences Subscriptions API

> HubSpot Communication Preferences Subscriptions API on Apizie: 10 endpoints (Retrieve all subscription status definitions, Generate subscription links, Batch retrieve subscription statuses, Batch unsubscribe contacts from all subscriptions, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/open-data:hubapi-communication-preferences/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `open-data:hubapi-communication-preferences`
- Category: Open Data
- Status: byok
- Source: https://developers.hubspot.com/docs/api/overview
- Page: https://apizie.tech/api/open-data/hubapi-communication-preferences
- OpenAPI: https://apizie.tech/api/open-data/hubapi-communication-preferences/openapi.json

Basepom for all HubSpot Projects

## Endpoints

### Retrieve all subscription status definitions
`GET https://apizie.tech/v1/open-data:hubapi-communication-preferences/get-communication-preferences-2026-09-definitions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| businessUnitId | integer | no | An integer representing the unique identifier of the business unit for which to retrieve communication preferences definitions. |
| includeTranslations | boolean | no | A boolean indicating whether to include translations for the subscription definitions. Defaults to false if not specified. |

### Generate subscription links
`POST https://apizie.tech/v1/open-data:hubapi-communication-preferences/post-communication-preferences-2026-09-links-generate-commun` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| channel | string | yes | The communication channel for which the links are generated. Currently, only 'EMAIL' is supported. |
| businessUnitId | integer | no | The ID of the business unit for which the links are generated. It is an optional parameter and defaults to 0. |
| body | object | yes | JSON request body |

### Batch retrieve subscription statuses
`POST https://apizie.tech/v1/open-data:hubapi-communication-preferences/post-communication-preferences-2026-09-statuses-batch-read` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| channel | string | yes | A required string specifying the communication channel. Currently, only 'EMAIL' is supported. |
| businessUnitId | integer | no | An optional integer representing the business unit ID. This parameter helps in filtering the results based on a specific business unit. |
| body | object | yes | JSON request body |

### Batch unsubscribe contacts from all subscriptions
`POST https://apizie.tech/v1/open-data:hubapi-communication-preferences/post-communication-preferences-2026-09-statuses-batch-unsubs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| channel | string | yes | The communication channel from which to unsubscribe all subscribers. This parameter is required and currently supports only 'EMAIL'. |
| businessUnitId | integer | no | The ID of the business unit for which the operation is being performed. This is an optional parameter. |
| verbose | boolean | no | A boolean flag indicating whether to include detailed information in the response. Defaults to false. |
| body | object | yes | JSON request body |

### Batch retrieve contacts who have opted out of all communications
`POST https://apizie.tech/v1/open-data:hubapi-communication-preferences/post-communication-preferences-2026-09-statuses-batch-unsubs-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| channel | string | yes | A required string specifying the communication channel. Currently, only 'EMAIL' is supported. |
| businessUnitId | integer | no | An optional integer representing the business unit ID to filter the results. |
| body | object | yes | JSON request body |

### Batch update subscription status
`POST https://apizie.tech/v1/open-data:hubapi-communication-preferences/post-communication-preferences-2026-09-statuses-batch-write` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Get subscription preferences for a specific contact
`GET https://apizie.tech/v1/open-data:hubapi-communication-preferences/get-communication-preferences-2026-09-statuses-subscriber-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscriberIdString | string | yes | The unique identifier of the subscriber whose communication preferences status is being retrieved. |
| channel | string | yes | The communication channel for which the subscription status is being retrieved. Must be 'EMAIL'. |
| businessUnitId | integer | no | The ID of the business unit to filter the subscription status. This is an optional parameter. |

### Update a contact's subscription status
`POST https://apizie.tech/v1/open-data:hubapi-communication-preferences/post-communication-preferences-2026-09-statuses-subscriber-i` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscriberIdString | string | yes | The unique identifier of the subscriber whose communication preferences status is to be updated. |
| body | object | yes | JSON request body |

### Retrieve a contact's unsubscribed status
`GET https://apizie.tech/v1/open-data:hubapi-communication-preferences/get-communication-preferences-2026-09-statuses-subscriber-id-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscriberIdString | string | yes | The unique identifier of the subscriber whose unsubscribe status is being retrieved. |
| channel | string | yes | The communication channel for which the unsubscribe status is being checked. Must be 'EMAIL'. |
| businessUnitId | integer | no | An optional integer representing the business unit ID. |
| verbose | boolean | no | A boolean indicating whether to include detailed information. Defaults to false. |

### Unsubscribe a contact from all subscriptions
`POST https://apizie.tech/v1/open-data:hubapi-communication-preferences/post-communication-preferences-2026-09-statuses-subscriber-i-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| subscriberIdString | string | yes | The unique identifier of the subscriber to unsubscribe. |
| channel | string | yes | The communication channel to unsubscribe from. Must be 'EMAIL'. |
| businessUnitId | integer | no | An optional integer representing the business unit ID. |
| verbose | boolean | no | An optional boolean to include detailed information in the response. Defaults to false. |

## Example
```
curl "https://apizie.tech/v1/open-data:hubapi-communication-preferences/get-communication-preferences-2026-09-definitions" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the HubSpot Communication Preferences Subscriptions API?
Create a free Apizie key, then send GET https://apizie.tech/v1/open-data:hubapi-communication-preferences/get-communication-preferences-2026-09-definitions with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the HubSpot Communication Preferences Subscriptions API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. HubSpot Communication Preferences Subscriptions itself also needs your own key from hubapi.com.

### Can AI agents use the HubSpot Communication Preferences Subscriptions API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key open-data:hubapi-communication-preferences.

### What is the status of the HubSpot Communication Preferences Subscriptions API?
Needs your own provider key (bring your own key)
