Skip to content
Start here

Edit Custom Hostname

client.CustomHostnames.Edit(ctx, customHostnameID, params) (*CustomHostnameEditResponse, error)
PATCH/zones/{zone_id}/custom_hostnames/{custom_hostname_id}

Modify SSL configuration for a custom hostname. When sent with SSL config that matches existing config, used to indicate that hostname should pass domain control validation (DCV). Can also be used to change validation type, e.g., from 'http' to 'email'. Bundle an existing certificate with another certificate by using the "custom_cert_bundle" field. The bundling process supports combining certificates as long as the following condition is met. One certificate must use the RSA algorithm, and the other must use the ECDSA algorithm.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
SSL and Certificates Write
ParametersExpand Collapse
customHostnameID string

Identifier.

maxLength32
params CustomHostnameEditParams
ZoneID param.Field[string]

Path param: Identifier.

maxLength32
CustomMetadata param.Field[map[string, string]]optional

Body param: Unique key/value metadata for this hostname. These are per-hostname (customer) settings.

CustomOriginServer param.Field[string]optional

Body param: a valid hostname that’s been added to your DNS zone as an A, AAAA, or CNAME record.

CustomOriginSNI param.Field[string]optional

Body param: A hostname that will be sent to your custom origin server as SNI for TLS handshake. This can be a valid subdomain of the zone or custom origin server name or the string ':request_host_header:' which will cause the host header in the request to be used as SNI. Not configurable with default/fallback origin server.

SSL param.Field[CustomHostnameEditParamsSSL]optional

Body param: SSL properties used when creating the custom hostname.

BundleMethod BundleMethodoptional

A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it.

One of the following:
const BundleMethodUbiquitous BundleMethod = "ubiquitous"
const BundleMethodOptimal BundleMethod = "optimal"
const BundleMethodForce BundleMethod = "force"
CertificateAuthority CertificateCAoptional

The Certificate Authority that will issue the certificate

One of the following:
const CertificateCADigicert CertificateCA = "digicert"
const CertificateCAGoogle CertificateCA = "google"
const CertificateCALetsEncrypt CertificateCA = "lets_encrypt"
const CertificateCASSLCom CertificateCA = "ssl_com"
CloudflareBranding booloptional

Whether or not to add Cloudflare Branding for the order. This will add a subdomain of sni.cloudflaressl.com as the Common Name if set to true

CustomCERTBundle []CustomHostnameEditParamsSSLCustomCERTBundleoptional

Array of custom certificate and key pairs (1 or 2 pairs allowed)

CustomCertificate string

If a custom uploaded certificate is used.

CustomKey string

The key for a custom uploaded certificate.

CustomCertificate stringoptional

If a custom uploaded certificate is used.

CustomCsrID stringoptional

The identifier for the Custom CSR that was used.

CustomKey stringoptional

The key for a custom uploaded certificate.

Method DCVMethodoptional

Domain control validation (DCV) method used for this hostname.

One of the following:
const DCVMethodHTTP DCVMethod = "http"
const DCVMethodTXT DCVMethod = "txt"
const DCVMethodEmail DCVMethod = "email"
Settings CustomHostnameEditParamsSSLSettingsoptional

SSL specific settings.

Ciphers []stringoptional

An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format.

EarlyHints CustomHostnameEditParamsSSLSettingsEarlyHintsoptional

Whether or not Early Hints is enabled.

One of the following:
const CustomHostnameEditParamsSSLSettingsEarlyHintsOn CustomHostnameEditParamsSSLSettingsEarlyHints = "on"
const CustomHostnameEditParamsSSLSettingsEarlyHintsOff CustomHostnameEditParamsSSLSettingsEarlyHints = "off"
HTTP2 CustomHostnameEditParamsSSLSettingsHTTP2optional

Whether or not HTTP2 is enabled.

One of the following:
const CustomHostnameEditParamsSSLSettingsHTTP2On CustomHostnameEditParamsSSLSettingsHTTP2 = "on"
const CustomHostnameEditParamsSSLSettingsHTTP2Off CustomHostnameEditParamsSSLSettingsHTTP2 = "off"
MinTLSVersion CustomHostnameEditParamsSSLSettingsMinTLSVersionoptional

