Channels

List SES setups

get

Paginated list of every SES setup on the platform. Items carry the cached dns_verified aggregate; call GET /ses-setup/{id} for per-record DNS detail. Setups are shared platform-wide; any caller with Channel.view permission sees the full list.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Query parameters
limitinteger · max: 20OptionalDefault: 10
continuation_tokenintegerOptionalDefault: 0
Responses
chevron-right
200

Successful Response

application/json
has_morebooleanRequired
continuation_tokenany ofOptional
integerOptional
or
nullOptional
totalany ofOptional
integerOptional
or
nullOptional
get
/v1/{workspace_id}/channels/ses-setup

Create an SES setup

post

Create an SES tenant + verified email identity. Returns the DNS records the customer must publish (DKIM CNAMEs, MX, DMARC TXT). Subsequent GET or POST /verify calls re-run the live DNS lookup and update the per-record verified flag. Setups are shared platform-wide; any caller with Channel.create permission can create one.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
Body
tenant_namestring · min: 1 · max: 64Required

Logical SES tenant name (reputation + suppression isolation boundary). Unique within the AWS account. Alphabet [A-Za-z0-9_-], 1-64 chars.

Pattern: ^[A-Za-z0-9_-]+$
domain_identitystring · min: 1 · max: 255Required

Domain to verify for both sending and receiving (e.g. mail.customer.com). A single SES identity serves both directions.

Responses
post
/v1/{workspace_id}/channels/ses-setup

Get an SES setup with live DNS refresh

get

Returns full SES setup detail including per-record DNS verification status. Channel-manager re-runs GetEmailIdentity + DMARC/MX resolvers on every call, so each GET is a live check. Requires Channel.view permission.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
setup_idstring · uuidRequired
Responses
chevron-right
200

Successful Response

application/json
idstringRequired
tenant_namestringRequired
domain_identitystringRequired
dns_checked_atany ofRequired
string · date-timeOptional
or
nullOptional
created_atstring · date-timeRequired
updated_atstring · date-timeRequired
get
/v1/{workspace_id}/channels/ses-setup/{setup_id}

Delete an SES setup

delete

Tear down the upstream SES tenant + identity. Refuses (409) if any use case still references the setup. Requires Channel.delete permission.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
setup_idstring · uuidRequired
Responses
delete
/v1/{workspace_id}/channels/ses-setup/{setup_id}

No content

Refresh SES DNS verification

post

Explicit DNS refresh endpoint. Equivalent to GET /ses-setup/{id} but exposed as a POST so UI Verify now actions read as actions rather than reads. Requires Channel.view permission.

Authorizations
AuthorizationstringRequired

API key issued via POST /v1/{workspace_id}/api-keys. Pass the returned api_key value as a Bearer token.

Path parameters
workspace_idstring · uuidRequired
setup_idstring · uuidRequired
Responses
chevron-right
200

Successful Response

application/json
idstringRequired
tenant_namestringRequired
domain_identitystringRequired
dns_checked_atany ofRequired
string · date-timeOptional
or
nullOptional
created_atstring · date-timeRequired
updated_atstring · date-timeRequired
post
/v1/{workspace_id}/channels/ses-setup/{setup_id}/verify

Last updated

Was this helpful?