> 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 le document

PATCH https://api.elevenlabs.io/v1/convai/knowledge-base/{documentation_id}
Content-Type: application/json

Met à jour le nom et/ou le contenu d’un document.

Reference: https://elevenlabs.io/docs/eleven-agents/api-reference/knowledge-base/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

- `documentation_id` (string, required) — L’ID d’un document de la base de connaissances. Il est renvoyé lors de l’ajout du document.

### Body (application/json)

This endpoint expects an object.

- `name` (string, optional) — Nom personnalisé et lisible du document.
- `content` (string, optional) — Contenu mis à jour du document. Pris en charge uniquement pour les documents texte, les documents URL dont la synchronisation automatique est désactivée et les documents fichiers qui ne sont pas synchronisés depuis une source externe.

## Response

### 200

Réponse réussie

- `DocumentsUpdateResponse`
  - `type`: `url`
    - `access_info` (ResourceAccessInfo, required)
    - `extracted_inner_html` (string, required)
    - `id` (string, required)
    - `metadata` (KnowledgeBaseDocumentMetadataResponseModel, required)
    - `name` (string, required)
    - `supported_usages` (list of enum, required)
      - Allowed values: `prompt`, `auto`
    - `url` (string, required)
    - `auto_sync_info` (AutoSyncInfo, optional)
    - `content_format` (enum, optional, default: html) — Représentation canonique du contenu stocké d'un document de base de connaissances. HTML est le format par défaut historique ; les documents créés avant l'existence de ce champ sont interprétés comme du HTML.
      - Allowed values: `html`, `markdown`
    - `folder_parent_id` (string, optional) — L’ID du dossier parent, ou null si le document se trouve à la racine.
    - `folder_path` (list of KnowledgeBaseFolderPathSegmentResponseModel, optional) — Les segments du chemin du dossier menant à cette entité, de la racine au dossier parent.
  - `type`: `file`
    - `access_info` (ResourceAccessInfo, required)
    - `extracted_inner_html` (string, required)
    - `filename` (string, required)
    - `id` (string, required)
    - `metadata` (KnowledgeBaseDocumentMetadataResponseModel, required)
    - `name` (string, required)
    - `supported_usages` (list of enum, required)
      - Allowed values: `prompt`, `auto`
    - `auto_sync_info` (AutoSyncInfo, optional)
    - `content_format` (enum, optional, default: html) — Représentation canonique du contenu stocké d'un document de base de connaissances. HTML est le format par défaut historique ; les documents créés avant l'existence de ce champ sont interprétés comme du HTML.
      - Allowed values: `html`, `markdown`
    - `external_sync_info` (ExternalFileSyncInfo, optional) — Enregistre le lien vers le fichier d’origine dans une source externe.
    - `folder_parent_id` (string, optional) — L’ID du dossier parent, ou null si le document se trouve à la racine.
    - `folder_path` (list of KnowledgeBaseFolderPathSegmentResponseModel, optional) — Les segments du chemin du dossier menant à cette entité, de la racine au dossier parent.
    - `is_frozen` (boolean, optional, default: false)
    - `refresh_status` (FileRefreshStatus, optional) — État de l’actualisation en cours ou de la dernière actualisation d’un fichier synchronisé depuis une source externe. Utilisé par les clients pour afficher la progression de la synchronisation et désactiver la resynchronisation lorsqu’une actualisation est en attente ou en cours de traitement.
  - `type`: `text`
    - `access_info` (ResourceAccessInfo, required)
    - `extracted_inner_html` (string, required)
    - `id` (string, required)
    - `metadata` (KnowledgeBaseDocumentMetadataResponseModel, required)
    - `name` (string, required)
    - `supported_usages` (list of enum, required)
      - Allowed values: `prompt`, `auto`
    - `content_format` (enum, optional, default: html) — Représentation canonique du contenu stocké d'un document de base de connaissances. HTML est le format par défaut historique ; les documents créés avant l'existence de ce champ sont interprétés comme du HTML.
      - Allowed values: `html`, `markdown`
    - `folder_parent_id` (string, optional) — L’ID du dossier parent, ou null si le document se trouve à la racine.
    - `folder_path` (list of KnowledgeBaseFolderPathSegmentResponseModel, optional) — Les segments du chemin du dossier menant à cette entité, de la racine au dossier parent.
  - `type`: `folder`
    - `access_info` (ResourceAccessInfo, required)
    - `children_count` (integer, required)
    - `document_count` (integer, required) — Nombre de documents qui ne sont pas des dossiers dans l’ensemble du sous-arbre de ce dossier, récursivement. Le comptage s’arrête au-delà de 1 000.
    - `id` (string, required)
    - `metadata` (KnowledgeBaseDocumentMetadataResponseModel, required)
    - `name` (string, required)
    - `supported_usages` (list of enum, required)
      - Allowed values: `prompt`, `auto`
    - `active_sync_job` (KbExternalSyncJob, optional) — Tâche de synchronisation externe la plus récente, en cours ou terminée, pour ce dossier, le cas échéant. Utilisée par les clients pour afficher la progression de la synchronisation.
    - `auto_sync_info` (AutoSyncInfo, optional)
    - `external_sync_info` (ExternalFolderSyncInfo, optional) — Métadonnées d’un dossier de base de connaissances qui reflète un dossier source externe.
    - `folder_parent_id` (string, optional) — L’ID du dossier parent, ou null si le document se trouve à la racine.
    - `folder_path` (list of KnowledgeBaseFolderPathSegmentResponseModel, optional) — Les segments du chemin du dossier menant à cette entité, de la racine au dossier parent.
    - `is_frozen` (boolean, optional, default: false)

