Provision and verify independent domains.
Each domain has its own ownership, DKIM, DMARC, aggregate readiness, sender count, safe delivery counts, and last-check state.
Routes
| Route | Scope |
|---|---|
GET /v1/domains
|
domains:read
|
POST /v1/domains
|
domains:write
|
GET /v1/domains/{id}
|
domains:read
|
DELETE /v1/domains/{id}
|
domains:write
|
GET /v1/domains/{id}/dns
|
domains:read
|
POST /v1/domains/{id}/check-dns
|
domains:write
|
Create with a stable external ID
curl -X POST https://api.tenvio.email/v1/domains \
-H "Authorization: Bearer $TENVIO_MANAGEMENT_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"customer.example","external_id":"customer_123"}'
external_id is optional, normalized, 1–255 characters, unique among active domains in the account, and never global. Repeating the same external ID and domain is a natural retry. Filter with GET /v1/domains?external_id=customer_123.
DNS semantics
DNS GET returns exact ownership, DKIM, and DMARC instructions without initiating network work. Check DNS performs a bounded observation. Component state is independent, temporary resolver failures do not become authoritative missing records, and no separate DNS scope exists.
Deletion
A domain can be soft-deleted only after all active senders beneath it are removed. Retained email history remains intact. Unknown, deleted, malformed, and foreign-account IDs all return domain_not_found.
Tenvio Docs