The minimum TLS version supported.

One of the following:
const CustomHostnameEditParamsSSLSettingsMinTLSVersion1_0 CustomHostnameEditParamsSSLSettingsMinTLSVersion = "1.0"
const CustomHostnameEditParamsSSLSettingsMinTLSVersion1_1 CustomHostnameEditParamsSSLSettingsMinTLSVersion = "1.1"
const CustomHostnameEditParamsSSLSettingsMinTLSVersion1_2 CustomHostnameEditParamsSSLSettingsMinTLSVersion = "1.2"
const CustomHostnameEditParamsSSLSettingsMinTLSVersion1_3 CustomHostnameEditParamsSSLSettingsMinTLSVersion = "1.3"
TLS1_3 CustomHostnameEditParamsSSLSettingsTLS1_3optional

Whether or not TLS 1.3 is enabled.

One of the following:
const CustomHostnameEditParamsSSLSettingsTLS1_3On CustomHostnameEditParamsSSLSettingsTLS1_3 = "on"
const CustomHostnameEditParamsSSLSettingsTLS1_3Off CustomHostnameEditParamsSSLSettingsTLS1_3 = "off"

Level of validation to be used for this hostname. Domain validation (dv) must be used.

Wildcard booloptional

Indicates whether the certificate covers a wildcard.

ReturnsExpand Collapse
type CustomHostnameEditResponse struct{…}
ID string

Identifier.

maxLength32
Hostname string

The custom hostname that will point to your hostname via CNAME.

maxLength255
CreatedAt Timeoptional

This is the time the hostname was created.

formatdate-time
CustomMetadata map[string, string]optional

Unique key/value metadata for this hostname. These are per-hostname (customer) settings.

CustomOriginServer stringoptional

a valid hostname that’s been added to your DNS zone as an A, AAAA, or CNAME record.

CustomOriginSNI stringoptional

A hostname that will be sent to your custom origin server as SNI for TLS handshake. This can be a valid subdomain of the zone or custom origin server name or the string ':request_host_header:' which will cause the host header in the request to be used as SNI. Not configurable with default/fallback origin server.

OwnershipVerification CustomHostnameEditResponseOwnershipVerificationoptional

This is a record which can be placed to activate a hostname.

Name stringoptional

DNS Name for record.

Type CustomHostnameEditResponseOwnershipVerificationTypeoptional

DNS Record type.

Value stringoptional

Content for the record.

OwnershipVerificationHTTP CustomHostnameEditResponseOwnershipVerificationHTTPoptional

This presents the token to be served by the given http url to activate a hostname.

HTTPBody stringoptional

Token to be served.

HTTPURL stringoptional

The HTTP URL that will be checked during custom hostname verification and where the customer should host the token.

SSL CustomHostnameEditResponseSSLoptional
ID stringoptional

Custom hostname SSL identifier tag.

maxLength36
minLength36
BundleMethod BundleMethodoptional

A ubiquitous bundle has the highest probability of being verified everywhere, even by clients using outdated or unusual trust stores. An optimal bundle uses the shortest chain and newest intermediates. And the force bundle verifies the chain, but does not otherwise modify it.

One of the following:
const BundleMethodUbiquitous BundleMethod = "ubiquitous"
const BundleMethodOptimal BundleMethod = "optimal"
const BundleMethodForce BundleMethod = "force"
CertificateAuthority CertificateCAoptional

The Certificate Authority that will issue the certificate

One of the following:
const CertificateCADigicert CertificateCA = "digicert"
const CertificateCAGoogle CertificateCA = "google"
const CertificateCALetsEncrypt CertificateCA = "lets_encrypt"
const CertificateCASSLCom CertificateCA = "ssl_com"
CustomCertificate stringoptional

If a custom uploaded certificate is used.

CustomCsrID stringoptional

The identifier for the Custom CSR that was used.

