Skip to main content
POST
/
swaps
Creating a domain swap
curl --request POST \
  --url https://api.peeker.ai/api/partner/v1/swaps \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "type": "standard",
  "domain_id": "<string>",
  "replacement_domain": "<string>"
}
'
{ "data": { "id": "swp_01HZX0SW1A2B3C4D5E6F7G8H", "type": "premium", "domain_id": "dom_01HZX0D01A2B3C4D5E6F7G8H", "replacement_domain": "acme-fresh.com", "status": "in_progress", "created_at": "2026-05-08T12:00:00Z" } }

Documentation Index

Fetch the complete documentation index at: https://docs.peeker.ai/llms.txt

Use this file to discover all available pages before exploring further.

Standard vs Premium. standard retires the old domain immediately — fine when you can absorb a brief sending pause. premium keeps the old domain warm for 14 days alongside the new one for a smoother handoff with no sending interruption.For renaming the people on inboxes without changing the domain, use POST /swaps/user_names instead.

Authorizations

Authorization
string
header
default:Bearer pk_test_<your-test-key>
required

Your partner API key. Use pk_live_… against the live system or pk_test_… against the sandbox.

Body

application/json
type
enum<string>
required
Available options:
standard,
premium
domain_id
string
required

The dom_… ID of the domain you want to retire.

replacement_domain
string
required

The new domain to use.

Response

201 - application/json

A swap.

data
object
required
Last modified on May 14, 2026