---
title: "List email connections"
method: GET
path: "/v1/email-connections"
tags: ["Email"]
---

# List email connections

`GET /v1/email-connections`

## Request

- Base URL: `https://api-eu.dynamicdocumentapi.com`
- URL: `https://api-eu.dynamicdocumentapi.com/v1/email-connections`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

The workspace's email provider accounts. Credentials are never returned; `egress_ips` are the addresses to authorize at the provider.

## Response `200`

- EmailConnectionList: Cursor-pagination envelope. Management lists are single-page today.
  - `data` EmailConnection[], required
    - `config` object, required: The provider's settings (see the write `config`), always with `attachment_budget_bytes` and `max_per_second`: the provider's defaults unless set.
    - `created_at` string, date-time, required
    - `credentials` EmailCredentialsState, required
      - `configured` boolean, required: Credentials are write-only; `false` once they were deleted after a downgrade.
    - `credentials_delete_at` string, date-time, nullable, required: Set after a downgrade: the credentials are deleted then.
    - `default_from` EmailDefaultFrom, required
      - `email` string, required
      - `name` string, nullable, required
    - `egress_ips` string[], required: The addresses our email traffic leaves from: authorize them at providers that restrict calling IPs (Brevo: Security → Authorized IPs).
    - `events` object, required: Brevo connections only: the delivery-events webhook in the Brevo account, per region; empty for other providers.
    - `id` string, required: `emc_…`
    - `last_error` EmailConnectionError, required
      - `at` string, date-time, required
      - `code` string, required: `email_provider_auth_failed`, `email_ip_not_authorized` or `email_credentials_removed`.
      - `message` string, required
    - `last_test_at` string, date-time, nullable, required
    - `last_test_status` 'succeeded' | 'failed' | 'null', nullable, required: * `succeeded` - succeeded * `failed` - failed
    - `name` string, required
    - `object` string
    - `provider` 'brevo' | 'smtp' | 'postmark' | 'resend' | 'ses' | 'graph', required: * `brevo` - Brevo * `smtp` - SMTP * `postmark` - Postmark * `resend` - Resend * `ses` - Amazon SES * `graph` - Microsoft 365 (Graph)
    - `reply_to` string, nullable, required
    - `senders` EmailSender[], required: Verified senders and domains found by the last test.
      - `email` string, required: An address, or the domain for `kind: domain`.
      - `kind` 'sender' | 'domain', required: * `sender` - sender * `domain` - domain
      - `name` string, nullable, required
      - `verified` boolean, required
    - `status` 'active' | 'failing', required: * `active` - active * `failing` - failing
    - `test_mode` 'sandbox' | 'redirect' | 'skip', required: * `sandbox` - Sandbox * `redirect` - Redirect * `skip` - Skip
    - `test_recipient` string, nullable, required
    - `updated_at` string, date-time, required
  - `egress_ips` string[], required: The addresses our email traffic leaves from: authorize them at providers that restrict calling IPs (Brevo: Security → Authorized IPs).
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required
  - `object` string

## Other responses

- `401`: Missing, invalid, expired or revoked credentials.
- `403`: Insufficient scope, IP not allowed, workspace suspended or scheduled for deletion, or email not verified.
- `429`: Rate limited (`Retry-After`).
- `503`: The control plane is unreachable (`Retry-After`).

---

[API](https://skmtc.dev/dynamicdocumentapi/apis/dynamic-document-api.md) · [All operations](https://skmtc.dev/dynamicdocumentapi/apis/dynamic-document-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dynamicdocumentapi/apis/dynamic-document-api/revisions/0f14bc0000f4?raw)
