# Put secret (/en/docs/api/native/application/putSecret)



`PUT /application/v1/workers/{worker_id}/secrets/{name}`

Create or replace a secret by value or vault reference. Unlike Cloudflare, this derives a new version from the current one and deploys it, so the change is live only once that deployment is active.

**Support: supported**

## Parameters [#parameters]

| Name       | Location | Type   | Required | Description                                                                                              |
| ---------- | -------- | ------ | -------- | -------------------------------------------------------------------------------------------------------- |
| worker\_id | path     | string | true     | Worker ID (wkr\_…).                                                                                      |
| name       | path     | string | true     | Secret name as seen in the Worker's env: 1–64 letters, digits or underscores, not starting with a digit. |

## Request body (application/json) [#request-body-applicationjson]

Required: true

| Name   | Type   | Description                                                                                       |
| ------ | ------ | ------------------------------------------------------------------------------------------------- |
| source | object | \{type: value, text} stores a value; \{type: vault, vault\_id, secret} references a vault secret. |

```json
{
  "type": "object",
  "required": [
    "source"
  ],
  "properties": {
    "source": {
      "type": "object",
      "additionalProperties": true,
      "description": "{type: value, text} stores a value; {type: vault, vault_id, secret} references a vault secret."
    }
  }
}
```

## Response [#response]

### HTTP 200 [#http-200]

Success

**application/json**

| Name | Type | Description |
| --- | --- | --- |
| secret | object | The secret after the write; its value is not returned. |
| secret.worker_id | string | Owning Worker. |
| secret.name | string | Secret name, as seen by the Worker's env. |
| secret.source | object | &#123;type: value&#125; for a stored value, or &#123;type: vault, vault_id, secret&#125; for a vault reference. Values are never returned. |
| secret.updated_on | string | When the secret last changed. |
| deployment | object | The deployment of the version derived from this change. |
| deployment.id | string | Deployment ID, prefixed dep_. |
| deployment.created_on | string | When the deployment was created. |
| deployment.source | string | Origin: api, sdk, console or rollback. |
| deployment.strategy | string | Rollout strategy. |
| deployment.versions | array&lt;object&gt; | Exactly one version at 100 percent. |
| deployment.annotations | object | Free-form annotations. |
| deployment.author_email | string &#124; null | Who created the deployment. |
| deployment.praxis | object | Platform fields: deployments run asynchronously, so track status, progress and error here. |
