Skip to main content
GET
/
api
/
email
/
domains
List Sending Domains
curl --request GET \
  --url https://app.puffle.ai/api/email/domains \
  --header 'Authorization: Bearer <token>'
{
  "domains": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "domain": "<string>",
      "agentmail_domain_id": "<string>",
      "dns_records": [
        {
          "type": "<string>",
          "name": "<string>",
          "value": "<string>",
          "priority": 123
        }
      ],
      "verified_at": "2023-11-07T05:31:56Z",
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z"
    }
  ]
}
CLI:
puffle email domain
puffle email domain --skip-sync <skip-sync>

Overview

Return every custom sending domain owned by the caller, newest first. By default each domain’s status is refreshed against the live verification state so the DB converges without waiting for the background poller. Pass ?skip_sync=true to return the cached DB state and skip the live lookup. Verification-service errors during sync are non-fatal; affected rows fall back to the cached status.
This operation shares the URL path /api/email/domains with other verbs. See the sibling page for related operations on the same resource.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

skip_sync
enum<string>

If true, skip the per-domain live status refresh and return the cached DB status instead. Use during active polling where a separate caller is already driving status updates.

Available options:
true,
false

Response

Array of domains. Empty array is a valid response for users who have not added any sending domains.

domains
object[]
required