## Errors

### 422 Documents Update Request Unprocessable Entity Error

Erreur de validation

- `detail` (list of ValidationError, optional)

## Types

### ResourceAccessInfo

- `is_creator` (boolean, required) — Indique si l’utilisateur effectuant la requête est le créateur de l’agent
- `creator_name` (string, required) — Nom du créateur de l’agent
- `creator_email` (string, required) — Email du créateur de l’agent
- `role` (enum, required) — Le rôle de l'utilisateur effectuant la requête
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `anonymous_access_level_override` (enum, optional) — Niveau d’accès des utilisateurs anonymes. Si la valeur est None, la ressource n’est pas partagée publiquement.
  - Allowed values: `admin`, `editor`, `commenter`, `viewer`
- `access_source` (enum, optional) — Motif pour lequel l’utilisateur demandeur a accès à cette ressource. 'creator' = l’appelant est le propriétaire. 'explicit' = l’appelant, ou l’un de ses groupes du Workspace, figure dans role_to_group_ids en plus du groupe everyone à l’échelle du Workspace. 'workspace_default' = le groupe everyone à l’échelle du Workspace figure dans role_to_group_ids, chaque membre non anonyme du Workspace, y compris les administrateurs, voit cette ressource. 'workspace_admin' = l’appelant est administrateur du Workspace et le siège administrateur est le *seul* moyen d’accès ; réservé aux documents que personne d’autre ne peut voir. Permet à l’interface d’indiquer pourquoi un administrateur bénéficiant d’un accès dérogatoire voit un document qui ne lui a pas été explicitement partagé.
  - Allowed values: `creator`, `explicit`, `workspace_admin`, `workspace_default`

### KnowledgeBaseDocumentMetadataResponseModel

- `created_at_unix_secs` (integer, required)
- `last_updated_at_unix_secs` (integer, required)
- `size_bytes` (integer, required)

### AutoSyncInfo

- `minimum_frequency_days` (integer, optional, default: 7) — Fréquence minimale, en jours, à laquelle le document est actualisé. L’intervalle réel peut être plus court, mais jamais plus long.
- `auto_remove` (boolean, optional, default: false) — Indique s'il faut supprimer le document si l'URL devient indisponible.
- `consec_failures` (integer, optional, default: 0) — Nombre d’échecs de synchronisation consécutifs
- `next_refresh_by` (integer, optional) — Horodatage Unix de la prochaine synchronisation planifiée, ou None dans le cas des dossiers
- `auto_discover` (boolean, optional, default: false, deprecated) — Obsolète. Ce champ n’a plus aucun effet et sera supprimé dans une version ultérieure.