CustomKey stringoptional

The key for a custom uploaded certificate.

DCVDelegationRecords []CustomHostnameEditResponseSsldcvDelegationRecordoptional

DCV Delegation records for domain validation.

CNAME stringoptional

The CNAME record hostname for DCV delegation.

CNAMETarget stringoptional

The CNAME record target value for DCV delegation.

Emails []stringoptional

The set of email addresses that the certificate authority (CA) will use to complete domain validation.

HTTPBody stringoptional

The content that the certificate authority (CA) will expect to find at the http_url during the domain validation.

HTTPURL stringoptional

The url that will be checked during domain validation.

Status stringoptional

Status of the validation record.

TXTName stringoptional

The hostname that the certificate authority (CA) will check for a TXT record during domain validation .

TXTValue stringoptional

The TXT record that the certificate authority (CA) will check during domain validation.

ExpiresOn Timeoptional

The time the custom certificate expires on.

formatdate-time
Hosts []stringoptional

A list of Hostnames on a custom uploaded certificate.

Issuer stringoptional

The issuer on a custom uploaded certificate.

Method DCVMethodoptional

Domain control validation (DCV) method used for this hostname.

One of the following:
const DCVMethodHTTP DCVMethod = "http"
const DCVMethodTXT DCVMethod = "txt"
const DCVMethodEmail DCVMethod = "email"
SerialNumber stringoptional

The serial number on a custom uploaded certificate.

Settings CustomHostnameEditResponseSSLSettingsoptional
Ciphers []stringoptional

An allowlist of ciphers for TLS termination. These ciphers must be in the BoringSSL format.

EarlyHints CustomHostnameEditResponseSSLSettingsEarlyHintsoptional

Whether or not Early Hints is enabled.

One of the following:
const CustomHostnameEditResponseSSLSettingsEarlyHintsOn CustomHostnameEditResponseSSLSettingsEarlyHints = "on"
const CustomHostnameEditResponseSSLSettingsEarlyHintsOff CustomHostnameEditResponseSSLSettingsEarlyHints = "off"
HTTP2 CustomHostnameEditResponseSSLSettingsHTTP2optional

Whether or not HTTP2 is enabled.

One of the following:
const CustomHostnameEditResponseSSLSettingsHTTP2On CustomHostnameEditResponseSSLSettingsHTTP2 = "on"
const CustomHostnameEditResponseSSLSettingsHTTP2Off CustomHostnameEditResponseSSLSettingsHTTP2 = "off"
MinTLSVersion CustomHostnameEditResponseSSLSettingsMinTLSVersionoptional

The minimum TLS version supported.

One of the following:
const CustomHostnameEditResponseSSLSettingsMinTLSVersion1_0 CustomHostnameEditResponseSSLSettingsMinTLSVersion = "1.0"
const CustomHostnameEditResponseSSLSettingsMinTLSVersion1_1 CustomHostnameEditResponseSSLSettingsMinTLSVersion = "1.1"
const CustomHostnameEditResponseSSLSettingsMinTLSVersion1_2 CustomHostnameEditResponseSSLSettingsMinTLSVersion = "1.2"
const CustomHostnameEditResponseSSLSettingsMinTLSVersion1_3 CustomHostnameEditResponseSSLSettingsMinTLSVersion = "1.3"
TLS1_3 CustomHostnameEditResponseSSLSettingsTLS1_3optional

Whether or not TLS 1.3 is enabled.

One of the following:
const CustomHostnameEditResponseSSLSettingsTLS1_3On CustomHostnameEditResponseSSLSettingsTLS1_3 = "on"
const CustomHostnameEditResponseSSLSettingsTLS1_3Off CustomHostnameEditResponseSSLSettingsTLS1_3 = "off"
Signature stringoptional

The signature on a custom uploaded certificate.

Status CustomHostnameEditResponseSSLStatusoptional

Status of the hostname's SSL certificates.

