All endpoints require Authorization: Bearer ck_....
List domains
GET /v1/domains
Scope: domains:list
Query parameters
Response 200
Each item in data is a Domain.
Create domain
POST /v1/domains
Scope: domains:create
Register a domain. Subdomain required (e.g. track.example.com).
Rejected if name contains http, www, or /, or is not a valid subdomain hostname.
Request body
Response 201
Verify domain
PATCH /v1/domains/:id/verify
Scope: domains:verify
Checks DNS/CNAME propagation and activates the certificate. No request body.
Path parameters
Response 200
Call repeatedly until verified: true before using the domain in campaigns.
Delete domain
DELETE /v1/domains/:id
Scope: domains:delete
Response 204
Same quirk as campaign delete — status 204, optional { "message": "..." } body. Treat status as success.