### KnowledgeBaseFolderPathSegmentResponseModel

- `id` (string, required)
- `name` (string, optional)

### ExternalFileSyncInfo

Enregistre le lien vers le fichier d’origine dans une source externe.

- `type` ("google_drive", required) — Identifiant du fournisseur
- `source_entity_id` (string, required) — ID de l'entité dans le système externe
- `integration_connection_id` (string, required) — ID de l’instance de connexion d’intégration
- `source_parent_entity_id` (string, required) — ID du dossier dans le système externe depuis lequel ce fichier a été synchronisé
- `source_mime_type` (string, required) — Type MIME d'origine dans le système externe
- `source_modified_time` (datetime, required) — Date et heure de dernière modification dans le système externe
- `root_folder_id` (string, optional) — ID du dossier de base de connaissances de la racine de synchronisation, utilisé pour interroger toutes les entités d'une arborescence de synchronisation

### FileRefreshStatus

État de l’actualisation en cours ou de la dernière actualisation d’un fichier de base de connaissances synchronisé depuis une source externe.

- `status` (enum, optional, default: queued)
  - Allowed values: `queued`, `processing`, `succeeded`, `failed`, `skipped`, `cancelled`
- `enqueued_at` (integer, optional)
- `started_at` (integer, optional)
- `completed_at` (integer, optional)
- `last_synced_at` (integer, optional)
- `error_message` (string, optional)

### KbExternalSyncJob

- `type` ("google_drive", required)
- `folder_id` (string, required)
- `integration_connection_id` (string, required)
- `triggered_by` (enum, required)
  - Allowed values: `on_demand`, `on_connect`, `auto`
- `updated_at` (integer, required)
- `id` (string, required)
- `created_at` (integer, required)
- `status` (enum, optional, default: queued)
  - Allowed values: `queued`, `processing`, `succeeded`, `failed`, `skipped`, `cancelled`
- `sync_type` (enum, optional)
  - Allowed values: `full`, `incremental`
- `items_identified` (integer, optional, default: 0)
- `items_processed` (integer, optional, default: 0)
- `error_message` (string, optional)
- `started_at` (integer, optional)
- `completed_at` (integer, optional)

### ExternalFolderSyncInfo

Métadonnées d’un dossier de base de connaissances qui reflète un dossier source externe.

- `type` ("google_drive", required) — Identifiant du fournisseur
- `source_entity_id` (string, required) — ID de l'entité dans le système externe
- `integration_connection_id` (string, required) — ID de l’instance de connexion d’intégration
- `root_folder_id` (string, optional) — ID du dossier de base de connaissances de la racine de synchronisation. None indique que ce dossier est la racine.
- `sync_cursor` (string, optional) — Curseur opaque pour la synchronisation incrémentielle, interprété par le fournisseur
- `last_sync_at` (integer, optional) — Horodatage Unix de la dernière synchronisation terminée

### ValidationError

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

### ValidationErrorLocItem

- string
- integer

## Examples

**Request**

```json
{}
```

**Response**

```json
{
  "type": "url",
  "access_info": {
    "is_creator": true,
    "creator_name": "John Doe",
    "creator_email": "john.doe@example.com",
    "role": "admin",
    "anonymous_access_level_override": "admin",
    "access_source": "creator"
  },
  "extracted_inner_html": "extracted_inner_html",
  "id": "id",
  "metadata": {
    "created_at_unix_secs": 1,
    "last_updated_at_unix_secs": 1,
    "size_bytes": 1
  },
  "name": "name",
  "supported_usages": [
    "prompt"
  ],
  "url": "url",
  "auto_sync_info": {
    "minimum_frequency_days": 1,
    "auto_remove": true,
    "consec_failures": 1,
    "next_refresh_by": 1
  },
  "content_format": "html",
  "folder_parent_id": "folder_parent_id",
  "folder_path": [
    {
      "id": "id",
      "name": "name"
    }
  ]
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM"

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/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM';
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/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM"

	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/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM")

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/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM")
  .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/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM', [
  'body' => '{}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM");
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/convai/knowledge-base/21m00Tcm4TlvDq8ikWAM")! 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()
```