---
title: "Create a new worker"
method: POST
path: "/{spaceId}/workers"
tags: ["Workers"]
---

# Create a new worker

`POST /{spaceId}/workers`

## Path parameters

- `spaceId` string, required

## Request body

- CreateWorkerCommand
  - `Endpoint` EndpointResource, required
    - `CommunicationStyle` 'None' | 'TentaclePassive' | 'TentacleActive' | 'Ssh' | 'OfflineDrop' | 'AzureWebApp' | 'Ftp' | 'AzureCloudService' | 'AzureServiceFabricCluster' | 'Kubernetes' | 'StepPackage' | 'KubernetesTentacle' | 'AwsEcsCluster' — This is for legacy support in client. Server no longer uses this for determining endpoint types, it uses DeploymentTargetType
    - `Id` string — Gets or sets a unique identifier for this resource.
    - `LastModifiedBy` string — Gets or sets the username of the user who last modified this resource.
    - `LastModifiedOn` string, date-time — Gets or sets the date/time that this resource was last modified.
    - `Links` object — Gets or sets a dictionary of links to other related resources. These links can be used to navigate the resources on the server.
  - `IsDisabled` boolean, required — Whether the worker is disabled or not
  - `MachinePolicyId` string — The policy the worker must adhere to
  - `Name` string, required — The name of the worker
  - `SkipInitialHealthCheck` boolean
  - `Slug` string
  - `SpaceId` string, required — The ID of the space containing the resource(s).
  - `WorkerPoolIds` string[], required — The worker pools the worker belongs to

## Response `201`

Created

- WorkerResource
  - `Architecture` string
  - `Endpoint` EndpointResource
    - `CommunicationStyle` 'None' | 'TentaclePassive' | 'TentacleActive' | 'Ssh' | 'OfflineDrop' | 'AzureWebApp' | 'Ftp' | 'AzureCloudService' | 'AzureServiceFabricCluster' | 'Kubernetes' | 'StepPackage' | 'KubernetesTentacle' | 'AwsEcsCluster' — This is for legacy support in client. Server no longer uses this for determining endpoint types, it uses DeploymentTargetType
    - `Id` string — Gets or sets a unique identifier for this resource.
    - `LastModifiedBy` string — Gets or sets the username of the user who last modified this resource.
    - `LastModifiedOn` string, date-time — Gets or sets the date/time that this resource was last modified.
    - `Links` object — Gets or sets a dictionary of links to other related resources. These links can be used to navigate the resources on the server.
  - `HasLatestCalamari` boolean
  - `HealthStatus` 'Healthy' | 'Unavailable' | 'Unknown' | 'HasWarnings' | 'Unhealthy'
  - `Id` string — Gets or sets a unique identifier for this resource.
  - `IsDisabled` boolean
  - `IsInProcess` boolean
  - `LastModifiedBy` string — Gets or sets the username of the user who last modified this resource.
  - `LastModifiedOn` string, date-time — Gets or sets the date/time that this resource was last modified.
  - `Links` object — Gets or sets a dictionary of links to other related resources. These links can be used to navigate the resources on the server.
  - `MachinePolicyId` string
  - `Name` string
  - `OperatingSystem` string
  - `OperatingSystemVersion` string
  - `ShellName` string
  - `ShellVersion` string
  - `SkipInitialHealthCheck` boolean
  - `Slug` string
  - `SpaceId` string
  - `StatusSummary` string
  - `Thumbprint` string
  - `Uri` string
  - `WorkerPoolIds` string[]

## Other responses

- `400` — Bad request. Either the payload was not structurally valid or business rules did not permit the operation.
- `404` — Not found. One or more of the entities involved in the operation was not found.

---

[API](https://skmtc.net/octopus/apis/octopus-server-api.md) · [All operations](https://skmtc.net/octopus/apis/octopus-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/octopus/octopus-server-api/revisions/b296c3a60aa5/schema)
