Skip to content

Domains

Greg Svoboda edited this page Mar 4, 2026 · 1 revision

Domains

Domain management is done through AccountClient. You will need an account API token.

import postmark

account = postmark.AccountClient("your-account-token")

List Domains

import asyncio

async def main():
    result = await account.domain.list()

    print(f"Total domains: {result.total}")
    for domain in result.items:
        print(f"  [{domain.id}] {domain.name}")
        print(f"       DKIM verified:        {domain.dkim_verified}")
        print(f"       Return-Path verified: {domain.return_path_domain_verified}")

asyncio.run(main())

Get a Domain

async def main():
    domain = await account.domain.get(domain_id=1234)

    print(f"Name:              {domain.name}")
    print(f"DKIM host:         {domain.dkim_host}")
    print(f"DKIM text value:   {domain.dkim_text_value}")
    print(f"DKIM verified:     {domain.dkim_verified}")
    print(f"Return-Path CNAME: {domain.return_path_domain_cname_value}")

Create a Domain

import asyncio

async def main():
    domain = await account.domain.create(
        name="example.com",
        return_path_domain="pm-bounces.example.com",
    )

    print(f"Created: [{domain.id}] {domain.name}")
    print(f"DKIM host:       {domain.dkim_host}")
    print(f"DKIM text value: {domain.dkim_text_value}")

asyncio.run(main())

Edit a Domain

async def main():
    domain = await account.domain.edit(
        domain_id=1234,
        return_path_domain="pm-bounces.example.com",
    )
    print(f"Updated: {domain.name}")

Verify DKIM

Trigger a DKIM verification check.

async def main():
    domain = await account.domain.verify_dkim(domain_id=1234)

    print(f"DKIM verified:      {domain.dkim_verified}")
    print(f"DKIM update status: {domain.dkim_update_status}")
    print(f"Weak DKIM:          {domain.weak_dkim}")

Verify Return Path

async def main():
    domain = await account.domain.verify_return_path(domain_id=1234)
    print(f"Return-Path verified: {domain.return_path_domain_verified}")

Rotate DKIM

Generate a new DKIM key pair.

async def main():
    domain = await account.domain.rotate_dkim(domain_id=1234)
    print(f"New DKIM pending host: {domain.dkim_pending_host}")
    print(f"New DKIM text value:   {domain.dkim_pending_text_value}")

Delete a Domain

async def main():
    result = await account.domain.delete(domain_id=1234)
    print(result.message)

Further Reading

Clone this wiki locally