# Domains ## List Domains `client.Workers.Domains.List(ctx, params) (*SinglePage[DomainListResponse], error)` **get** `/accounts/{account_id}/workers/domains` Lists all domains for an account. ### Parameters - `params DomainListParams` - `AccountID param.Field[string]` Path param: Identifier. - `Environment param.Field[string]` Query param: Worker environment associated with the domain. - `Hostname param.Field[string]` Query param: Hostname of the domain. - `Service param.Field[string]` Query param: Name of the Worker associated with the domain. - `ZoneID param.Field[string]` Query param: ID of the zone containing the domain hostname. - `ZoneName param.Field[string]` Query param: Name of the zone containing the domain hostname. ### Returns - `type DomainListResponse struct{…}` - `ID string` Immutable ID of the domain. - `CERTID string` ID of the TLS certificate issued for the domain. - `Environment 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. - `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. ### Example ```go 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"), ) page, err := client.Workers.Domains.List(context.TODO(), workers.DomainListParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "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", "environment": "production", "hostname": "app.example.com", "service": "my-worker", "zone_id": "593c9c94de529bbbfaac7c53ced0447d", "zone_name": "example.com" } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Get Domain `client.Workers.Domains.Get(ctx, domainID, query) (*DomainGetResponse, error)` **get** `/accounts/{account_id}/workers/domains/{domain_id}` Gets information about a domain. ### Parameters - `domainID string` ID of the domain. - `query DomainGetParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type DomainGetResponse struct{…}` - `ID string` Immutable ID of the domain. - `CERTID string` ID of the TLS certificate issued for the domain. - `Environment 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. - `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. ### Example ```go 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.Get( context.TODO(), "dbe10b4bc17c295377eabd600e1787fd", workers.DomainGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", domain.ID) } ``` #### Response ```json { "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", "environment": "production", "hostname": "app.example.com", "service": "my-worker", "zone_id": "593c9c94de529bbbfaac7c53ced0447d", "zone_name": "example.com" }, "success": true } ``` ## Attach Domain `client.Workers.Domains.Update(ctx, params) (*DomainUpdateResponse, error)` **put** `/accounts/{account_id}/workers/domains` Attaches a domain that routes traffic to a Worker. ### Parameters - `params DomainUpdateParams` - `AccountID param.Field[string]` Path param: Identifier. - `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. - `Environment param.Field[string]` Body param: Worker environment associated with the domain. - `ZoneID param.Field[string]` Body param: ID of the zone containing the domain hostname. - `ZoneName param.Field[string]` Body param: Name of the zone containing the domain hostname. ### Returns - `type DomainUpdateResponse struct{…}` - `ID string` Immutable ID of the domain. - `CERTID string` ID of the TLS certificate issued for the domain. - `Environment 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. - `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. ### Example ```go 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) } ``` #### Response ```json { "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", "environment": "production", "hostname": "app.example.com", "service": "my-worker", "zone_id": "593c9c94de529bbbfaac7c53ced0447d", "zone_name": "example.com" }, "success": true } ``` ## Detach Domain `client.Workers.Domains.Delete(ctx, domainID, body) (*DomainDeleteResponse, error)` **delete** `/accounts/{account_id}/workers/domains/{domain_id}` Detaches a domain from a Worker. Both the Worker and all of its previews are no longer routable using this domain. ### Parameters - `domainID string` ID of the domain. - `body DomainDeleteParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type DomainDeleteResponse struct{…}` - `Errors []DomainDeleteResponseError` - `Code int64` - `Message string` - `DocumentationURL string` - `Source DomainDeleteResponseErrorsSource` - `Pointer string` - `Messages []DomainDeleteResponseMessage` - `Code int64` - `Message string` - `DocumentationURL string` - `Source DomainDeleteResponseMessagesSource` - `Pointer string` - `Success DomainDeleteResponseSuccess` Whether the API call was successful. - `const DomainDeleteResponseSuccessTrue DomainDeleteResponseSuccess = true` ### Example ```go 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.Delete( context.TODO(), "dbe10b4bc17c295377eabd600e1787fd", workers.DomainDeleteParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", domain.Errors) } ``` #### Response ```json { "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 } ```