Get all configured communication channels

GET /api/configuration/consent/communication-channels

Success: 200 OK

Overview

Lists the communication channels a member can give or withhold consent for — email, post, SMS and so on. Call it once at start-up to build a consent preferences screen, and use the channelId values it returns wherever the consent endpoints ask for a channel.

Trim channelId before you compare it. Ids are fixed at 16 characters and come back blank-padded — "EMAIL ", not "EMAIL". Gladstone itself trims before matching; equality checks against an untrimmed literal will silently fail.

A new tenant starts with EMAIL, MAIL (post), SMS, SOCIALMEDIA and TELEPHONE. After that the list belongs to the operator, who can add channels of their own, so do not treat the starter five as a closed set and do not hard-code around them. The starter ids are the closest thing to stable values this endpoint offers, and even they can be renamed or removed.

One channel is deliberately hidden. A marker channel, CHANNEL_COMPREF ("Default channel"), represents campaign-level rather than channel-level consent, and is excluded from this list. You will never see it here, and you should not send it.

When no channels are configured you get 200 with an empty array [].

Endpoint

GET {base_url}/api/configuration/consent/communication-channels

{base_url} is the environment URL issued to your integration. See Authenticating with Gladstone APIs.

Sample request

cURL
curl -X GET '{base_url}/api/configuration/consent/communication-channels' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true'

Response fields

FieldTypeDescription
[].channelIdstringThe channel identifier, and the value you pass to the consent endpoints. It is unique within your tenant. Fixed at 16 characters and blank-padded on the right — "SMS " rather than "SMS" — so trim it before storing, comparing or displaying it. Uppercase by convention in the starter data, but nothing enforces case, so compare case-insensitively as well. Operator-editable: a channel can be added or removed per tenant, so resolve it from this call rather than hard-coding.
[].channelNamestringThe channel's display label, for example Email or Social Media. Maximum 50 characters. It can be null while channelId is populated — fall back to the trimmed channelId when rendering. Free text the operator can edit; never key logic on it. A second-language variant of this label can be configured but is not returned by this endpoint, so a bilingual interface cannot be built from this response alone.
[].protectedbooleantrue when the channel is flagged as a system channel, which the starter EMAIL, MAIL, SMS and TELEPHONE channels are and the starter SOCIALMEDIA channel is not. Treat it as a signal that the channel underpins platform behaviour and should not be offered for deletion or renaming in an administration UI. It says nothing about whether a member may consent to the channel, and nothing about whether the channel is currently in use — a protected channel and an operator-created one are equally valid targets for a consent record. Always present; never null.

Sample response

200 OK
[
  {
    "channelId": "string",
    "channelName": "string",
    "protected": true
  }
]

Errors

StatusMeaningWhen
500Internal server errorAny unexpected server-side failure while reading the channels. The response is a bare status code with no body, so there is no detail to act on. Retry with backoff and fall back to a cached copy of this reference data.

This page as markdown · All pages · llms.txt