Subscribe Status
Reports whether a contact is subscribed at the project level: the master switch that overrides every per-type preference. Public and unauthenticated so an unsubscribe page can show current state before the contact acts.
Authorization
Authorization In: header
Path Parameters
ID of the project that owns the contact.
Query Parameters
Distinct ID of the contact. Pass the encrypted form and set encrypted when calling from an emailed link.
Set when contactDistinctId is the encrypted value from an emailed link, so the server decrypts it before the lookup.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://www.saasco.com/api/v2/projects/string/crm/contact-notification-preferences/subscribe-status?contactDistinctId=string"{
"subscribed": true
}{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Update Preference
Sets whether a contact is subscribed to one notification type, creating the preference if it does not exist yet and updating it otherwise. Public and unauthenticated so it can back an emailed preference-centre link: pass the encrypted contact ID from that link together with `encrypted: true` rather than exposing raw distinct IDs in a URL. Returns 404 if the contact does not exist.
Update Subscribe Status
Subscribes or unsubscribes a contact at the project level: the master switch that overrides every per-type preference, and what an unsubscribe link should call. Unsubscribing records the reason as `manual`. Pass `encrypted: true` with the token from an emailed link to apply the change to every contact sharing that address. A raw distinct ID only updates that one contact. Note this endpoint does not verify the contact exists; it writes the properties either way.