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

# Admin API

> Explore DeepL API offering designed for admins

### Get started

<Info>
  The Admin API is available only to a limited set of Pro API subscribers. To enable access for your account, please contact your DeepL customer success manager or our support team.
</Info>

Once the Admin API is enabled, follow the instructions in [Managing admin keys](/api-reference/admin-api/managing-admin-keys)
to create an admin key. You will use the generated key for authentication in each request to the API.

<Info>
  Note that managing admin keys themselves is currently available only in the self-admin area under the
  [“Admin Keys” tab](https://www.deepl.com/your-account/admin).
</Info>

With an admin key in hand, you are now ready to manage developer keys within your organization through the public API.

### Managing developer keys

The admin API keys allow admins to [manage developer API keys](/docs/getting-started/managing-api-keys) through DeepL API. These functionalities are equivalent to
those available in the self-admin area under the ["API Keys & Limits" tab](https://www.deepl.com/your-account/keys).

The Admin API currently consists of a single endpoint, `/v2/admin/developer-keys`, available under our API pro endpoint `https://api.deepl.com`.

#### Create a developer key

`POST /v2/admin/developer-keys`

You can optionally give an API key a name of your choosing during the creation process. If you do not name the key, the
name “DeepL API Key” will be given to the key automatically.

Up to 25 simultaneously active API keys are allowed.

<Tabs>
  <Tab title="cURL">
    ```sh Example request: Create a developer key as an admin theme={null}
    curl -X POST 'https://api.deepl.com/v2/admin/developer-keys' \
    --header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
    --header 'Content-Type: application/json' \
    --data '{
      "label": "admin-key"
    }'
    ```

    ```json Example response theme={null}
    {
        "key_id": "ca7d5694-96eb-4263-a9a4-7f7e4211529e:20c2abcf-4c3c-4cd6-8ae8-8bd2a7d4da38",
        "label": "developer key prod",
        "creation_time": "2025-07-08T08:15:29.362Z",
        "deactivated_time": "2025-07-09T08:15:29.362Z",
        "is_deactivated": true,
        "usage_limits": {
            "characters": 5000
        }
    }
    ```
  </Tab>

  <Tab title="HTTP Request">
    ```http theme={null}
    POST /v2/admin/developer-keys HTTP/2
    Host: api.deepl.com
    Authorization: DeepL-Auth-Key [yourAdminKey]
    User-Agent: YourApp/1.2.3
    Content-Length: 123
    Content-Type: application/json

    {
        "label": "admin-key"
    }
    ```
  </Tab>
</Tabs>

#### Get all developer keys

`GET /v2/admin/developer-keys`

This method will return both active and deactivated keys.

<Tabs>
  <Tab title="cURL">
    ```sh Example request: Get all developer keys as an admin theme={null}
    curl -X GET 'https://api.deepl.com/v2/admin/developer-keys' \
    --header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
    --header 'Content-Type: application/json'
    ```

    ```json Example response theme={null}
    [
        {
            "key_id": "ca7d5694-96eb-4263-a9a4-7f7e4211529e:20c2abcf-4c3c-4cd6-8ae8-8bd2a7d4da38",
            "label": "developer key prod",
            "creation_time": "2025-07-08T08:15:29.362Z",
            "deactivated_time": "2025-07-09T08:15:29.362Z",
            "is_deactivated": true,
            "usage_limits": {
                "characters": 5000
            }
        }
    ]
    ```
  </Tab>

  <Tab title="HTTP Request">
    ```http theme={null}
    GET /v2/admin/developer-keys HTTP/2
    Host: api.deepl.com
    Authorization: DeepL-Auth-Key [yourAdminKey]
    User-Agent: YourApp/1.2.3
    Content-Length: 123
    Content-Type: application/json
    ```
  </Tab>
</Tabs>

#### Deactivate a developer key

`PUT /v2/admin/developer-keys/deactivate`

<Warning>
  **IMPORTANT:** An API key will stop working immediately when deactivated. After a key is deactivated, it cannot be reactivated—deactivating a key is permanent!
</Warning>

To deactivate a key, pass its ID in the request, as shown below. The key ID is composed of two GUIDs separated by the `:` symbol.

<Tabs>
  <Tab title="cURL">
    ```sh Example request: Deactivate a developer key as an admin theme={null}
    curl -X PUT 'https://api.deepl.com/v2/admin/developer-keys/deactivate' \
    --header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
    --header 'Content-Type: application/json' \
    --data '{
      "key_id": "GUID:GUID"
    }'
    ```

    ```json Example response theme={null}
    {
        "key_id": "ca7d5694-96eb-4263-a9a4-7f7e4211529e:20c2abcf-4c3c-4cd6-8ae8-8bd2a7d4da38",
        "label": "developer key prod",
        "creation_time": "2025-07-08T08:15:29.362Z",
        "deactivated_time": "2025-07-09T08:15:29.362Z",
        "is_deactivated": true,
        "usage_limits": {
            "characters": 5000
        }
    }
    ```
  </Tab>

  <Tab title="HTTP Request">
    ```http theme={null}
    PUT /v2/admin/developer-keys/deactivate HTTP/2
    Host: api.deepl.com
    Authorization: DeepL-Auth-Key [yourAdminKey]
    User-Agent: YourApp/1.2.3
    Content-Length: 123
    Content-Type: application/json

    {
        "key_id": "GUID:GUID"
    }
    ```
  </Tab>
</Tabs>

#### Rename a developer key

`PUT /v2/admin/developer-keys/label`

To rename a key, pass its ID in the request and the new label, as shown below.
The key ID is composed of two GUIDs separated by the `:` symbol.

<Tabs>
  <Tab title="cURL">
    ```sh Example request: Rename a developer key as an admin theme={null}
    curl -X PUT 'https://api.deepl.com/v2/admin/developer-keys/label' \
    --header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
    --header 'Content-Type: application/json' \
    --data '{
      "key_id": "GUID:GUID",
      "label": "admin-key-prod"
    }'
    ```

    ```json Example response theme={null}
    {
        "key_id": "ca7d5694-96eb-4263-a9a4-7f7e4211529e:20c2abcf-4c3c-4cd6-8ae8-8bd2a7d4da38",
        "label": "developer key prod",
        "creation_time": "2025-07-08T08:15:29.362Z",
        "deactivated_time": "2025-07-09T08:15:29.362Z",
        "is_deactivated": true,
        "usage_limits": {
            "characters": 5000
        }
    }
    ```
  </Tab>

  <Tab title="HTTP Request">
    ```http theme={null}
    PUT /v2/admin/developer-keys/label HTTP/2
    Host: api.deepl.com
    Authorization: DeepL-Auth-Key [yourAdminKey]
    User-Agent: YourApp/1.2.3
    Content-Length: 123
    Content-Type: application/json

    {
        "key_id": "GUID:GUID",
        "label": "admin-key-prod"
    }
    ```
  </Tab>
</Tabs>

#### Set usage limits for a developer key

`PUT /v2/admin/developer-keys/limits`

Key-level limits restrict the number of total characters (across text translation, document translation, and text
improvement) that can be consumed by an API key in a one-month usage period.

For example, if you set a key-level usage limit of 1,000,000 characters, the API key will not consume more than 1,000,000 characters per usage period.

The character count will "reset" at the start of the next usage period, at which point the key will again be able to consume characters.

As with subscription-level cost control:

* Developers will receive notification emails when 80% and 100% of a key-level limit has been reached
* The API will respond with `456 Quota exceeded` errors when 100% of a key-level limit has been reached

<Info>
  Setting the limit to `0` means the API key will not be able to consume characters.
</Info>

<Info>
  Setting the limit to `null` disables the limit, effectively allowing unlimited usage.
</Info>

<Tabs>
  <Tab title="cURL">
    ```sh Example request: Set usage limits for a developer key as an admin theme={null}
    curl -X PUT 'https://api.deepl.com/v2/admin/developer-keys/limits' \
    --header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
    --header 'Content-Type: application/json' \
    --data '{
      "key_id": "GUID:GUID",
      "characters": 1000
    }'
    ```

    ```sh Example request: Prevent using a developer key as an admin theme={null}
    curl -X PUT 'https://api.deepl.com/v2/admin/developer-keys/limits' \
    --header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
    --header 'Content-Type: application/json' \
    --data '{
      "key_id": "GUID:GUID",
      "characters": 0
    }'
    ```

    ```sh Example request: Allow unlimited usage of a developer key as an admin theme={null}
    curl -X PUT 'https://api.deepl.com/v2/admin/developer-keys/limits' \
    --header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
    --header 'Content-Type: application/json' \
    --data '{
      "key_id": "GUID:GUID",
      "characters": null
    }'
    ```

    ```json Example response theme={null}
    {
        "key_id": "ca7d5694-96eb-4263-a9a4-7f7e4211529e:20c2abcf-4c3c-4cd6-8ae8-8bd2a7d4da38",
        "label": "developer key prod",
        "creation_time": "2025-07-08T08:15:29.362Z",
        "deactivated_time": "2025-07-09T08:15:29.362Z",
        "is_deactivated": true,
        "usage_limits": {
            "characters": 5000
        }
    }
    ```
  </Tab>

  <Tab title="HTTP Request">
    ```http theme={null}
    PUT /v2/admin/developer-keys/limits HTTP/2
    Host: api.deepl.com
    Authorization: DeepL-Auth-Key [yourAdminKey]
    User-Agent: YourApp/1.2.3
    Content-Length: 123
    Content-Type: application/json

    {
        "key_id": "GUID:GUID",
        "characters": 1000
    }
    ```
  </Tab>
</Tabs>
