# PUT /v1/sessions/{session_id}/storage/secrets - Batch set secrets

Source: <https://everruns.com/docs/api/operations/batch_set_secrets/>

PUT

/v1/sessions/{session\_id}/storage/secrets

Select code samplecURL (shell:curl)

```js
const url = 'https://app.everruns.com/api/v1/sessions/example/storage/secrets';
const options = {
  method: 'PUT',
  headers: {'Content-Type': 'application/json'},
  body: '{"secrets":{"additionalProperty":"example"}}'
};


try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request PUT \
  --url https://app.everruns.com/api/v1/sessions/example/storage/secrets \
  --header 'Content-Type: application/json' \
  --data '{ "secrets": { "additionalProperty": "example" } }'
```

* Production APIapp.everruns.com/api/v1/sessions/{session\_id}/storage/secrets

Encrypts and stores multiple secrets in a single request. Existing secrets with the same name are overwritten.

## Parameters

### Path Parameters

**session\_id**

required

string

Session ID

## Request Bodyrequired

Media typeapplication/json

Batch secret set request

object

**secrets**

required

Map of secret names to values. Names are case-sensitive; values are stored encrypted and never returned by list/read endpoints. Existing keys are overwritten. Example: `{"OPENAI_API_KEY": "sk-...", "GITHUB_TOKEN": "ghp_..."}`.

object

***key***

additional properties

string

##### Examplegenerated

```json
{
  "secrets": {
    "additionalProperty": "example"
  }
}
```

## Responses

### 200

Secrets stored

Media typeapplication/json

Batch secret set response

object

**count**

required

Number of secrets stored

integer

##### Examplegenerated

```json
{
  "count": 1
}
```

### 400

Bad request (encryption not configured or invalid input)

### 404

Session not found

### 500

Internal server error