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

# Créer un document

> Téléversez un nouveau document dans une base de connaissances Famulor via l'API. Ajoutez des PDF, du texte, des FAQ ou des données produit que les assistants vocaux IA peuvent consulter pendant les appels.

<Warning>
  **API Famulor 1.0 (héritée).** Cette page concerne uniquement Famulor 1.0 (`app.famulor.de`) et est conservée pour la compatibilité. Pour la plateforme actuelle, consultez la [référence API Famulor 2.0](/fr/api-reference/introduction).
</Warning>

Ce point de terminaison crée un nouveau document dans une base de connaissances. Les documents sont traités de manière asynchrone : le point de terminaison répond immédiatement, tandis que le traitement se poursuit en arrière-plan.

### Paramètres de chemin

<ParamField path="knowledgebaseId" type="integer" required>
  L'identifiant unique de la base de connaissances
</ParamField>

### Corps de la requête

<ParamField body="name" type="string" required>
  Le nom du document (255 caractères maximum)
</ParamField>

<ParamField body="description" type="string">
  Description facultative du document (255 caractères maximum)
</ParamField>

<ParamField body="type" type="string" required>
  Type de document : `website`, `pdf`, `txt` ou `docx`
</ParamField>

#### Documents de site web

<ParamField body="url" type="string">
  L'URL principale à explorer. Requis si `links` n'est pas fourni.
</ParamField>

<ParamField body="links" type="array">
  Tableau d'URL spécifiques à explorer. Requis si `url` n'est pas fourni.

  <Expandable title="Propriétés de links">
    <ParamField body="link" type="string" required>
      Une URL valide à inclure dans le document
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="relative_links_limit" type="integer" default="10">
  Nombre maximum de liens relatifs à suivre lors de l'exploration (1 à 50)
</ParamField>

#### Documents fichiers (PDF, TXT, DOCX)

<ParamField body="file" type="file" required>
  Le fichier à téléverser (20 Mo maximum). Utilisez l'encodage `multipart/form-data`.
</ParamField>

### Champs de réponse

<ResponseField name="message" type="string">
  Message de succès
</ResponseField>

<ResponseField name="data" type="object">
  L'objet document créé

  <Expandable title="Propriétés de data">
    <ResponseField name="id" type="integer">
      L'identifiant unique du document
    </ResponseField>

    <ResponseField name="name" type="string">
      Le nom du document
    </ResponseField>

    <ResponseField name="description" type="string">
      Description du document
    </ResponseField>

    <ResponseField name="type" type="string">
      Type de document
    </ResponseField>

    <ResponseField name="type_label" type="string">
      Libellé de type lisible par un humain
    </ResponseField>

    <ResponseField name="status" type="string">
      Statut de traitement (sera initialement `processing`)
    </ResponseField>

    <ResponseField name="status_label" type="string">
      Libellé de statut lisible par un humain
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Horodatage ISO 8601 de création
    </ResponseField>
  </Expandable>
</ResponseField>

### Types de documents

| Type      | Description                                            | Entrée                        |
| --------- | ------------------------------------------------------ | ----------------------------- |
| `website` | Explore des sites web et en extrait le contenu textuel | URL ou liste d'URL            |
| `pdf`     | Extrait le texte des fichiers PDF                      | Téléversement de fichier PDF  |
| `txt`     | Contenu texte brut                                     | Téléversement de fichier TXT  |
| `docx`    | Extrait le texte des documents Word                    | Téléversement de fichier DOCX |

<Note>
  Le traitement des documents est asynchrone. Appelez le point de terminaison [Récupérer un document](/fr/api-v1/knowledgebases/get-document) pour vérifier si le traitement est terminé.
</Note>

<ResponseExample>
  ```json 201 Website Document Created theme={null}
  {
    "message": "Document created successfully. Processing will begin shortly.",
    "data": {
      "id": 1,
      "name": "Company Website",
      "description": "Main website content",
      "type": "website",
      "type_label": "Website",
      "status": "processing",
      "status_label": "Processing",
      "created_at": "2025-01-08T10:30:00.000000Z"
    }
  }
  ```

  ```json 201 PDF Document Created theme={null}
  {
    "message": "Document created successfully. Processing will begin shortly.",
    "data": {
      "id": 2,
      "name": "Product Handbook",
      "description": "User manual for our product",
      "type": "pdf",
      "type_label": "PDF",
      "status": "processing",
      "status_label": "Processing",
      "created_at": "2025-01-08T10:35:00.000000Z"
    }
  }
  ```

  ```json 404 Knowledgebase Not Found theme={null}
  {
    "error": "Knowledgebase not found."
  }
  ```

  ```json 422 Validation Error theme={null}
  {
    "message": "A file is required for this document type.",
    "errors": {
      "file": [
        "A file is required for this document type."
      ]
    }
  }
  ```

  ```json 500 Processing Error theme={null}
  {
    "error": "Failed to create document. Please try again."
  }
  ```
</ResponseExample>
