> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corsair.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# API

> API reference for Doppler: every `doppler.api.*` operation with input and output types.

Every `doppler.api.*` operation is listed below with parameter shapes and return types from the plugin Zod schemas.

<Info>
  **New to Corsair?** See [API access](/concepts/api), [authentication](/concepts/auth), and [error handling](/concepts/error-handling).
</Info>

## Activity Logs

### list

`activityLogs.list`

List workplace activity log entries

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.activityLogs.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `page` | `string` | No | — |
| `perPage` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `logs` | `object[]` | Yes | — |
| `page` | `number` | No | — |

<AccordionGroup>
  <Accordion title="logs full type">
    ```ts theme={null}
    {
      id?: string | null,
      text?: string | null,
      html?: string | null,
      created_at?: string | null,
      config?: string | null,
      environment?: string | null,
      project?: string | null,
      enclave_project?: string | null,
      enclave_environment?: string | null,
      enclave_config?: string | null,
      user?: {
      } | null,
      diff?: {
      } | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### retrieve

`activityLogs.retrieve`

Retrieve a single activity log entry

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.activityLogs.retrieve({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `log` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | No | — |
| `text` | `string` | No | — |
| `html` | `string` | No | — |
| `created_at` | `string` | No | — |
| `config` | `string` | No | — |
| `environment` | `string` | No | — |
| `project` | `string` | No | — |
| `enclave_project` | `string` | No | — |
| `enclave_environment` | `string` | No | — |
| `enclave_config` | `string` | No | — |
| `user` | `object` | No | — |
| `diff` | `object` | No | — |

<AccordionGroup>
  <Accordion title="user full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="diff full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Auth

### me

`auth.me`

Read information about the authenticated token

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.auth.me({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `slug` | `string` | No | — |
| `name` | `string` | No | — |
| `created_at` | `string` | No | — |
| `last_seen_at` | `string` | No | — |
| `type` | `string` | No | — |
| `token_preview` | `string` | No | — |
| `workplace` | `object` | No | — |
| `principal` | `object` | No | — |

<AccordionGroup>
  <Accordion title="workplace full type">
    ```ts theme={null}
    {
      slug?: string | null,
      name?: string | null
    }
    ```
  </Accordion>

  <Accordion title="principal full type">
    ```ts theme={null}
    {
      type?: string | null,
      slug?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Change Requests

### list

`changeRequests.list`

List change requests (Team/Enterprise plans only)

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.changeRequests.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `page` | `number` | No | — |
| `perPage` | `number` | No | — |
| `status` | `string[]` | No | — |
| `title` | `string` | No | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Config Logs

### get

`configLogs.get`

Retrieve a config log entry, including its secret diff

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.configLogs.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `log` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | No | — |
| `text` | `string` | No | — |
| `html` | `string` | No | — |
| `created_at` | `string` | No | — |
| `user` | `object` | No | — |
| `diff` | `object` | No | — |

<AccordionGroup>
  <Accordion title="user full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="diff full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### list

`configLogs.list`

List a config's change-log entries

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.configLogs.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `page` | `number` | No | — |
| `perPage` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `logs` | `object[]` | Yes | — |
| `page` | `number` | No | — |

<AccordionGroup>
  <Accordion title="logs full type">
    ```ts theme={null}
    {
      id?: string | null,
      text?: string | null,
      html?: string | null,
      created_at?: string | null,
      user?: {
      } | null,
      diff?: {
      } | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### rollback

`configLogs.rollback`

Roll a config back to a prior log entry's state

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.configLogs.rollback({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `log` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | No | — |
| `text` | `string` | No | — |
| `html` | `string` | No | — |
| `created_at` | `string` | No | — |
| `user` | `object` | No | — |
| `diff` | `object` | No | — |

<AccordionGroup>
  <Accordion title="user full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="diff full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Configs

### clone

`configs.clone`

Clone a config into a new branch config

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.configs.clone({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `name` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `project` | `string` | No | — |
| `environment` | `string` | No | — |
| `root` | `boolean` | No | — |
| `inheritable` | `boolean` | No | — |
| `inheriting` | `boolean` | No | — |
| `inherits` | `any[]` | No | — |
| `inheritedBy` | `any[]` | No | — |
| `locked` | `boolean` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `last_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |

***

### create

`configs.create`

Create a branch config within an environment

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.configs.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `environment` | `string` | Yes | — |
| `name` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `project` | `string` | No | — |
| `environment` | `string` | No | — |
| `root` | `boolean` | No | — |
| `inheritable` | `boolean` | No | — |
| `inheriting` | `boolean` | No | — |
| `inherits` | `any[]` | No | — |
| `inheritedBy` | `any[]` | No | — |
| `locked` | `boolean` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `last_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |

***

### delete

`configs.delete`

Permanently delete a config and its secrets

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.configs.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

### get

`configs.get`

Retrieve a config

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.configs.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `project` | `string` | No | — |
| `environment` | `string` | No | — |
| `root` | `boolean` | No | — |
| `inheritable` | `boolean` | No | — |
| `inheriting` | `boolean` | No | — |
| `inherits` | `any[]` | No | — |
| `inheritedBy` | `any[]` | No | — |
| `locked` | `boolean` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `last_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |

***

### list

`configs.list`

List a project's configs

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.configs.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `environment` | `string` | No | — |
| `page` | `number` | No | — |
| `perPage` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `configs` | `object[]` | Yes | — |
| `page` | `number` | No | — |

<AccordionGroup>
  <Accordion title="configs full type">
    ```ts theme={null}
    {
      name: string,
      slug?: string | null,
      project?: string | null,
      environment?: string | null,
      root?: boolean | null,
      inheritable?: boolean | null,
      inheriting?: boolean | null,
      inherits?: any[] | null,
      inheritedBy?: any[] | null,
      locked?: boolean | null,
      initial_fetch_at?: string | null,
      last_fetch_at?: string | null,
      created_at?: string | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### lock

`configs.lock`

Lock a config so it cannot be renamed or deleted

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.configs.lock({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `project` | `string` | No | — |
| `environment` | `string` | No | — |
| `root` | `boolean` | No | — |
| `inheritable` | `boolean` | No | — |
| `inheriting` | `boolean` | No | — |
| `inherits` | `any[]` | No | — |
| `inheritedBy` | `any[]` | No | — |
| `locked` | `boolean` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `last_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |

***

### unlock

`configs.unlock`

Unlock a config so it can be renamed or deleted

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.configs.unlock({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `project` | `string` | No | — |
| `environment` | `string` | No | — |
| `root` | `boolean` | No | — |
| `inheritable` | `boolean` | No | — |
| `inheriting` | `boolean` | No | — |
| `inherits` | `any[]` | No | — |
| `inheritedBy` | `any[]` | No | — |
| `locked` | `boolean` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `last_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |

***

### update

`configs.update`

Rename a config

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.configs.update({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `name` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `project` | `string` | No | — |
| `environment` | `string` | No | — |
| `root` | `boolean` | No | — |
| `inheritable` | `boolean` | No | — |
| `inheriting` | `boolean` | No | — |
| `inherits` | `any[]` | No | — |
| `inheritedBy` | `any[]` | No | — |
| `locked` | `boolean` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `last_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |

***

## Dynamic Secrets

### revokeLease

`dynamicSecrets.revokeLease`

Revoke a leased dynamic secret credential

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.dynamicSecrets.revokeLease({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `dynamicSecret` | `string` | Yes | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

## Environments

### create

`environments.create`

Create an environment within a project

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.environments.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `slug` | `string` | Yes | — |
| `personalConfigs` | `boolean` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `name` | `string` | No | — |
| `project` | `string` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |
| `personal_configs` | `boolean` | No | — |

***

### delete

`environments.delete`

Permanently delete an environment and its configs

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.environments.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `environment` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

### get

`environments.get`

Retrieve an environment

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.environments.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `environment` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `name` | `string` | No | — |
| `project` | `string` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |
| `personal_configs` | `boolean` | No | — |

***

### list

`environments.list`

List a project's environments

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.environments.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string,
      slug?: string | null,
      name?: string | null,
      project?: string | null,
      initial_fetch_at?: string | null,
      created_at?: string | null,
      personal_configs?: boolean | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### rename

`environments.rename`

Rename an environment's display name or slug

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.environments.rename({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `environment` | `string` | Yes | — |
| `name` | `string` | No | — |
| `slug` | `string` | No | — |
| `personalConfigs` | `boolean` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `name` | `string` | No | — |
| `project` | `string` | No | — |
| `initial_fetch_at` | `string` | No | — |
| `created_at` | `string` | No | — |
| `personal_configs` | `boolean` | No | — |

***

## Groups

### deleteMember

`groups.deleteMember`

Remove a member from a workplace group

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.groups.deleteMember({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `group` | `string` | Yes | — |
| `type` | `workplace_user \| group \| invite \| service_account` | Yes | — |
| `memberSlug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

## Integrations

### list

`integrations.list`

List third-party integrations

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.integrations.list({});
```

**Input:** *empty object*

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Invites

### list

`invites.list`

List pending workplace invites

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.invites.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `page` | `number` | No | — |
| `perPage` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `invites` | `object[]` | Yes | — |
| `page` | `number` | No | — |

<AccordionGroup>
  <Accordion title="invites full type">
    ```ts theme={null}
    {
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Project Members

### delete

`projectMembers.delete`

Remove a member from a project

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.projectMembers.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `type` | `workplace_user \| group \| invite \| service_account` | Yes | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

### get

`projectMembers.get`

Retrieve a project member

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.projectMembers.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `type` | `workplace_user \| group \| invite \| service_account` | Yes | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `type` | `string` | No | — |
| `slug` | `string` | No | — |
| `role` | `object` | No | — |
| `environments` | `any[]` | No | — |

<AccordionGroup>
  <Accordion title="role full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### list

`projectMembers.list`

List a project's members

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.projectMembers.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `page` | `number` | No | — |
| `perPage` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `members` | `object[]` | Yes | — |
| `page` | `number` | No | — |

<AccordionGroup>
  <Accordion title="members full type">
    ```ts theme={null}
    {
      type?: string | null,
      slug?: string | null,
      role?: {
      } | null,
      environments?: any[] | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Project Roles

### get

`projectRoles.get`

Retrieve a project-level role

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.projectRoles.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `role` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `identifier` | `string` | No | — |
| `name` | `string` | No | — |
| `permissions` | `string[]` | No | — |
| `created_at` | `string` | No | — |
| `is_custom_role` | `boolean` | No | — |

***

### list

`projectRoles.list`

List project-level roles

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.projectRoles.list({});
```

**Input:** *empty object*

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      identifier?: string | null,
      name?: string | null,
      permissions?: string[] | null,
      created_at?: string | null,
      is_custom_role?: boolean | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### listPermissions

`projectRoles.listPermissions`

List permissions grantable to a project-level role

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.projectRoles.listPermissions({});
```

**Input:** *empty object*

**Output:** `string[]`

***

## Projects

### create

`projects.create`

Create a project

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.projects.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | Yes | — |
| `description` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `name` | `string` | No | — |
| `description` | `string` | No | — |
| `created_at` | `string` | No | — |

***

### delete

`projects.delete`

Permanently delete a project and everything in it

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.projects.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

### get

`projects.get`

Retrieve a project

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.projects.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `name` | `string` | No | — |
| `description` | `string` | No | — |
| `created_at` | `string` | No | — |

***

### list

`projects.list`

List projects

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.projects.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `page` | `number` | No | — |
| `perPage` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `projects` | `object[]` | Yes | — |
| `page` | `number` | No | — |

<AccordionGroup>
  <Accordion title="projects full type">
    ```ts theme={null}
    {
      id: string,
      slug?: string | null,
      name?: string | null,
      description?: string | null,
      created_at?: string | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### update

`projects.update`

Update a project's name or description

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.projects.update({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `description` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `slug` | `string` | No | — |
| `name` | `string` | No | — |
| `description` | `string` | No | — |
| `created_at` | `string` | No | — |

***

## Secrets

### delete

`secrets.delete`

Delete a secret

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.secrets.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `name` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

### download

`secrets.download`

Download a config's secrets in a given format

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.secrets.download({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `format` | `json \| env \| yaml \| docker \| env-no-quotes` | No | — |
| `nameTransformer` | `string` | No | — |
| `includeDynamicSecrets` | `boolean` | No | — |
| `dynamicSecretsTtlSec` | `number` | No | — |
| `secrets` | `string[]` | No | — |

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### get

`secrets.get`

Retrieve a single secret's value

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.secrets.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `name` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `raw` | `string` | No | — |
| `computed` | `string` | No | — |
| `note` | `string` | No | — |
| `rawVisibility` | `string` | No | — |
| `computedVisibility` | `string` | No | — |
| `rawValueType` | `object` | No | — |
| `computedValueType` | `object` | No | — |
| `name` | `string` | Yes | — |

<AccordionGroup>
  <Accordion title="rawValueType full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>

  <Accordion title="computedValueType full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### list

`secrets.list`

List a config's secrets, values included

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.secrets.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `includeDynamicSecrets` | `boolean` | No | — |
| `includeManagedSecrets` | `boolean` | No | — |

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### names

`secrets.names`

List a config's secret names, without values

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.secrets.names({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `includeDynamicSecrets` | `boolean` | No | — |
| `includeManagedSecrets` | `boolean` | No | — |

**Output:** `string[]`

***

### update

`secrets.update`

Bulk-set (or delete, via null) secrets in a config

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.secrets.update({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `secrets` | `object` | Yes | — |

<AccordionGroup>
  <Accordion title="secrets full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

**Output:** `object`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
    }
    ```
  </Accordion>
</AccordionGroup>

***

### updateNote

`secrets.updateNote`

Set a secret's note (project-scoped route)

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.secrets.updateNote({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `secret` | `string` | Yes | — |
| `note` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `secret` | `string` | No | — |
| `note` | `string` | No | — |

***

### updateNoteViaConfig

`secrets.updateNoteViaConfig`

Set a secret's note (config-scoped route)

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.secrets.updateNoteViaConfig({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `secret` | `string` | Yes | — |
| `note` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `secret` | `string` | No | — |
| `note` | `string` | No | — |

***

## Service Tokens

### create

`serviceTokens.create`

Create a service token for a config

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.serviceTokens.create({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `name` | `string` | Yes | — |
| `access` | `read \| read/write` | No | — |
| `expireAt` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | No | — |
| `slug` | `string` | No | — |
| `access` | `string` | No | — |
| `created_at` | `string` | No | — |
| `key` | `string` | No | — |
| `project` | `string` | No | — |
| `environment` | `string` | No | — |
| `config` | `string` | No | — |
| `expires_at` | `string` | No | — |
| `last_seen_at` | `string` | No | — |
| `token_preview` | `string` | No | — |

***

### delete

`serviceTokens.delete`

Revoke a service token

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.serviceTokens.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

### list

`serviceTokens.list`

List a config's service tokens

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.serviceTokens.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | Yes | — |
| `config` | `string` | Yes | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      name?: string | null,
      slug?: string | null,
      access?: string | null,
      created_at?: string | null,
      key?: string | null,
      project?: string | null,
      environment?: string | null,
      config?: string | null,
      expires_at?: string | null,
      last_seen_at?: string | null,
      token_preview?: string | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

## Share

### createEncrypted

`share.createEncrypted`

Create a Doppler Share link from a caller-encrypted payload (zero-knowledge)

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.share.createEncrypted({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `encryptedSecret` | `string` | Yes | — |
| `hashedPassword` | `string` | Yes | — |
| `encryptionKdf` | `pbkdf2` | No | — |
| `encryptionSaltRounds` | `1000000` | No | — |
| `expireViews` | `number \| -1` | No | — |
| `expireDays` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `url` | `string` | No | — |
| `authenticated_url` | `string` | No | — |
| `password` | `string` | No | — |

***

### createPlain

`share.createPlain`

Create a Doppler Share link from a plaintext secret

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.share.createPlain({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `secret` | `string` | Yes | — |
| `expireViews` | `number \| -1` | No | — |
| `expireDays` | `number` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `url` | `string` | No | — |
| `authenticated_url` | `string` | No | — |
| `password` | `string` | No | — |

***

## Webhooks

### add

`webhooks.add`

Create a webhook

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.webhooks.add({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | No | — |
| `url` | `string` | Yes | — |
| `name` | `string` | No | — |
| `secret` | `string` | No | — |
| `authentication` | `object` | No | — |
| `payload` | `string` | No | — |
| `enableConfigs` | `string[]` | No | — |

<AccordionGroup>
  <Accordion title="authentication full type">
    ```ts theme={null}
    {
      type: None | Bearer | Basic,
      token?: string,
      username?: string,
      password?: string
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | No | — |
| `url` | `string` | No | — |
| `enabled` | `boolean` | No | — |
| `hasSecret` | `boolean` | No | — |
| `authentication` | `any` | No | — |
| `enabledConfigs` | `any[]` | No | — |
| `canManage` | `boolean` | No | — |

***

### delete

`webhooks.delete`

Permanently delete a webhook

**Risk:** `destructive`

```ts theme={null}
await corsair.doppler.api.webhooks.delete({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | No | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `success` | `boolean` | No | — |

***

### disable

`webhooks.disable`

Disable a webhook

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.webhooks.disable({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | No | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | No | — |
| `url` | `string` | No | — |
| `enabled` | `boolean` | No | — |
| `hasSecret` | `boolean` | No | — |
| `authentication` | `any` | No | — |
| `enabledConfigs` | `any[]` | No | — |
| `canManage` | `boolean` | No | — |

***

### enable

`webhooks.enable`

Enable a webhook

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.webhooks.enable({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | No | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | No | — |
| `url` | `string` | No | — |
| `enabled` | `boolean` | No | — |
| `hasSecret` | `boolean` | No | — |
| `authentication` | `any` | No | — |
| `enabledConfigs` | `any[]` | No | — |
| `canManage` | `boolean` | No | — |

***

### get

`webhooks.get`

Retrieve a webhook

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.webhooks.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | No | — |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | No | — |
| `url` | `string` | No | — |
| `enabled` | `boolean` | No | — |
| `hasSecret` | `boolean` | No | — |
| `authentication` | `any` | No | — |
| `enabledConfigs` | `any[]` | No | — |
| `canManage` | `boolean` | No | — |

***

### list

`webhooks.list`

List webhooks

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.webhooks.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | No | — |

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      id: string,
      name?: string | null,
      url?: string | null,
      enabled?: boolean | null,
      hasSecret?: boolean | null,
      authentication?: any | null,
      enabledConfigs?: any[] | null,
      canManage?: boolean | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### update

`webhooks.update`

Update a webhook

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.webhooks.update({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `project` | `string` | No | — |
| `slug` | `string` | Yes | — |
| `url` | `string` | No | — |
| `name` | `string` | No | — |
| `secret` | `string` | No | — |
| `authentication` | `object` | No | — |
| `payload` | `string` | No | — |
| `enableConfigs` | `string[]` | No | — |
| `disableConfigs` | `string[]` | No | — |

<AccordionGroup>
  <Accordion title="authentication full type">
    ```ts theme={null}
    {
      type: None | Bearer | Basic,
      token?: string,
      username?: string,
      password?: string
    }
    ```
  </Accordion>
</AccordionGroup>

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | No | — |
| `url` | `string` | No | — |
| `enabled` | `boolean` | No | — |
| `hasSecret` | `boolean` | No | — |
| `authentication` | `any` | No | — |
| `enabledConfigs` | `any[]` | No | — |
| `canManage` | `boolean` | No | — |

***

## Workplace

### get

`workplace.get`

Retrieve the workplace

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.workplace.get({});
```

**Input:** *empty object*

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | No | — |
| `billing_email` | `string` | No | — |
| `security_email` | `string` | No | — |

***

### update

`workplace.update`

Update the workplace's name, billing email, or security email

**Risk:** `write`

```ts theme={null}
await corsair.doppler.api.workplace.update({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | No | — |
| `billingEmail` | `string` | No | — |
| `securityEmail` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `id` | `string` | Yes | — |
| `name` | `string` | No | — |
| `billing_email` | `string` | No | — |
| `security_email` | `string` | No | — |

***

## Workplace Roles

### get

`workplaceRoles.get`

Retrieve a workplace role

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.workplaceRoles.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `role` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `name` | `string` | No | — |
| `permissions` | `string[]` | No | — |

***

### list

`workplaceRoles.list`

List workplace roles

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.workplaceRoles.list({});
```

**Input:** *empty object*

**Output:** `object[]`

<AccordionGroup>
  <Accordion title="Output full type">
    ```ts theme={null}
    {
      name?: string | null,
      permissions?: string[] | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***

### listPermissions

`workplaceRoles.listPermissions`

List permissions grantable to a workplace role

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.workplaceRoles.listPermissions({});
```

**Input:** *empty object*

**Output:** `string[]`

***

## Workplace Users

### get

`workplaceUsers.get`

Retrieve a workplace user by id

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.workplaceUsers.get({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `slug` | `string` | Yes | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `access` | `string` | No | — |
| `created_at` | `string` | No | — |
| `user` | `object` | No | — |

<AccordionGroup>
  <Accordion title="user full type">
    ```ts theme={null}
    {
      id?: string | null,
      email?: string | null,
      name?: string | null,
      username?: string | null
    }
    ```
  </Accordion>
</AccordionGroup>

***

### list

`workplaceUsers.list`

List users in the workplace

**Risk:** `read`

```ts theme={null}
await corsair.doppler.api.workplaceUsers.list({});
```

**Input**

| Name | Type | Required | Description |
| - | - | - | - |
| `page` | `number` | No | — |
| `email` | `string` | No | — |

**Output**

| Name | Type | Required | Description |
| - | - | - | - |
| `workplace_users` | `object[]` | Yes | — |
| `page` | `number` | No | — |

<AccordionGroup>
  <Accordion title="workplace_users full type">
    ```ts theme={null}
    {
      access?: string | null,
      created_at?: string | null,
      user?: {
        id?: string | null,
        email?: string | null,
        name?: string | null,
        username?: string | null
      } | null
    }[]
    ```
  </Accordion>
</AccordionGroup>

***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.