Providers

7 endpoints

GET/api/providers/{id}

Get provider

Retrieve a single provider by ID.

Parameters
NameInTypeRequiredDescription
idpathstring (uuid)requiredProvider ID
Responses
200Provider details
FieldTypeRequiredDescription
idstringrequired
namestringrequired
typestringrequired
configanyrequired
isActiveanyrequired
priorityanyrequired
rateLimitPerMinuteanyrequired
rateLimitPerHouranyrequired
rateLimitPerDayanyrequired
isHealthyanyrequired
lastHealthCheckanyrequired
usageMinuteanyrequired
usageHouranyrequired
usageDayanyrequired
createdAtstringrequired
accountSourcestringoptional("byo" | "managed")
statusstringoptional("provisioning" | "active" | "suspended" | "deprovisioned")
404Provider not found
FieldTypeRequiredDescription
errorstringrequired
PUT/api/providers/{id}

Update provider

Update an existing provider configuration. All fields are optional.

Parameters
NameInTypeRequiredDescription
idpathstring (uuid)requiredProvider ID
Request Bodyrequired
FieldTypeRequiredDescription
namestringoptional
typestringoptional
configobjectoptional
isActivebooleanoptional
prioritynumberoptional
rateLimitPerMinutenumberoptional
rateLimitPerHournumberoptional
rateLimitPerDaynumberoptional
Responses
200The updated provider
FieldTypeRequiredDescription
idstringrequired
namestringrequired
typestringrequired
configanyrequired
isActiveanyrequired
priorityanyrequired
rateLimitPerMinuteanyrequired
rateLimitPerHouranyrequired
rateLimitPerDayanyrequired
isHealthyanyrequired
lastHealthCheckanyrequired
usageMinuteanyrequired
usageHouranyrequired
usageDayanyrequired
createdAtstringrequired
accountSourcestringoptional("byo" | "managed")
statusstringoptional("provisioning" | "active" | "suspended" | "deprovisioned")
400Validation error
FieldTypeRequiredDescription
errorstringrequired
500Internal server error
FieldTypeRequiredDescription
errorstringrequired
DELETE/api/providers/{id}

Delete provider

Remove a provider from the organization.

Parameters
NameInTypeRequiredDescription
idpathstring (uuid)requiredProvider ID
Responses
200Provider removed
FieldTypeRequiredDescription
removedbooleanrequired
500Internal server error
FieldTypeRequiredDescription
errorstringrequired
GET/api/providers/{id}/status

Get provider status

Retrieve health and usage status for a specific provider including rate limit consumption.

Parameters
NameInTypeRequiredDescription
idpathstring (uuid)requiredProvider ID
Responses
200Provider health and usage status
FieldTypeRequiredDescription
idstringrequired
namestringrequired
isHealthybooleanrequired
lastHealthCheckanyrequired
usageMinutenumberrequired
usageHournumberrequired
usageDaynumberrequired
rateLimitPerMinuteanyrequired
rateLimitPerHouranyrequired
rateLimitPerDayanyrequired
500Internal server error
FieldTypeRequiredDescription
errorstringrequired
POST/api/providers/{id}/test

Test provider connection

Perform a live connection test against a provider and update its health status.

Parameters
NameInTypeRequiredDescription
idpathstring (uuid)requiredProvider ID
Responses
200Connection test result
FieldTypeRequiredDescription
successbooleanrequired
latencyMsnumberrequired
messagestringrequired
400Unknown provider type
FieldTypeRequiredDescription
errorstringrequired
404Provider not found
FieldTypeRequiredDescription
errorstringrequired
GET/api/providers

List providers

Retrieve all configured email providers for the current organization, enriched with capability metadata.

Responses
200Array of providers with capabilities
500Internal server error
FieldTypeRequiredDescription
errorstringrequired
POST/api/providers

Add provider

Register a new email provider (e.g. SendGrid, Mailgun, SES, Postmark, SMTP). Subject to plan quotas.

Request Bodyrequired
FieldTypeRequiredDescription
namestringrequired
typestringrequired
configobjectoptional
isActivebooleanoptional
prioritynumberoptional
rateLimitPerMinutenumberoptional
rateLimitPerHournumberoptional
rateLimitPerDaynumberoptional
Responses
201The created provider
FieldTypeRequiredDescription
idstringrequired
namestringrequired
typestringrequired
configanyrequired
isActiveanyrequired
priorityanyrequired
rateLimitPerMinuteanyrequired
rateLimitPerHouranyrequired
rateLimitPerDayanyrequired
isHealthyanyrequired
lastHealthCheckanyrequired
usageMinuteanyrequired
usageHouranyrequired
usageDayanyrequired
createdAtstringrequired
accountSourcestringoptional("byo" | "managed")
statusstringoptional("provisioning" | "active" | "suspended" | "deprovisioned")
400Validation error
FieldTypeRequiredDescription
errorstringrequired
403Plan quota exceeded
FieldTypeRequiredDescription
errorstringrequired
500Internal server error
FieldTypeRequiredDescription
errorstringrequired