# 创建 Worker (/docs/api/native/application/createWorker)



`POST /application/v1/workers`

Create a Worker. It serves nothing until a version is deployed.

**支持状态: supported**

## 请求体 (application/json) [#请求体-applicationjson]

必填: true

| 名称                    | 类型             | 说明                                                                                                                                                                                                                                                     |
| --------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| name                  | string         | Worker name, unique in your account: 3–40 lowercase letters, digits or hyphens, starting and ending with a letter or digit, with no two hyphens in a row. The names www, api, admin, app, canary, canary-probe, status, docs and console are reserved. |
| tags                  | array\<string> | Up to 8 tags.                                                                                                                                                                                                                                          |
| observability         | object         | Observability settings.                                                                                                                                                                                                                                |
| observability.enabled | boolean        | Collect logs.                                                                                                                                                                                                                                          |
| subdomain             | object         | Subdomain settings.                                                                                                                                                                                                                                    |
| subdomain.enabled     | boolean        | Serve the Worker on its public subdomain (default true).                                                                                                                                                                                               |
| praxis                | object         | Praxis settings.                                                                                                                                                                                                                                       |
| praxis.labels         | object         | Up to 16 labels.                                                                                                                                                                                                                                       |

```json
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "Worker name, unique in your account: 3–40 lowercase letters, digits or hyphens, starting and ending with a letter or digit, with no two hyphens in a row. The names www, api, admin, app, canary, canary-probe, status, docs and console are reserved.",
      "pattern": "^(?!(?:www|api|admin|app|canary|canary-probe|status|docs|console)$)(?!.*--)[a-z0-9][a-z0-9-]{1,38}[a-z0-9]$",
      "example": "my-app"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 8,
      "description": "Up to 8 tags."
    },
    "observability": {
      "type": "object",
      "description": "Observability settings.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Collect logs."
        }
      }
    },
    "subdomain": {
      "type": "object",
      "description": "Subdomain settings.",
      "required": [
        "enabled"
      ],
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Serve the Worker on its public subdomain (default true)."
        }
      }
    },
    "praxis": {
      "type": "object",
      "description": "Praxis settings.",
      "required": [],
      "properties": {
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Up to 16 labels."
        }
      }
    }
  }
}
```

## 响应 [#响应]

### HTTP 200 [#http-200]

Success

**application/json**

| 名称 | 类型 | 说明 |
| --- | --- | --- |
| id | string | Worker ID, prefixed wkr_. |
| name | string | Unique per account; lowercase letters, digits and single hyphens. |
| subdomain | object | Public address of the Worker. |
| subdomain.enabled | boolean | Whether the public subdomain serves this Worker. |
| subdomain.url | string | Public URL of the Worker. |
| tags | array&lt;string&gt; | Up to 8 tags. |
| observability | object | Observability settings. |
| observability.enabled | boolean | Whether logs are collected. |
| logpush | boolean | Always false: unlike Cloudflare, Logpush is not offered. |
| created_on | string | When the Worker was created. |
| updated_on | string | When the Worker last changed. |
| deployed_on | string &#124; null | When the current deployment became active; null before the first deployment. |
| praxis | object | Platform fields: lifecycle status, labels, and soft-delete timestamps. |
| praxis.status | string | Worker status: draft (no deployment yet), active (serving), suspended (stopped by an administrator), deleted (soft-deleted, restorable for 7 days), purging (resources being removed), purged (gone). |
| praxis.current_deployment_id | string &#124; null | ID of the active deployment. |
| praxis.labels | object | Up to 16 key-value labels for your own grouping. |
| praxis.deleted_on | string &#124; null | When the Worker was deleted. |
| praxis.purge_on | string &#124; null | When a deleted Worker is permanently removed. |
| praxis.suspended_reason | string &#124; null | Why an administrator suspended the Worker. |
