Skip to content
Start here

Attach Worker Domain

client.Workers.Domains.Update(ctx, params) (*DomainUpdateResponse, error)
PUT/accounts/{account_id}/workers/domains

Attaches a domain that routes traffic to a Worker.

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)
Workers Scripts Write
ParametersExpand Collapse
params DomainUpdateParams
AccountID param.Field[string]

Path param: Identifier.

maxLength32
Hostname param.Field[string]

Body param: Hostname of the domain. Can be either the zone apex or a subdomain of the zone. Requests to this hostname will be routed to the configured Worker.

Service param.Field[string]

Body param: Name of the Worker associated with the domain. Requests to the configured hostname will be routed to this Worker.

Enabled param.Field[bool]Optional

Body param: Whether the configured hostname is routable for the domain. If disabled, then requests to the configured hostname will not be routed to the configured Worker. If disabled, then preview routing must be enabled, and only subdomains of the configured hostname will be routable.

PreviewsEnabled param.Field[bool]Optional

Body param: Whether previews are routable for the domain. If enabled, previews will be routable as subdomains of the configured hostname. For example, if the configured hostname is app.example.com, then requests to my-feature.app.example.com will be routed to the preview with slug my-feature, if such a preview exists. If preview routing is disabled, then hostname routing must be enabled.

ZoneID param.Field[string]Optional

Body param: ID of the zone containing the domain hostname.

ZoneName param.Field[string]Optional

Body param: Name of the zone containing the domain hostname.

ReturnsExpand Collapse
type DomainUpdateResponse struct{…}
ID string

Immutable ID of the domain.

CERTID string

ID of the TLS certificate issued for the domain.

formatuuid
Enabled bool

Whether the configured hostname is routable for the domain. If disabled, then requests to the configured hostname will not be routed to the configured Worker. If disabled, then preview routing must be enabled, and only subdomains of the configured hostname will be routable.

DeprecatedEnvironment string

Worker environment associated with the domain.

Hostname string

Hostname of the domain. Can be either the zone apex or a subdomain of the zone. Requests to this hostname will be routed to the configured Worker.

PreviewsEnabled bool

Whether previews are routable for the domain. If enabled, previews will be routable as subdomains of the configured hostname. For example, if the configured hostname is app.example.com, then requests to my-feature.app.example.com will be routed to the preview with slug my-feature, if such a preview exists. If preview routing is disabled, then hostname routing must be enabled.

Service string

Name of the Worker associated with the domain. Requests to the configured hostname will be routed to this Worker.

ZoneID string

ID of the zone containing the domain hostname.

ZoneName string

Name of the zone containing the domain hostname.

Attach Worker Domain

package main

import (
  "context"
  "fmt"

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

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  domain, err := client.Workers.Domains.Update(context.TODO(), workers.DomainUpdateParams{
    AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
    Hostname: cloudflare.F("app.example.com"),
    Service: cloudflare.F("my-worker"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", domain.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"
      }
    }
  ],
  "result": {
    "id": "dbe10b4bc17c295377eabd600e1787fd",
    "cert_id": "9fdf92c8-64c2-4a3d-b1af-e15304961145",
    "enabled": true,
    "environment": "production",
    "hostname": "app.example.com",
    "previews_enabled": false,
    "service": "my-worker",
    "zone_id": "593c9c94de529bbbfaac7c53ced0447d",
    "zone_name": "example.com"
  },
  "success": true
}
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"
      }
    }
  ],
  "result": {
    "id": "dbe10b4bc17c295377eabd600e1787fd",
    "cert_id": "9fdf92c8-64c2-4a3d-b1af-e15304961145",
    "enabled": true,
    "environment": "production",
    "hostname": "app.example.com",
    "previews_enabled": false,
    "service": "my-worker",
    "zone_id": "593c9c94de529bbbfaac7c53ced0447d",
    "zone_name": "example.com"
  },
  "success": true
}