Consent purposes
Every profile’s consent map answers these keys, and every switch that offers one is labelled from here. One is fixed for every organization, marketing, the master switch every other purpose sits under; the rest are whatever your own code declares under purposes in cow.json. transactional is not here and never will be: it is why a receipt or an alert goes out, which is not something a recipient chooses, so nothing stores an answer to it. Read-only: purposes are code, so a push is what adds or relabels one, and nothing ever deletes one, because profiles already hold answers against it.
GET /v1/consent-purposes
Section titled “GET /v1/consent-purposes”List the consent purposes this organization declares
Auth: Session token.
Query parameters
{ "cursor": "string", "limit": 50}| Field | Type | Required | Constraints |
|---|---|---|---|
cursor |
string | no | |
limit |
integer | no | default 50; 1 ≤ x ≤ 100 |
Response 200
{ "data": [ { "key": "string", "label": "string", "defaultGranted": true } ], "meta": { "requestId": "string", "nextCursor": "string", "hasMore": true }}| Field | Type | Required | Constraints |
|---|---|---|---|
data |
object[] | yes | |
data[] |
object | yes | |
data[].key |
string | yes | length 0–50 |
data[].label |
string | yes | |
data[].defaultGranted |
boolean | yes | |
meta |
object | no | |
meta.requestId |
string | no | |
meta.nextCursor |
string | null | no | |
meta.hasMore |
boolean | no |
Errors follow the shared envelope and code table.