One of the following:
const CustomHostnameEditResponseSSLStatusInitializing CustomHostnameEditResponseSSLStatus = "initializing"
const CustomHostnameEditResponseSSLStatusPendingValidation CustomHostnameEditResponseSSLStatus = "pending_validation"
const CustomHostnameEditResponseSSLStatusDeleted CustomHostnameEditResponseSSLStatus = "deleted"
const CustomHostnameEditResponseSSLStatusPendingIssuance CustomHostnameEditResponseSSLStatus = "pending_issuance"
const CustomHostnameEditResponseSSLStatusPendingDeployment CustomHostnameEditResponseSSLStatus = "pending_deployment"
const CustomHostnameEditResponseSSLStatusPendingDeletion CustomHostnameEditResponseSSLStatus = "pending_deletion"
const CustomHostnameEditResponseSSLStatusPendingExpiration CustomHostnameEditResponseSSLStatus = "pending_expiration"
const CustomHostnameEditResponseSSLStatusExpired CustomHostnameEditResponseSSLStatus = "expired"
const CustomHostnameEditResponseSSLStatusActive CustomHostnameEditResponseSSLStatus = "active"
const CustomHostnameEditResponseSSLStatusInitializingTimedOut CustomHostnameEditResponseSSLStatus = "initializing_timed_out"
const CustomHostnameEditResponseSSLStatusValidationTimedOut CustomHostnameEditResponseSSLStatus = "validation_timed_out"
const CustomHostnameEditResponseSSLStatusIssuanceTimedOut CustomHostnameEditResponseSSLStatus = "issuance_timed_out"
const CustomHostnameEditResponseSSLStatusDeploymentTimedOut CustomHostnameEditResponseSSLStatus = "deployment_timed_out"
const CustomHostnameEditResponseSSLStatusDeletionTimedOut CustomHostnameEditResponseSSLStatus = "deletion_timed_out"
const CustomHostnameEditResponseSSLStatusPendingCleanup CustomHostnameEditResponseSSLStatus = "pending_cleanup"
const CustomHostnameEditResponseSSLStatusStagingDeployment CustomHostnameEditResponseSSLStatus = "staging_deployment"
const CustomHostnameEditResponseSSLStatusStagingActive CustomHostnameEditResponseSSLStatus = "staging_active"
const CustomHostnameEditResponseSSLStatusDeactivating CustomHostnameEditResponseSSLStatus = "deactivating"
const CustomHostnameEditResponseSSLStatusInactive CustomHostnameEditResponseSSLStatus = "inactive"
const CustomHostnameEditResponseSSLStatusBackupIssued CustomHostnameEditResponseSSLStatus = "backup_issued"
const CustomHostnameEditResponseSSLStatusHoldingDeployment CustomHostnameEditResponseSSLStatus = "holding_deployment"

Level of validation to be used for this hostname. Domain validation (dv) must be used.

UploadedOn Timeoptional

The time the custom certificate was uploaded.

formatdate-time
ValidationErrors []CustomHostnameEditResponseSSLValidationErroroptional

Domain validation errors that have been received by the certificate authority (CA).

Message stringoptional

A domain validation error.

ValidationRecords []CustomHostnameEditResponseSSLValidationRecordoptional
CNAME stringoptional

The CNAME record hostname for DCV delegation.

CNAMETarget stringoptional

The CNAME record target value for DCV delegation.

Emails []stringoptional

The set of email addresses that the certificate authority (CA) will use to complete domain validation.

HTTPBody stringoptional

The content that the certificate authority (CA) will expect to find at the http_url during the domain validation.

HTTPURL stringoptional

The url that will be checked during domain validation.

Status stringoptional

Status of the validation record.

TXTName stringoptional

The hostname that the certificate authority (CA) will check for a TXT record during domain validation .

TXTValue stringoptional

The TXT record that the certificate authority (CA) will check during domain validation.

Wildcard booloptional

Indicates whether the certificate covers a wildcard.

Status CustomHostnameEditResponseStatusoptional

Status of the hostname's activation.

