Get started
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.
Once the Admin API is enabled, follow the instructions in Managing admin keys
to create an admin key. You will use the generated key for authentication in each request to the API.
Note that managing admin keys themselves is currently available only in the self-admin area under the
“Admin Keys” tab.
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 through DeepL API. These functionalities are equivalent to
those available in the self-admin area under the “API Keys & Limits” tab.
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.
Example request: Create a developer key as an admin
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"
}'
{
"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
}
}
Example request: Create a developer key as an admin
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"
}'
{
"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
}
}
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"
}
Get all developer keys
GET /v2/admin/developer-keys
This method will return both active and deactivated keys.
Example request: Get all developer keys as an admin
curl -X GET 'https://api.deepl.com/v2/admin/developer-keys' \
--header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
--header 'Content-Type: application/json'
[
{
"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
}
}
]
Example request: Get all developer keys as an admin
curl -X GET 'https://api.deepl.com/v2/admin/developer-keys' \
--header 'Authorization: DeepL-Auth-Key [yourAdminKey]' \
--header 'Content-Type: application/json'
[
{
"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
}
}
]
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
Deactivate a developer key
PUT /v2/admin/developer-keys/deactivate
IMPORTANT: An API key will stop working immediately when deactivated. After a key is deactivated, it cannot be reactivated—deactivating a key is permanent!
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.
Example request: Deactivate a developer key as an admin
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"
}'
{
"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
}
}
Example request: Deactivate a developer key as an admin
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"
}'
{
"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
}
}
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"
}
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.
Example request: Rename a developer key as an admin
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"
}'
{
"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
}
}
Example request: Rename a developer key as an admin
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"
}'
{
"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
}
}
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"
}
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
Setting the limit to 0
means the API key will not be able to consume characters.
Setting the limit to null
disables the limit, effectively allowing unlimited usage.
Example request: Set usage limits for a developer key as an admin
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
}'
Example request: Prevent using a developer key as an admin
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
}'
Example request: Allow unlimited usage of a developer key as an admin
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
}'
{
"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
}
}
Example request: Set usage limits for a developer key as an admin
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
}'
Example request: Prevent using a developer key as an admin
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
}'
Example request: Allow unlimited usage of a developer key as an admin
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
}'
{
"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
}
}
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
}