curl --request POST \
--url https://app.sendmux.ai/api/v1/domains \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "mail.acme.com"
}
'import requests
url = "https://app.sendmux.ai/api/v1/domains"
payload = { "domain": "mail.acme.com" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({domain: 'mail.acme.com'})
};
fetch('https://app.sendmux.ai/api/v1/domains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sendmux.ai/api/v1/domains"
payload := strings.NewReader("{\n \"domain\": \"mail.acme.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": true,
"data": {
"created_at": "<string>",
"dns_records": {
"dkim": [
{
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
}
],
"dmarc": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
},
"mail_from": {
"mx": {
"name": "bounce.acme.com",
"priority": 10,
"target": "feedback-smtp.eu-central-1.amazonses.com"
},
"spf": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
}
},
"mx": [
{
"priority": 10,
"target": "mail.sendmux.ai"
}
],
"spf": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
},
"verification": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
}
},
"domain": "mail.acme.com",
"id": "mdom_clxxxxxxxxxxxxxxxxxxxxxxxxx",
"mailbox_count": 14,
"mode": "send_receive",
"ses_dkim_status": "<string>",
"ses_mail_from_status": "<string>",
"verified_at": "<string>"
}
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}Add a mailbox domain
Creates a new domain and returns the DNS records the customer must place before verification can succeed. send_only configures outbound sending without changing MX records. send_receive also configures the domain for hosted mailboxes. Provisioning touches our email platform and Amazon SES; on any failure the partial state is automatically rolled back.
Supply an Idempotency-Key header (any unique string, max 255 chars) to safely retry on network errors. Replays with the same key return the original response; replays with a different body return 409 idempotency_conflict.
curl --request POST \
--url https://app.sendmux.ai/api/v1/domains \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"domain": "mail.acme.com"
}
'import requests
url = "https://app.sendmux.ai/api/v1/domains"
payload = { "domain": "mail.acme.com" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({domain: 'mail.acme.com'})
};
fetch('https://app.sendmux.ai/api/v1/domains', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.sendmux.ai/api/v1/domains"
payload := strings.NewReader("{\n \"domain\": \"mail.acme.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": true,
"data": {
"created_at": "<string>",
"dns_records": {
"dkim": [
{
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
}
],
"dmarc": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
},
"mail_from": {
"mx": {
"name": "bounce.acme.com",
"priority": 10,
"target": "feedback-smtp.eu-central-1.amazonses.com"
},
"spf": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
}
},
"mx": [
{
"priority": 10,
"target": "mail.sendmux.ai"
}
],
"spf": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
},
"verification": {
"name": "_sendmux.acme.com",
"value": "sendmux-verify=team_abc123"
}
},
"domain": "mail.acme.com",
"id": "mdom_clxxxxxxxxxxxxxxxxxxxxxxxxx",
"mailbox_count": 14,
"mode": "send_receive",
"ses_dkim_status": "<string>",
"ses_mail_from_status": "<string>",
"verified_at": "<string>"
}
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}{
"error": {
"code": "invalid_parameter",
"message": "<string>",
"retryable": false,
"doc_url": "<string>",
"errors": [
{
"code": "invalid_string",
"field": "recipient.email",
"message": "<string>"
}
],
"param": "<string>"
},
"meta": {
"request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"ok": false
}Authorizations
Sendmux API key. Use a root API key for Management API routes, or a mailbox credential for Mailbox API routes. Obtain keys from the dashboard under API Keys.
Headers
Client-chosen unique key to safely retry the request. Cached for 24h per (team, endpoint, key). Different body with same key returns 409 idempotency_conflict.
255"domains-create-20260424-001"
Body
Response
Domain created. The response carries a Location header pointing at the canonical GET URL for the new domain.
true Hide child attributes
Hide child attributes
ISO 8601 creation timestamp
Hide child attributes
Hide child attributes
Custom MAIL FROM records for Amazon SES bounce handling
Hide child attributes
Hide child attributes
MX record for Amazon SES bounce handling
Fully qualified domain name
"mail.acme.com"
Public ID
"mdom_clxxxxxxxxxxxxxxxxxxxxxxxxx"
Active mailboxes currently using this domain
x >= 014
send_only verifies outbound DNS only. send_receive also verifies MX records and can host mailboxes.
send_only, send_receive "send_receive"
Amazon SES DKIM status (pending/success/failed/temporary_failure/not_started)
Amazon SES MAIL FROM status (pending/success/failed/temporary_failure/not_started)
Current verification state
pending, verified, failed ISO 8601 timestamp of last successful verification
Was this page helpful?