Retrieve a Contact's Publications
Lists every publication in the workspace with this contact's consent state.
curl --location --request POST 'https://api.audienceful.com/v2/people/publications' \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <your-api-key>' \
--data-raw '{
"email": "person@example.com"
}'{
"data": [
{
"id": "kR2xN9mDfLpQ",
"name": "The Weekly",
"subscribed": true,
"explicit": true,
"source": "api"
},
{
"id": "mZ7bV3nQwXcT",
"name": "Product Updates",
"subscribed": false,
"explicit": false,
"source": null
}
],
"unsubscribed_all": false
}Requires the publications:read scope.
Publications are consent streams — a record of what a contact has agreed to receive. They are separate from audiences, which are about targeting; an actual send goes to the intersection of the two.
This endpoint returns every publication in the workspace alongside this one contact's effective state for each, so a client always sees the full picture rather than only the publications the contact has explicitly touched.
Address the contact in the request body, with either their id or their email. Omitting publications from the body makes the call a read, which is all this endpoint does — add a publications map to the same request to change consent, as described in Update a Contact's Publications.
Body
email when both are supplied.One of id or email is required; supplying neither returns a 400.
Also available: GET /v2/people/{id}/publications
The path form still works and is not deprecated:
curl 'https://api.audienceful.com/v2/people/jQKdwqp3YRRtTrwqUJEp7d/publications' \
--header 'X-Api-Key: <your-api-key>'
Response
true when the contact has globally unsubscribed from all email. A global unsubscribe outranks every per-publication state, so a contact with subscribed: true on a publication still receives nothing while this is true.