Contact routes: subscribe, suppress, unsubscribe
The Contact Verbs subscribe, suppress, unsubscribe as api.sb routes, with inputs, result, refusals and an example.
Reference for Contact, one group of Contact routes.
Contact.subscribe
Subscribe records a Contact’s chosen topics and frequency from the hosted preference page, with Consent for each topic. Verb page.
POST /{namespace}/ contacts/ {contact}/ subscribePath: contact. Body, as JSON: the other inputs. Emits Contact.subscribed.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
contact | Contact | required | The Contact. |
topics | string[] | required | The topics the Contact chose. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
contact | Contact | required | The Contact, with their topics. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ contacts/ contact_WsrosCQi6J/ subscribe \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
-H "Content-Type: application/ json" \
-d '{"topics": ["Example topics"]}'{
"api": "https: //api.sb/ leaseline.app",
"contact": {
"$id": "https: //api.sb/ leaseline.app/ contacts/ contact_WsrosCQi6J",
"$type": "Contact",
"email": "marcus@riversideproperty.com",
"phone": "Example phone"
},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"operation": "Contact.subscribe",
"status": "done"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}Contact.suppress
Suppress records a Suppression for a Contact’s address, which every Startup honors forever. Verb page.
POST /{namespace}/ contacts/ {contact}/ suppressPath: contact. Emits Contact.suppressed.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
contact | Contact | required | The Contact who opts out. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
contact | Contact | required | The suppressed Contact. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ contacts/ contact_WsrosCQi6J/ suppress \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"{
"api": "https: //api.sb/ leaseline.app",
"contact": {
"$id": "https: //api.sb/ leaseline.app/ contacts/ contact_WsrosCQi6J",
"$type": "Contact",
"email": "marcus@riversideproperty.com",
"phone": "Example phone"
},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"operation": "Contact.suppress",
"status": "done"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}Contact.unsubscribe
Unsubscribe stops commercial Messages to a Contact in one click, for one topic or all, honored at once. Verb page.
POST /{namespace}/ contacts/ {contact}/ unsubscribePath: contact. Body, as JSON: the other inputs. Emits Contact.unsubscribed.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
contact | Contact | required | The Contact. |
topic | string | One topic; omitted, every commercial topic. |
Returns
| Output | Type | Required | Description |
|---|---|---|---|
contact | Contact | required | The Contact, unsubscribed. |
Refuses when
| Check | Error | Fix | Then call |
|---|---|---|---|
| The key is valid, but its scopes do not allow this operation. | forbidden | Use a key whose scopes cover the operation, or ask an owner of the namespace to grant them. | None. |
Example
curl -X POST https: //api.sb/ leaseline.app/ contacts/ contact_WsrosCQi6J/ unsubscribe \
-H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"{
"api": "https: //api.sb/ leaseline.app",
"contact": {
"$id": "https: //api.sb/ leaseline.app/ contacts/ contact_WsrosCQi6J",
"$type": "Contact",
"email": "marcus@riversideproperty.com",
"phone": "Example phone"
},
"action": {
"$id": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG",
"operation": "Contact.unsubscribe",
"status": "done"
},
"links": {
"self": "https: //api.sb/ leaseline.app/ actions/ act_br07HsG8MG"
}
}