Skip to content
Start here

Attach Worker Domain

workers.domains.update(DomainUpdateParams**kwargs) -> DomainUpdateResponse
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
account_id: str

Identifier.

maxLength32
hostname: str

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: str

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

enabled: Optional[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.

previews_enabled: Optional[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.

zone_id: Optional[str]

ID of the zone containing the domain hostname.

zone_name: Optional[str]

Name of the zone containing the domain hostname.

ReturnsExpand Collapse
class DomainUpdateResponse: …
id: str

Immutable ID of the domain.

cert_id: str

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: str

Worker environment associated with the domain.

hostname: str

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.

previews_enabled: 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: str

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

zone_id: str

ID of the zone containing the domain hostname.

zone_name: str

Name of the zone containing the domain hostname.

Attach Worker Domain

import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
domain = client.workers.domains.update(
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
    hostname="app.example.com",
    service="my-worker",
)
print(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
}