One of the following:
const CustomHostnameEditResponseStatusActive CustomHostnameEditResponseStatus = "active"
const CustomHostnameEditResponseStatusPending CustomHostnameEditResponseStatus = "pending"
const CustomHostnameEditResponseStatusActiveRedeploying CustomHostnameEditResponseStatus = "active_redeploying"
const CustomHostnameEditResponseStatusMoved CustomHostnameEditResponseStatus = "moved"
const CustomHostnameEditResponseStatusPendingDeletion CustomHostnameEditResponseStatus = "pending_deletion"
const CustomHostnameEditResponseStatusDeleted CustomHostnameEditResponseStatus = "deleted"
const CustomHostnameEditResponseStatusPendingBlocked CustomHostnameEditResponseStatus = "pending_blocked"
const CustomHostnameEditResponseStatusPendingMigration CustomHostnameEditResponseStatus = "pending_migration"
const CustomHostnameEditResponseStatusPendingProvisioned CustomHostnameEditResponseStatus = "pending_provisioned"
const CustomHostnameEditResponseStatusTestPending CustomHostnameEditResponseStatus = "test_pending"
const CustomHostnameEditResponseStatusTestActive CustomHostnameEditResponseStatus = "test_active"
const CustomHostnameEditResponseStatusTestActiveApex CustomHostnameEditResponseStatus = "test_active_apex"
const CustomHostnameEditResponseStatusTestBlocked CustomHostnameEditResponseStatus = "test_blocked"
const CustomHostnameEditResponseStatusTestFailed CustomHostnameEditResponseStatus = "test_failed"
const CustomHostnameEditResponseStatusProvisioned CustomHostnameEditResponseStatus = "provisioned"
const CustomHostnameEditResponseStatusBlocked CustomHostnameEditResponseStatus = "blocked"
VerificationErrors []stringoptional

These are errors that were encountered while trying to activate a hostname.

