Api referenceNewsletterDomains
Add a publication domain (Preview)
Preview · Available to selected organizations. Claims a hostname for an opt-in topic with its public archive enabled and published.
POST
Claims a hostname for an opt-in topic with its public archive enabled and published. Requires newsletters. Pass the same Idempotency-Key header when retrying. The hostname serves no publication until Cloudflare confirms both ownership and SSL are active.
apiKeyheader
x-api-key<token>id*stringMatch
^nl_[0-9a-hjkmnp-tv-z]{16,24}$idempotency-key?|nullapplication/json- body
hostname*stringMatch
^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z](?:[a-z0-9-]{0,61}[a-z0-9])?$Length
length <= 253Success
application/json- response
organizationId*OrganizationIdMatch
^org_[0-9a-hjkmnp-tv-z]{16,24}$topicId*TopicIdMatch
^unsub_[0-9a-hjkmnp-tv-z]{16,24}$hostname*stringMatch
^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z](?:[a-z0-9-]{0,61}[a-z0-9])?$Length
length <= 253canonicalHostname*stringphase*stringValue in
"pending""active""removing""removed""conflict"active*booleanhostnameStatus*string|nullsslStatus*string|nullcname*verificationRecords*array<>verificationErrors*array<string>import { createClient } from "samva";const samva = createClient({ apiKey: process.env.SAMVA_API_KEY! });const result = await samva.newsletters.domains.add({ "id": "example", "hostname": "example"});Example Response
{ "organizationId": "string", "topicId": "string", "hostname": "string", "canonicalHostname": "string", "phase": "pending", "active": true, "hostnameStatus": "string", "sslStatus": "string", "cname": { "type": "CNAME", "name": "string", "value": "string" }, "verificationRecords": [ { "type": "CNAME", "name": "string", "value": "string" } ], "verificationErrors": [ "string" ]}