Add and start verification for a new sender domain. Pass the domain only (not a full email address).
const url = 'https://api.pingram.io/domains';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"sender":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.pingram.io/domains \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "sender": "example" }'Authorizations
Request Bodyrequired
object
Examplegenerated
{ "sender": "example"}Responses
200
Successful response
object
Keyed by record id — computed on domain API responses, not stored in DB.
object
DNS record the customer must publish for domain verification.
object
Relative name for the parent DNS zone UI (e.g. pingram._domainkey.testing).
Full hostname (e.g. pingram._domainkey.testing.something.com).
DNS record the customer must publish for domain verification.
object
Relative name for the parent DNS zone UI (e.g. pingram._domainkey.testing).
Full hostname (e.g. pingram._domainkey.testing.something.com).
DNS record the customer must publish for domain verification.
object
Relative name for the parent DNS zone UI (e.g. pingram._domainkey.testing).
Full hostname (e.g. pingram._domainkey.testing.something.com).
DNS record the customer must publish for domain verification.
object
Relative name for the parent DNS zone UI (e.g. pingram._domainkey.testing).
Full hostname (e.g. pingram._domainkey.testing.something.com).
DNS record the customer must publish for domain verification.
object
Relative name for the parent DNS zone UI (e.g. pingram._domainkey.testing).
Full hostname (e.g. pingram._domainkey.testing.something.com).
Example
[ { "status": "SUCCESS", "mailFromDomainStatus": "PENDING", "verificationRecords": { "dkim": { "recordType": "TXT" }, "mail_from_spf": { "recordType": "TXT" }, "mail_from_mx": { "recordType": "TXT" }, "dmarc": { "recordType": "TXT" }, "inbound_mx": { "recordType": "TXT" } } }]400
Bad Request - validation errors, invalid input
Standard error response for API errors.
object
Unique tracking ID for the request.
Structured error details for API error responses.
object
Machine-readable error code.
Human-readable error message.
Actionable hint for fixing the error.
Examplegenerated
{ "trackingId": "example", "error": { "code": "example", "message": "example", "fix": "example" }}401
Unauthorized
402
Payment Required - usage limits exceeded
Standard error response for API errors.
object
Unique tracking ID for the request.
Structured error details for API error responses.
object
Machine-readable error code.
Human-readable error message.
Actionable hint for fixing the error.
Examplegenerated
{ "trackingId": "example", "error": { "code": "example", "message": "example", "fix": "example" }}500
Internal Server Error
502
Bad Gateway - provider error
Standard error response for API errors.
object
Unique tracking ID for the request.
Structured error details for API error responses.
object
Machine-readable error code.
Human-readable error message.
Actionable hint for fixing the error.
Examplegenerated
{ "trackingId": "example", "error": { "code": "example", "message": "example", "fix": "example" }}