Domains
Manage domains, DNS records and verification for email sending
Register domains for email sending, manage DNS records required for authentication, and verify your domain settings. Each added domain includes automatically generated DNS records for proper email delivery.
Add Domain
Register a new domain for email sending with automatically generated DNS records.
Request Header
POST https://api.cm.com/email/configuration/v1/configuration
Content-Type: application/json
Header Name | Type | Required | Description |
---|---|---|---|
Content-Type | string | Yes | Must be "application/json" |
Request Body
{
"emailAddress": "[email protected]",
"domain": "example.com",
"accountId": "903e1cef-84b3-4500-a9a5-b2ca219f76f5",
"dnsRecords": [
{
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": false
},
{
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": false
},
{
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": false
}
]
}
Response Body
Successful Response (200)
{
"statusCode": "Ok",
"statusMessage": "Success",
"domainConfig": {
"id": 123,
"domain": "example.com",
"accountId": "903e1cef-84b3-4500-a9a5-b2ca219f76f5",
"isValid": false,
"createdOn": "2024-03-15T10:30:00Z",
"modifiedOn": null,
"deletedOn": null,
"dnsRecords": [
{
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": false
},
{
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": false
},
{
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": false
}
]
}
}
Error Responses
Invalid Request (400)
{
"statusCode": "InvalidRequest",
"statusMessage": "Domain cannot be empty or null",
"domainConfig": null
}
Invalid Account (400)
{
"statusCode": "InvalidRequest",
"statusMessage": "Invalid AccountId Token",
"domainConfig": null
}
Not Found (404)
{
"statusCode": "NotFound",
"statusMessage": "Resource not found",
"domainConfig": null
}
Get Domains
Retrieve all domain configurations for a specific logical account.
Request Header
GET https://api.cm.com/email/configuration/v1/configuration/accounts/{logicalAccountId}
Parameter | Type | Required | Description |
---|---|---|---|
logicalAccountId | UUID | Yes | The logical account identifier |
Response Body
Successful Response (200)
{
"statusCode": "Ok",
"statusMessage": "Success",
"domains": [
{
"id": 123,
"domain": "example.com",
"accountId": "903e1cef-84b3-4500-a9a5-b2ca219f76f5",
"isValid": true,
"createdOn": "2024-03-15T10:30:00Z",
"modifiedOn": "2024-03-16T14:20:00Z",
"deletedOn": null,
"dnsRecords": [
{
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": true
},
{
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": true
},
{
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": true
}
]
}
]
}
Error Responses
Error Response (400)
{
"statusCode": "InvalidRequest",
"statusMessage": "Invalid request parameters",
"domains": []
}
Get DNS Records
Retrieve DNS records for a specific domain within an account.
Request Header
GET https://api.cm.com/email/configuration/v1/configuration/accounts/{logicalAccountId}/domains/{domainId}
Parameter | Type | Required | Description |
---|---|---|---|
logicalAccountId | UUID | Yes | The logical account identifier |
domainId | integer | Yes | The domain identifier |
Response Body
Successful Response (200)
{
"statusCode": "Ok",
"statusMessage": "Success",
"dnsRecords": [
{
"id": 456,
"fromDomain": 123,
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": true
},
{
"id": 457,
"fromDomain": 123,
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": true
},
{
"id": 458,
"fromDomain": 123,
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": true
}
]
}
Error Responses
Error Response (404)
{
"statusCode": "NotFound",
"statusMessage": "DNS records not found for the specified domain"
}
Delete Domain
Remove a domain configuration and all associated DNS records.
Request Header
DELETE https://api.cm.com/email/configuration/v1/configuration/accounts/{logicalAccountId}/domains/{domainId}
Parameter | Type | Required | Description |
---|---|---|---|
domainId | integer | Yes | The domain identifier to delete |
Response Body
Successful Response (200)
{
"statusCode": "Ok",
"statusMessage": "Domain deleted successfully"
}
Error Responses
Invalid Domain ID (400)
{
"statusCode": "InvalidRequest",
"statusMessage": "Invalid request parameters"
}
Domain Not Found (404)
{
"statusCode": "NotFound",
"statusMessage": "Domain not found"
}
Verify Domain Configuration
Verify domain ownership and DNS record configuration to ensure proper email delivery setup.
Request Header
POST https://api.cm.com/email/configuration/v1/dns/accounts/{logicalAccountId}/verify?domain={domain}
Content-Type: application/json
Parameter | Type | Required | Description |
---|---|---|---|
logicalAccountId | UUID | Yes | The logical account identifier |
Parameter | Type | Required | Description |
---|---|---|---|
domain | string | Yes | Domain name to verify (e.g., "example.com") |
Header Name | Type | Required | Description |
---|---|---|---|
Authorization | string | Yes | Valid authorization token |
Response Body
Successful Response (200)
{
"statusCode": "Ok",
"message": "Success",
"dnsEntries": [
{
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": true
},
{
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": true
},
{
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": false
}
]
}
Partial Verification Response (200)
When some DNS records are not yet properly configured:
{
"statusCode": "Ok",
"message": "Success",
"dnsEntries": [
{
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": false
},
{
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": false
},
{
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.example.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": false
}
]
}
Error Responses
Domain Verification Failed (400)
{
"statusCode": "InvalidRequest",
"message": "unable to verify domain",
"dnsEntries": []
}
Unauthorized Access (401)
{
"statusCode": "Unauthorized",
"message": "Access denied - insufficient permissions",
"dnsEntries": []
}
Domain Not Found (400)
{
"statusCode": "InvalidRequest",
"message": "Domain not found or not configured for this account",
"dnsEntries": []
}
Domain Verification Process
- Add Domain: Submit domain configuration with your account ID
- DNS Records Generated: System automatically creates three CNAME records
- Add DNS Records: Add the generated CNAME records to your domain's DNS settings
- Wait for Propagation: Allow time for DNS changes to propagate (5 minutes to 48 hours)
- Verify Domain: Use the verification endpoint to check DNS record configuration
- Check Results: Review verification response to see which records are valid
- Retry if Needed: Re-run verification after additional propagation time if some records show as invalid
- Email Sending: Domain is ready for email sending once all records show
"isValid": true
Common Issues and Solutions
Issue | Cause | Solution |
---|---|---|
All records show isValid: false | DNS records not yet added or propagated | Wait for DNS propagation (5 min - 48 hours) and retry |
Some records valid, others invalid | Partial DNS configuration or caching | Check DNS provider settings and wait for full propagation |
Verification endpoint returns 400 | Domain not found in account | Ensure domain was properly added to account first |
Example Use Cases
Register Company Domain
Setting up a primary company domain for email sending:
{
"emailAddress": "[email protected]",
"domain": "company.com",
"accountId": "903e1cef-84b3-4500-a9a5-b2ca219f76f5",
"dnsRecords": [
{
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.company.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": false
},
{
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.company.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": false
},
{
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.company.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": false
}
]
}
Add Subdomain for Marketing
Adding a subdomain specifically for marketing campaigns:
{
"emailAddress": "[email protected]",
"domain": "marketing.company.com",
"accountId": "903e1cef-84b3-4500-a9a5-b2ca219f76f5",
"dnsRecords": [
{
"host": "cm2903e1cef84b34500a9a5b2ca219f76f5._domainkey.marketing.company.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm2._domainkey.email.cm.com.",
"isValid": false
},
{
"host": "cm903e1cef84b34500a9a5b2ca219f76f5.marketing.company.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5.email.cm.com.",
"isValid": false
},
{
"host": "cm1903e1cef84b34500a9a5b2ca219f76f5._domainkey.marketing.company.com",
"type": "CNAME",
"value": "903e1cef84b34500a9a5b2ca219f76f5cm1._domainkey.email.cm.com.",
"isValid": false
}
]
}
Multi-Domain Setup
Managing multiple domains for different business units:
- Main Website:
company.com
- Support Portal:
support.company.com
- Marketing Campaigns:
promo.company.com
- Customer Portal:
portal.company.com
Each domain will receive the same three CNAME records (with domain-specific hostnames) but pointing to the same account-specific email infrastructure, ensuring consistent email delivery across all business units.
Updated about 13 hours ago