> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Mettre à jour la clé API

PATCH https://api.elevenlabs.io/v1/service-accounts/{service_account_user_id}/api-keys/{api_key_id}
Content-Type: application/json

Met à jour une clé API existante pour un compte de service

Reference: https://elevenlabs.io/docs/api-reference/service-accounts/api-keys/update

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Path parameters

- `service_account_user_id` (string, required)
- `api_key_id` (string, required)

### Body (application/json)

This endpoint expects a Body_edit_service_account_api_key_v1_service_accounts__service_account_user_id__api_keys__api_key_id__patch.

- `is_enabled` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchIsEnabled, optional, default: no_update) — Indique s'il faut activer ou désactiver la clé API.
- `name` (string, optional, nullable) — Le nom de la clé API XI à utiliser, uniquement à des fins d’identification.
- `permissions` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchPermissions, optional, default: no_update) — Les autorisations de l’API XI.
- `character_limit` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchCharacterLimit, optional, nullable, default: no_update) — Limite de caractères de la clé API XI. Si elle est fournie, l’utilisation de cette clé API sera limitée à n caractères par mois, où n correspond à la valeur choisie. Les requêtes entraînant des frais échoueront une fois cette limite mensuelle atteinte.
- `allowed_ips` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchAllowedIps, optional, default: no_update) — Liste des adresses IP ou plages CIDR autorisées à utiliser cette clé API. Chaque entrée peut être une plage CIDR, par exemple « 10.0.0.0/24 », ou une adresse IP seule, normalisée en /32 ou /128. Lors de la création, omettez ce champ ou transmettez null pour autoriser toutes les IP. Lors de la mise à jour, omettez-le pour conserver la liste d'autorisation inchangée ou transmettez "clear" pour la supprimer.
- `third_party_disable_allowed` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchThirdPartyDisableAllowed, optional, default: no_update) — Indique si le détenteur de cette clé peut la désactiver via le point de terminaison de désactivation autonome. Lors de la création, omettez cette valeur ou transmettez null pour utiliser la valeur par défaut du Workspace, activée pour les forfaits non Enterprise et désactivée pour les forfaits Enterprise. Lors de la mise à jour, omettez-la pour la laisser inchangée ou transmettez "clear" pour la réinitialiser à la valeur par défaut du Workspace. Cette option n’est prise en compte que pour les Workspaces où l’accès à la désactivation autonome est activé.
- `tts_concurrency_limit` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchTtsConcurrencyLimit, optional, nullable, default: no_update) — Nombre maximal de requêtes simultanées de synthèse vocale et de conversion voix à voix pour cette clé API. Disponible uniquement pour les clients Enterprise.
- `dubbing_concurrency_limit` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchDubbingConcurrencyLimit, optional, nullable, default: no_update) — Nombre maximal de requêtes de doublage simultanées pour cette clé API. Disponible uniquement pour les clients Enterprise.
- `music_concurrency_limit` (BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchMusicConcurrencyLimit, optional, nullable, default: no_update) — Nombre maximal de requêtes de génération musicale simultanées pour cette clé API. Disponible uniquement pour les clients Enterprise.

## Response

### 200

Réponse réussie

- `any`

## Errors

### 422 Unprocessable Entity Error

Erreur de validation

- `detail` (list of ValidationError, optional)

## Types

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchIsEnabled

Indique s'il faut activer ou désactiver la clé API.

- boolean
- "no_update"

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchPermissions

Les autorisations de l’API XI.

