CDPGuidesSupport

Custom Domains

Custom-domain setup, DNS and certificate status, setup lifecycle, and next actions for the Platform API.

The Custom Domains API reports account setup, attached-domain status, observed DNS values, managed certificate status, and lifecycle guidance. certificateStatus reports issuance state; certificateActive reports whether the issued certificate is attached to serve the custom domains. dnsValue is the DNS value currently observed; cnameValue is the target to configure. DNS records are managed by the account’s DNS provider. An empty domains list means no customer domains are attached.

Every setup response includes setupStatus: a state, human-readable message, recommended nextAction, domains blocking DNS progress, and an isReady flag. Reading the setup status also advances certificate setup, so polling status is enough to reach READY after DNS is configured.

StateMeaningNext action
NO_DOMAINSNo customer domains are attached.ADD_DOMAINS
DNS_REQUIREDOne or more domains do not point to the required CNAME. blockingDomains names them.CONFIGURE_DNS
CERTIFICATE_VALIDATION_REQUIREDDNS is configured and certificate validation is waiting for DNS changes to reach the CDN.RECONCILE_CERTIFICATE
CERTIFICATE_PENDINGCertificate issuance is in progress.WAIT
CERTIFICATE_ACTIVATION_REQUIREDThe certificate is issued and is activated on the next status read.RECONCILE_CERTIFICATE
DEPLOYINGThe certificate is active and the domain configuration is deploying.WAIT
READYAll domains are ready to serve HTTPS traffic.NONE
CERTIFICATE_FAILEDCertificate setup failed or the certificate is no longer valid.CONTACT_SUPPORT
DISABLEDCustom-domain serving is disabled for the account.CONTACT_SUPPORT

Reading the setup status starts certificate validation once DNS is configured and activates the certificate once it is issued. The certificate-validation operation does the same on demand; when nextAction is RECONCILE_CERTIFICATE, call it to retry immediately instead of waiting for the next status read. If DNS changes have not reached the CDN yet, it returns HTTP 409; wait a few minutes and retry.

GET/rest/v1/custom-domains/setup

GET
/rest/v1/custom-domains/setup
AuthorizationBearer <token>

Ours Privacy API key

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/rest/v1/custom-domains/setup"
{  "setup": {    "id": "string",    "enabled": true,    "status": "string",    "createdAt": "string",    "updatedAt": "string",    "setupStatus": {      "state": "NO_DOMAINS",      "message": "string",      "nextAction": "ADD_DOMAINS",      "blockingDomains": [        "string"      ],      "isReady": true    },    "certificateStatus": "string",    "certificateActive": true,    "domains": [      {        "domain": "string",        "status": "active",        "dnsStatus": "configured",        "dnsValue": "string",        "cnameValue": "string"      }    ]  }}

POST/rest/v1/custom-domains

POST
/rest/v1/custom-domains
AuthorizationBearer <token>

Ours Privacy API key

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/rest/v1/custom-domains"
{  "setup": {    "id": "string",    "enabled": true,    "status": "string",    "createdAt": "string",    "updatedAt": "string",    "setupStatus": {      "state": "NO_DOMAINS",      "message": "string",      "nextAction": "ADD_DOMAINS",      "blockingDomains": [        "string"      ],      "isReady": true    },    "certificateStatus": "string",    "certificateActive": true,    "domains": [      {        "domain": "string",        "status": "active",        "dnsStatus": "configured",        "dnsValue": "string",        "cnameValue": "string"      }    ]  }}

PUT/rest/v1/custom-domains/{id}

PUT
/rest/v1/custom-domains/{id}
*object
array<string>
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/rest/v1/custom-domains/string" \  -H "Content-Type: application/json" \  -d '{    "domains": [      "string"    ]  }'
{  "setup": {    "id": "string",    "enabled": true,    "status": "string",    "createdAt": "string",    "updatedAt": "string",    "setupStatus": {      "state": "NO_DOMAINS",      "message": "string",      "nextAction": "ADD_DOMAINS",      "blockingDomains": [        "string"      ],      "isReady": true    },    "certificateStatus": "string",    "certificateActive": true,    "domains": [      {        "domain": "string",        "status": "active",        "dnsStatus": "configured",        "dnsValue": "string",        "cnameValue": "string"      }    ]  }}

POST/rest/v1/custom-domains/{id}/certificate-validation

POST
/rest/v1/custom-domains/{id}/certificate-validation
AuthorizationBearer <token>

Ours Privacy API key

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/rest/v1/custom-domains/string/certificate-validation"
{  "setup": {    "id": "string",    "enabled": true,    "status": "string",    "createdAt": "string",    "updatedAt": "string",    "setupStatus": {      "state": "NO_DOMAINS",      "message": "string",      "nextAction": "ADD_DOMAINS",      "blockingDomains": [        "string"      ],      "isReady": true    },    "certificateStatus": "string",    "certificateActive": true,    "domains": [      {        "domain": "string",        "status": "active",        "dnsStatus": "configured",        "dnsValue": "string",        "cnameValue": "string"      }    ]  }}

How is this guide?