Edit Custom Hostname

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/custom_hostnames"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.CustomHostnames.Edit(
    context.TODO(),
    "023e105f4ecef8ad9ca31a8372d0c353",
    custom_hostnames.CustomHostnameEditParams{
      ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "023e105f4ecef8ad9ca31a8372d0c353",
    "hostname": "app.example.com",
    "created_at": "2020-02-06T18:11:23.531995Z",
    "custom_metadata": {
      "foo": "string"
    },
    "custom_origin_server": "origin2.example.com",
    "custom_origin_sni": "sni.example.com",
    "ownership_verification": {
      "name": "_cf-custom-hostname.app.example.com",
      "type": "txt",
      "value": "5cc07c04-ea62-4a5a-95f0-419334a875a4"
    },
    "ownership_verification_http": {
      "http_body": "5cc07c04-ea62-4a5a-95f0-419334a875a4",
      "http_url": "http://custom.test.com/.well-known/cf-custom-hostname-challenge/0d89c70d-ad9f-4843-b99f-6cc0252067e9"
    },
    "ssl": {
      "id": "0d89c70d-ad9f-4843-b99f-6cc0252067e9",
      "bundle_method": "ubiquitous",
      "certificate_authority": "google",
      "custom_certificate": "-----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n",
      "custom_csr_id": "7b163417-1d2b-4c84-a38a-2fb7a0cd7752",
      "custom_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG\ndtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn\nabIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid\ntnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py\nFxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE\newooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb\nHBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/\naxiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb\n+ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g\n+j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv\nKLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7\n9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo\n/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu\niacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9\nN2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe\nVAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB\nvULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U\nlySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR\n9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7\nmEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX\ndFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe\nPG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS\nfhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W\nqu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T\nlv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi\n-----END RSA PRIVATE KEY-----\n",
      "dcv_delegation_records": [
        {
          "cname": "_acme-challenge.example.com",
          "cname_target": "dcv.cloudflare.com",
          "emails": [
            "administrator@example.com",
            "webmaster@example.com"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "status": "pending",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "expires_on": "2021-02-06T18:11:23.531995Z",
      "hosts": [
        "app.example.com",
        "*.app.example.com"
      ],
      "issuer": "DigiCertInc",
      "method": "http",
      "serial_number": "6743787633689793699141714808227354901",
      "settings": {
        "ciphers": [
          "ECDHE-RSA-AES128-GCM-SHA256",
          "AES128-SHA"
        ],
        "early_hints": "on",
        "http2": "on",
        "min_tls_version": "1.2",
        "tls_1_3": "on"
      },
      "signature": "SHA256WithRSA",
      "status": "pending_validation",
      "type": "dv",
      "uploaded_on": "2020-02-06T18:11:23.531995Z",
      "validation_errors": [
        {
          "message": "SERVFAIL looking up CAA for app.example.com"
        }
      ],
      "validation_records": [
        {
          "cname": "_acme-challenge.example.com",
          "cname_target": "dcv.cloudflare.com",
          "emails": [
            "administrator@example.com",
            "webmaster@example.com"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "status": "pending",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "wildcard": false
    },
    "status": "pending",
    "verification_errors": [
      "None of the A or AAAA records are owned by this account and the pre-generated ownership verification token was not found."
    ]
  }
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "success": true,
  "result": {
    "id": "023e105f4ecef8ad9ca31a8372d0c353",
    "hostname": "app.example.com",
    "created_at": "2020-02-06T18:11:23.531995Z",
    "custom_metadata": {
      "foo": "string"
    },
    "custom_origin_server": "origin2.example.com",
    "custom_origin_sni": "sni.example.com",
    "ownership_verification": {
      "name": "_cf-custom-hostname.app.example.com",
      "type": "txt",
      "value": "5cc07c04-ea62-4a5a-95f0-419334a875a4"
    },
    "ownership_verification_http": {
      "http_body": "5cc07c04-ea62-4a5a-95f0-419334a875a4",
      "http_url": "http://custom.test.com/.well-known/cf-custom-hostname-challenge/0d89c70d-ad9f-4843-b99f-6cc0252067e9"
    },
    "ssl": {
      "id": "0d89c70d-ad9f-4843-b99f-6cc0252067e9",
      "bundle_method": "ubiquitous",
      "certificate_authority": "google",
      "custom_certificate": "-----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n",
      "custom_csr_id": "7b163417-1d2b-4c84-a38a-2fb7a0cd7752",
      "custom_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwQHoetcl9+5ikGzV6cMzWtWPJHqXT3wpbEkRU9Yz7lgvddmG\ndtcGbg/1CGZu0jJGkMoppoUo4c3dts3iwqRYmBikUP77wwY2QGmDZw2FvkJCJlKn\nabIRuGvBKwzESIXgKk2016aTP6/dAjEHyo6SeoK8lkIySUvK0fyOVlsiEsCmOpid\ntnKX/a+50GjB79CJH4ER2lLVZnhePFR/zUOyPxZQQ4naHf7yu/b5jhO0f8fwt+py\nFxIXjbEIdZliWRkRMtzrHOJIhrmJ2A1J7iOrirbbwillwjjNVUWPf3IJ3M12S9pE\newooaeO2izNTERcG9HzAacbVRn2Y2SWIyT/18QIDAQABAoIBACbhTYXBZYKmYPCb\nHBR1IBlCQA2nLGf0qRuJNJZg5iEzXows/6tc8YymZkQE7nolapWsQ+upk2y5Xdp/\naxiuprIs9JzkYK8Ox0r+dlwCG1kSW+UAbX0bQ/qUqlsTvU6muVuMP8vZYHxJ3wmb\n+ufRBKztPTQ/rYWaYQcgC0RWI20HTFBMxlTAyNxYNWzX7RKFkGVVyB9RsAtmcc8g\n+j4OdosbfNoJPS0HeIfNpAznDfHKdxDk2Yc1tV6RHBrC1ynyLE9+TaflIAdo2MVv\nKLMLq51GqYKtgJFIlBRPQqKoyXdz3fGvXrTkf/WY9QNq0J1Vk5ERePZ54mN8iZB7\n9lwy/AkCgYEA6FXzosxswaJ2wQLeoYc7ceaweX/SwTvxHgXzRyJIIT0eJWgx13Wo\n/WA3Iziimsjf6qE+SI/8laxPp2A86VMaIt3Z3mJN/CqSVGw8LK2AQst+OwdPyDMu\niacE8lj/IFGC8mwNUAb9CzGU3JpU4PxxGFjS/eMtGeRXCWkK4NE+G08CgYEA1Kp9\nN2JrVlqUz+gAX+LPmE9OEMAS9WQSQsfCHGogIFDGGcNf7+uwBM7GAaSJIP01zcoe\nVAgWdzXCv3FLhsaZoJ6RyLOLay5phbu1iaTr4UNYm5WtYTzMzqh8l1+MFFDl9xDB\nvULuCIIrglM5MeS/qnSg1uMoH2oVPj9TVst/ir8CgYEAxrI7Ws9Zc4Bt70N1As+U\nlySjaEVZCMkqvHJ6TCuVZFfQoE0r0whdLdRLU2PsLFP+q7qaeZQqgBaNSKeVcDYR\n9B+nY/jOmQoPewPVsp/vQTCnE/R81spu0mp0YI6cIheT1Z9zAy322svcc43JaWB7\nmEbeqyLOP4Z4qSOcmghZBSECgYACvR9Xs0DGn+wCsW4vze/2ei77MD4OQvepPIFX\ndFZtlBy5ADcgE9z0cuVB6CiL8DbdK5kwY9pGNr8HUCI03iHkW6Zs+0L0YmihfEVe\nPG19PSzK9CaDdhD9KFZSbLyVFmWfxOt50H7YRTTiPMgjyFpfi5j2q348yVT0tEQS\nfhRqaQKBgAcWPokmJ7EbYQGeMbS7HC8eWO/RyamlnSffdCdSc7ue3zdVJxpAkQ8W\nqu80pEIF6raIQfAf8MXiiZ7auFOSnHQTXUbhCpvDLKi0Mwq3G8Pl07l+2s6dQG6T\nlv6XTQaMyf6n1yjzL+fzDrH3qXMxHMO/b13EePXpDMpY7HQpoLDi\n-----END RSA PRIVATE KEY-----\n",
      "dcv_delegation_records": [
        {
          "cname": "_acme-challenge.example.com",
          "cname_target": "dcv.cloudflare.com",
          "emails": [
            "administrator@example.com",
            "webmaster@example.com"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "status": "pending",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "expires_on": "2021-02-06T18:11:23.531995Z",
      "hosts": [
        "app.example.com",
        "*.app.example.com"
      ],
      "issuer": "DigiCertInc",
      "method": "http",
      "serial_number": "6743787633689793699141714808227354901",
      "settings": {
        "ciphers": [
          "ECDHE-RSA-AES128-GCM-SHA256",
          "AES128-SHA"
        ],
        "early_hints": "on",
        "http2": "on",
        "min_tls_version": "1.2",
        "tls_1_3": "on"
      },
      "signature": "SHA256WithRSA",
      "status": "pending_validation",
      "type": "dv",
      "uploaded_on": "2020-02-06T18:11:23.531995Z",
      "validation_errors": [
        {
          "message": "SERVFAIL looking up CAA for app.example.com"
        }
      ],
      "validation_records": [
        {
          "cname": "_acme-challenge.example.com",
          "cname_target": "dcv.cloudflare.com",
          "emails": [
            "administrator@example.com",
            "webmaster@example.com"
          ],
          "http_body": "ca3-574923932a82475cb8592200f1a2a23d",
          "http_url": "http://app.example.com/.well-known/pki-validation/ca3-da12a1c25e7b48cf80408c6c1763b8a2.txt",
          "status": "pending",
          "txt_name": "_acme-challenge.app.example.com",
          "txt_value": "810b7d5f01154524b961ba0cd578acc2"
        }
      ],
      "wildcard": false
    },
    "status": "pending",
    "verification_errors": [
      "None of the A or AAAA records are owned by this account and the pre-generated ownership verification token was not found."
    ]
  }
}