Skip to content

HubSpot: Retrieve a contact's unsubscribed status

HubSpot communicationPreferences.getUnsubscribedStatus: arguments, response, policy and SDK examples.

← Communication preferences operations · Get started

Operation hubspot.communication_preferences_get_unsubscribed_status

Provider route: GET /communication-preferences/2026-09/statuses/{subscriberIdString}/unsubscribe-all. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/hubspot with npm, or alter-sdk-hubspot with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { HubSpotIntegration } from "@alter-ai/hubspot";
async function execute(input: Parameters<HubSpotIntegration["communicationPreferences"]["getUnsubscribedStatus"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new HubSpotIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.communicationPreferences.getUnsubscribedStatus(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_hubspot import HubSpotIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = HubSpotIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.communication_preferences.get_unsubscribed_status(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.subscriberIdStringstringRequired within parent
queryobjectRequired within parentAdditional keys: not allowed
query.channelstringRequired within parentOne of: EMAIL
query.businessUnitIdintegerOptionalFormat: int64
query.verbosebooleanOptionalDefault: false

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Retrieve a contact’s unsubscribed status — response body

Referenced models: Retrieve a contact’s unsubscribed status — response body

Retrieve a contact's unsubscribed status — response body
FieldTypePresenceDescription and constraints
$objectRoot
completedAtstringRequired within parentThe date and time when the operation was completed.
Format: date-time
errorsarrayOptionalAn array of error objects detailing any issues encountered during the operation.
errors[]ModelEach itemExpand Batch update subscription status — response body — errors item
linksobjectOptionalAn object containing related links, where each key is a link name and each value is a URL.
Additional keys: see wildcard field
links.*stringAdditional keys
numErrorsJSONOptional
numErrors (anyOf 1)integerAlternativeThe number of errors encountered during the operation.
Format: int32
numErrors (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
requestedAtstringOptionalThe date and time when the request was made.
Format: date-time
resultsarrayRequired within parentAn array containing the results of the operation.
results[]ModelEach itemExpand Retrieve a contact's unsubscribed status — response body — results item
startedAtstringRequired within parentThe date and time when the operation started.
Format: date-time
statusstringRequired within parentThe current status of the operation, which can be PENDING, PROCESSING, CANCELED, or COMPLETE.
Known values: CANCELED, COMPLETE, PENDING, PROCESSING

Referenced models: Batch update subscription status — response body — errors item, Retrieve a contact's unsubscribed status — response body — results item

Batch update subscription status — response body — errors item
FieldTypePresenceDescription and constraints
$objectRootYe olde error
categorystringRequired within parentA string that categorizes the type of error.
contextobjectRequired within parentAn object containing additional context about the error condition, with keys as context names and values as arrays of strings.
Additional keys: see wildcard field
context.*arrayAdditional keys
context.*[]stringEach item
errorsarrayRequired within parentAn array of ErrorDetail objects providing further information about the error.
errors[]ModelEach itemExpand Batch insert events — response body — errors item errors item
idstringOptionalA string representing the unique identifier of the error.
linksobjectRequired within parentAn object mapping link names to associated URIs that contain documentation about the error or recommended remediation steps.
Additional keys: see wildcard field
links.*stringAdditional keys
messagestringRequired within parentA string containing a human-readable message describing the error.
statusstringRequired within parentA string indicating the status of the error.
subCategoryobjectOptionalAn object providing more specific categorization of the error.

Referenced models: Batch insert events — response body — errors item errors item

Retrieve a contact's unsubscribed status — response body — results item
FieldTypePresenceDescription and constraints
$objectRoot
businessUnitIdJSONOptional
businessUnitId (anyOf 1)integerAlternativeThe ID of the business unit associated with the status.
Format: int64
businessUnitId (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
channelstringRequired within parentThe type of communication channel, with 'EMAIL' as the only supported option.
Known values: EMAIL
statusstringRequired within parentThe subscription status of the contact, which can be 'SUBSCRIBED', 'UNSUBSCRIBED', or 'NOT_SPECIFIED'.
Known values: NOT_SPECIFIED, SUBSCRIBED, UNSUBSCRIBED
subscriberIdStringstringRequired within parentThe email address of the contact.
timestampstringRequired within parentThe date and time when the status was recorded.
Format: date-time
wideStatusTypestringRequired within parentThe type of wide status, which can be 'PORTAL_WIDE' or 'BUSINESS_UNIT_WIDE'.
Known values: BUSINESS_UNIT_WIDE, PORTAL_WIDE
Batch insert events — response body — errors item errors item
FieldTypePresenceDescription and constraints
$objectRootRepresents detailed information about an error that occurred in the API. This component is used to provide additional context and specifics about errors, typically as part of an error response.
codestringOptionalThe status code associated with the error detail
contextobjectOptionalContext about the error condition
Additional keys: see wildcard field
context.*arrayAdditional keys
context.*[]stringEach item
instringOptionalThe name of the field or parameter in which the error was found.
messagestringRequired within parentA human readable message describing the error along with remediation steps where appropriate
subCategorystringOptionalA specific category that contains more specific detail about the error

SDK function policy ID: hubspot.communication_preferences_get_unsubscribed_status. Catalog operation: communication_preferences_get_unsubscribed_status. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["communication_preferences.read", "communication_preferences.read_write"]

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.