PATCH/api/v1/projects/{project_id}/domains/{domain_id}
update_sending_domain
Changes a sending domain’s ip_pool, tracking_host or dns_provider.
- Call it
- to move a domain to another IP pool or tracking host, or to switch its DNS provider.
- Needs
- an admin key with
project_id, or a project key with scopewrite(its own project; the argument is ignored), and the domain’s id; anip_poolmust be a pool of the node. A changedip_poolortracking_hostmoves the domain back topendingand the result carries the newrequired_records; a changeddns_providerdoes not. - Returns
- the domain and
required_records(null unless it went back topending). The same asPATCH /api/v1/projects/{project_id}/domains/{domain_id}.
Arguments
- object
-
domain_idstring · uuidrequiredThe domain’s id.
-
dns_providerstringWho applies the records:
porkbunormanual; leave it out to keep it.example
manual -
ip_poolstringThe IP pool to send from (
get_server_infolists them); leave it out to keep it. Changing it moves the domain topending.example
default -
project_idstring · uuid | nullThe domain’s project. An admin key must pass it; a project key’s own project is used and this is ignored.
-
tracking_hoststring | nullA host for tracking and unsubscribe links;
nullclears it, leave it out to keep it. Changing it moves the domain topending.
No other arguments are accepted.
Result
The result comes back as structuredContent, with the same JSON as a text block.
- object · all fields required
-
bounce_subdomainstring -
checksarray of DomainCheckOne entry per check that ran, in the canonical order; empty until the domain is first verified.
3 fields
- DomainCheck object · all fields required
-
detailstring | nullWhat was found instead of what was expected;
nullwhenok. -
namestringspf_bounce,mx_bounce,dkim,dmarc,tracking_cname,tracking_tlsorptr. -
statusCheckStatusOutputHow one verification check came out.
okThe required record is present and matches.missingNo record of this kind is in DNS yet.mismatchA record is there, but not the one Postwind needs.warningNot ok, but it does not fail the domain (ptr).
-
created_atstring · date-time -
dkim_public_keystringThe DKIM public key: base64 of its DER
SubjectPublicKeyInfo, thep=of the DKIM record. -
dkim_selectorstring -
dns_providerDnsProviderOutputWho applies a domain’s DNS records.
porkbunPorkbun’s API.manualNobody: the records are for entry by hand. -
domainstringIn punycode for an international name.
-
idstring · uuid -
ip_poolstring -
last_checked_atstring · date-time | nullWhen the records were last checked;
nulluntil then. -
project_idstring · uuid -
required_recordsarray of RequiredRecord | nullThe records to create after an
ip_poolortracking_hostchange;nullotherwise.6 fields
- RequiredRecord object · all fields required
-
contentstringThe whole value.
-
create_only_if_absentbooleanCreate it only if the name has no record of this type, and never change one that is there (the DMARC record).
-
namestringThe owner name, without a trailing dot.
-
priorityinteger · uint16 | nullThe MX priority;
nullfor other types.0–65535
-
purposeRecordPurposeOutputWhat a required record is for.
spf_bounceSPF of the bounce subdomain.mx_bounceMX of the bounce subdomain.dkimThe DKIM public key.dmarcThe DMARC policy.tracking_cnameThe tracking host’s CNAME. -
typeRecordTypeOutputThe type of a DNS record.
- txt
- mx
- cname
-
statusDomainStatusOutputWhere a sending domain stands.
pendingIts records are not checked yet, or changed since.verifiedEvery required record checked out.failedA required record is missing or wrong. -
tracking_hoststring | nullnull: none. -
updated_atstring · date-time
Definitions
CheckStatusOutput
How one verification check came out.
string · enum
ok The required record is present and matches.
missing No record of this kind is in DNS yet.
mismatch A record is there, but not the one Postwind needs.
warning Not ok, but it does not fail the domain (ptr).
DnsProviderOutput
Who applies a domain’s DNS records.
string · enum
porkbun Porkbun’s API.
manual Nobody: the records are for entry by hand.
DomainCheck
One verification check.
- object · all fields required
-
detailstring | nullWhat was found instead of what was expected;
nullwhenok. -
namestringspf_bounce,mx_bounce,dkim,dmarc,tracking_cname,tracking_tlsorptr. -
statusCheckStatusOutputHow one verification check came out.
okThe required record is present and matches.missingNo record of this kind is in DNS yet.mismatchA record is there, but not the one Postwind needs.warningNot ok, but it does not fail the domain (ptr).
DomainStatusOutput
Where a sending domain stands.
string · enum
pending Its records are not checked yet, or changed since.
verified Every required record checked out.
failed A required record is missing or wrong.
RecordPurposeOutput
What a required record is for.
string · enum
spf_bounce SPF of the bounce subdomain.
mx_bounce MX of the bounce subdomain.
dkim The DKIM public key.
dmarc The DMARC policy.
tracking_cname The tracking host’s CNAME.
RecordTypeOutput
The type of a DNS record.
string · enum
- txt
- mx
- cname
RequiredRecord
A DNS record a sending domain needs.
- object · all fields required
-
contentstringThe whole value.
-
create_only_if_absentbooleanCreate it only if the name has no record of this type, and never change one that is there (the DMARC record).
-
namestringThe owner name, without a trailing dot.
-
priorityinteger · uint16 | nullThe MX priority;
nullfor other types.0–65535
-
purposeRecordPurposeOutputWhat a required record is for.
spf_bounceSPF of the bounce subdomain.mx_bounceMX of the bounce subdomain.dkimThe DKIM public key.dmarcThe DMARC policy.tracking_cnameThe tracking host’s CNAME. -
typeRecordTypeOutputThe type of a DNS record.
- txt
- mx
- cname
Errors
A failed call answers isError: true with a code from the same table as the HTTP API, and detail. How tools report errors
HTTP API
The same operation over HTTP: PATCH /api/v1/projects/{project_id}/domains/{domain_id}