Providers
7 endpoints
GET
/api/providers/{id}Get provider
Retrieve a single provider by ID.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | required | Provider ID |
Responses
200Provider details
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | |
| name | string | required | |
| type | string | required | |
| config | any | required | |
| isActive | any | required | |
| priority | any | required | |
| rateLimitPerMinute | any | required | |
| rateLimitPerHour | any | required | |
| rateLimitPerDay | any | required | |
| isHealthy | any | required | |
| lastHealthCheck | any | required | |
| usageMinute | any | required | |
| usageHour | any | required | |
| usageDay | any | required | |
| createdAt | string | required | |
| accountSource | string | optional | ("byo" | "managed") |
| status | string | optional | ("provisioning" | "active" | "suspended" | "deprovisioned") |
404Provider not found
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
PUT
/api/providers/{id}Update provider
Update an existing provider configuration. All fields are optional.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | required | Provider ID |
Request Bodyrequired
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | optional | |
| type | string | optional | |
| config | object | optional | |
| isActive | boolean | optional | |
| priority | number | optional | |
| rateLimitPerMinute | number | optional | |
| rateLimitPerHour | number | optional | |
| rateLimitPerDay | number | optional |
Responses
200The updated provider
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | |
| name | string | required | |
| type | string | required | |
| config | any | required | |
| isActive | any | required | |
| priority | any | required | |
| rateLimitPerMinute | any | required | |
| rateLimitPerHour | any | required | |
| rateLimitPerDay | any | required | |
| isHealthy | any | required | |
| lastHealthCheck | any | required | |
| usageMinute | any | required | |
| usageHour | any | required | |
| usageDay | any | required | |
| createdAt | string | required | |
| accountSource | string | optional | ("byo" | "managed") |
| status | string | optional | ("provisioning" | "active" | "suspended" | "deprovisioned") |
400Validation error
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
500Internal server error
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
DELETE
/api/providers/{id}Delete provider
Remove a provider from the organization.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | required | Provider ID |
Responses
200Provider removed
| Field | Type | Required | Description |
|---|---|---|---|
| removed | boolean | required |
500Internal server error
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
GET
/api/providers/{id}/statusGet provider status
Retrieve health and usage status for a specific provider including rate limit consumption.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | required | Provider ID |
Responses
200Provider health and usage status
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | |
| name | string | required | |
| isHealthy | boolean | required | |
| lastHealthCheck | any | required | |
| usageMinute | number | required | |
| usageHour | number | required | |
| usageDay | number | required | |
| rateLimitPerMinute | any | required | |
| rateLimitPerHour | any | required | |
| rateLimitPerDay | any | required |
500Internal server error
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
POST
/api/providers/{id}/testTest provider connection
Perform a live connection test against a provider and update its health status.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string (uuid) | required | Provider ID |
Responses
200Connection test result
| Field | Type | Required | Description |
|---|---|---|---|
| success | boolean | required | |
| latencyMs | number | required | |
| message | string | required |
400Unknown provider type
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
404Provider not found
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
GET
/api/providersList providers
Retrieve all configured email providers for the current organization, enriched with capability metadata.
Responses
200Array of providers with capabilities
500Internal server error
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
POST
/api/providersAdd provider
Register a new email provider (e.g. SendGrid, Mailgun, SES, Postmark, SMTP). Subject to plan quotas.
Request Bodyrequired
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | required | |
| type | string | required | |
| config | object | optional | |
| isActive | boolean | optional | |
| priority | number | optional | |
| rateLimitPerMinute | number | optional | |
| rateLimitPerHour | number | optional | |
| rateLimitPerDay | number | optional |
Responses
201The created provider
| Field | Type | Required | Description |
|---|---|---|---|
| id | string | required | |
| name | string | required | |
| type | string | required | |
| config | any | required | |
| isActive | any | required | |
| priority | any | required | |
| rateLimitPerMinute | any | required | |
| rateLimitPerHour | any | required | |
| rateLimitPerDay | any | required | |
| isHealthy | any | required | |
| lastHealthCheck | any | required | |
| usageMinute | any | required | |
| usageHour | any | required | |
| usageDay | any | required | |
| createdAt | string | required | |
| accountSource | string | optional | ("byo" | "managed") |
| status | string | optional | ("provisioning" | "active" | "suspended" | "deprovisioned") |
400Validation error
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
403Plan quota exceeded
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |
500Internal server error
| Field | Type | Required | Description |
|---|---|---|---|
| error | string | required |