Skip to content
Start here

Create a sending subdomain

client.EmailSending.Subdomains.New(ctx, params) (*SubdomainNewResponse, error)
POST/zones/{zone_id}/email/sending/subdomains

Creates a new sending subdomain or re-enables sending on an existing subdomain that had it disabled. If zone-level Email Sending has not been enabled yet, the zone flag is automatically set when the entitlement is present.

Security

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)
Zone Settings Write
ParametersExpand Collapse
params SubdomainNewParams
ZoneID param.Field[string]

Path param: Identifier.

maxLength32
Name param.Field[string]

Body param: The subdomain name. Must be within the zone.

ReturnsExpand Collapse
type SubdomainNewResponse struct{…}
EmailSendingEnabled bool

Whether Email Sending is enabled on this subdomain.

Name string

The subdomain domain name.

Tag string

Sending subdomain identifier.

maxLength32
Created Timeoptional

The date and time the destination address has been created.

formatdate-time
EmailSendingDKIMSelector stringoptional

The DKIM selector used for email signing.

EmailSendingReturnPathDomain stringoptional

The return-path domain used for bounce handling.

Enabled booloptional

Whether Email Routing (receiving) is enabled on this subdomain. Read-only; included for informational purposes since both services share the subdomain row.

Modified Timeoptional

The date and time the destination address was last modified.

formatdate-time

Create a sending subdomain

package main

import (
  "context"
  "fmt"

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

func main() {
  client := cloudflare.NewClient(
    option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"),
    option.WithAPIEmail("user@example.com"),
  )
  subdomain, err := client.EmailSending.Subdomains.New(context.TODO(), email_sending.SubdomainNewParams{
    ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Name: cloudflare.F("sub.example.com"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", subdomain.EmailSendingEnabled)
}
{
  "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": {
    "email_sending_enabled": true,
    "name": "sub.example.com",
    "tag": "aabbccdd11223344aabbccdd11223344",
    "created": "2014-01-02T02:20:00Z",
    "email_sending_dkim_selector": "cf-bounce",
    "email_sending_return_path_domain": "cf-bounce.sub.example.com",
    "enabled": true,
    "modified": "2014-01-02T02:20:00Z"
  }
}
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": {
    "email_sending_enabled": true,
    "name": "sub.example.com",
    "tag": "aabbccdd11223344aabbccdd11223344",
    "created": "2014-01-02T02:20:00Z",
    "email_sending_dkim_selector": "cf-bounce",
    "email_sending_return_path_domain": "cf-bounce.sub.example.com",
    "enabled": true,
    "modified": "2014-01-02T02:20:00Z"
  }
}