curl --request POST \
--url https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
"<string>"
]
}
'import requests
url = "https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read"
payload = { "inputs": ["<string>"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: ['<string>']})
};
fetch('https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read"
payload := strings.NewReader("{\n \"inputs\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"statuses": [
{
"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>"
}
],
"subscriberIdString": "<string>"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"statuses": [
{
"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>"
}
],
"subscriberIdString": "<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"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Batch retrieve subscription statuses
Recuperar por lotes los estados de suscripción de un conjunto de contactos.
curl --request POST \
--url https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
"<string>"
]
}
'import requests
url = "https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read"
payload = { "inputs": ["<string>"] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: ['<string>']})
};
fetch('https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read"
payload := strings.NewReader("{\n \"inputs\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/communication-preferences/2026-03/statuses/batch/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"statuses": [
{
"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>"
}
],
"subscriberIdString": "<string>"
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"statuses": [
{
"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>"
}
],
"subscriberIdString": "<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"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Autorizaciones
The access token received from the authorization server in the OAuth 2.0 flow.
Parámetros de consulta
EMAIL Cuerpo
Una lista de cadenas que representan las entradas para las operaciones por lotes.
Respuesta
successful operation
La fecha y hora en que se completó el proceso por lotes.
La matriz de resultados del proceso por lotes, cada uno de los cuales contiene información sobre el estado de la suscripción.
Show child attributes
Show child attributes
La fecha y la hora en que comenzó el proceso por lotes.
El estado actual del proceso por lotes, que puede ser: PENDIENTE, PROCESANDO, CANCELADO o COMPLETADO.
CANCELED, COMPLETE, PENDING, PROCESSING Una recopilación de enlaces relacionados asociados con la respuesta por lotes.
Show child attributes
Show child attributes
La fecha y hora en que se realizó la solicitud por lotes.