- list of enum
  - Allowed values: `text_to_speech`, `speech_to_speech`, `speech_to_text`, `models_read`, `models_write`, `voices_read`, `voices_write`, `voice_collections_read`, `voice_collections_write`, `speech_history_read`, `speech_history_write`, `sound_generation`, `audio_isolation`, `voice_generation`, `dubbing_read`, `dubbing_write`, `pronunciation_dictionaries_read`, `pronunciation_dictionaries_write`, `user_read`, `user_write`, `projects_read`, `projects_write`, `audio_native_read`, `audio_native_write`, `workspace_read`, `workspace_write`, `forced_alignment`, `convai_read`, `convai_write`, `music_generation`, `image_video_generation`, `flows`, `templates`, `add_voice_from_voice_library`, `create_instant_voice_clone`, `create_professional_voice_clone`, `publish_voice_to_voice_library`, `share_voice_externally`, `create_user_api_key`, `workspace_analytics_full_read`, `webhooks_write`, `service_account_write`, `group_members_manage`, `workspace_members_read`, `workspace_members_invite`, `workspace_members_remove`, `terms_of_service_accept`, `audit_log_read`, `conversation_privacy_manage`, `copy_resources_cross_workspace`, `synthid_detector`
- enum
  - Allowed values: `all`, `no_update`

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchCharacterLimit

Limite de caractères de la clé API XI. Si elle est fournie, l’utilisation de cette clé API sera limitée à n caractères par mois, où n correspond à la valeur choisie. Les requêtes entraînant des frais échoueront une fois cette limite mensuelle atteinte.

- integer
- enum
  - Allowed values: `clear`, `no_update`

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchAllowedIps

Liste des adresses IP ou plages CIDR autorisées à utiliser cette clé API. Chaque entrée peut être une plage CIDR, par exemple « 10.0.0.0/24 », ou une adresse IP seule, normalisée en /32 ou /128. Lors de la création, omettez ce champ ou transmettez null pour autoriser toutes les IP. Lors de la mise à jour, omettez-le pour conserver la liste d'autorisation inchangée ou transmettez "clear" pour la supprimer.

- list of string
- enum
  - Allowed values: `clear`, `no_update`

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchThirdPartyDisableAllowed

Indique si le détenteur de cette clé peut la désactiver via le point de terminaison de désactivation autonome. Lors de la création, omettez cette valeur ou transmettez null pour utiliser la valeur par défaut du Workspace, activée pour les forfaits non Enterprise et désactivée pour les forfaits Enterprise. Lors de la mise à jour, omettez-la pour la laisser inchangée ou transmettez "clear" pour la réinitialiser à la valeur par défaut du Workspace. Cette option n’est prise en compte que pour les Workspaces où l’accès à la désactivation autonome est activé.

- boolean
- enum
  - Allowed values: `clear`, `no_update`

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchTtsConcurrencyLimit

Nombre maximal de requêtes simultanées de synthèse vocale et de conversion voix à voix pour cette clé API. Disponible uniquement pour les clients Enterprise.

- integer
- enum
  - Allowed values: `clear`, `no_update`

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchDubbingConcurrencyLimit

Nombre maximal de requêtes de doublage simultanées pour cette clé API. Disponible uniquement pour les clients Enterprise.

- integer
- enum
  - Allowed values: `clear`, `no_update`

### BodyEditServiceAccountApiKeyV1ServiceAccountsServiceAccountUserIdApiKeysApiKeyIdPatchMusicConcurrencyLimit

Nombre maximal de requêtes de génération musicale simultanées pour cette clé API. Disponible uniquement pour les clients Enterprise.

- integer
- enum
  - Allowed values: `clear`, `no_update`

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### ValidationErrorLocItems

- string
- integer

## Examples

**Request**

```json
{}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id"

payload = {}
headers = {"Content-Type": "application/json"}

response = requests.patch(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id';
const options = {method: 'PATCH', headers: {'Content-Type': 'application/json'}, body: '{}'};

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

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id"

	payload := strings.NewReader("{}")

	req, _ := http.NewRequest("PATCH", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.patch("https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id")
  .header("Content-Type", "application/json")
  .body("{}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('PATCH', 'https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id', [
  'body' => '{}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id");
var request = new RestRequest(Method.PATCH);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/service-accounts/service_account_user_id/api-keys/api_key_id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```