> ## 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.

# Dokument erstellen

> Fügt ein neues Dokument zu einer Wissensdatenbank hinzu

Dieser Endpunkt erstellt ein neues Dokument in einer Wissensdatenbank. Dokumente werden asynchron verarbeitet - der Endpunkt gibt sofort zurück, während die Verarbeitung im Hintergrund fortgesetzt wird.

### Pfad-Parameter

<ParamField path="knowledgebaseId" type="integer" required>
  Die eindeutige Kennung der Wissensdatenbank
</ParamField>

### Request Body

<ParamField body="name" type="string" required>
  Der Name des Dokuments (max. 255 Zeichen)
</ParamField>

<ParamField body="description" type="string">
  Optionale Beschreibung des Dokuments (max. 255 Zeichen)
</ParamField>

<ParamField body="type" type="string" required>
  Dokumenttyp: `website`, `pdf`, `txt` oder `docx`
</ParamField>

#### Website-Dokumente

<ParamField body="url" type="string">
  Die Haupt-URL zum Scrapen. Erforderlich, wenn `links` nicht bereitgestellt wird.
</ParamField>

<ParamField body="links" type="array">
  Array von spezifischen URLs zum Scrapen. Erforderlich, wenn `url` nicht bereitgestellt wird.

  <Expandable title="Links-Eigenschaften">
    <ParamField body="link" type="string" required>
      Eine gültige URL, die in das Dokument aufgenommen werden soll
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="relative_links_limit" type="integer" default="10">
  Maximale Anzahl von relativen Links, denen beim Scrapen gefolgt werden soll (1-50)
</ParamField>

#### Datei-Dokumente (PDF, TXT, DOCX)

<ParamField body="file" type="file" required>
  Die hochzuladende Datei (max. 20MB). Verwende `multipart/form-data` Kodierung.
</ParamField>

### Antwort-Felder

<ResponseField name="message" type="string">
  Erfolgsmeldung
</ResponseField>

<ResponseField name="data" type="object">
  Das erstellte Dokument-Objekt

  <Expandable title="Daten-Eigenschaften">
    <ResponseField name="id" type="integer">
      Die eindeutige Kennung des Dokuments
    </ResponseField>

    <ResponseField name="name" type="string">
      Der Name des Dokuments
    </ResponseField>

    <ResponseField name="description" type="string">
      Beschreibung des Dokuments
    </ResponseField>

    <ResponseField name="type" type="string">
      Dokumenttyp
    </ResponseField>

    <ResponseField name="type_label" type="string">
      Menschenlesbares Typ-Label
    </ResponseField>

    <ResponseField name="status" type="string">
      Verarbeitungsstatus (wird zunächst `processing` sein)
    </ResponseField>

    <ResponseField name="status_label" type="string">
      Menschenlesbares Status-Label
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601 Zeitstempel der Erstellung
    </ResponseField>
  </Expandable>
</ResponseField>

### Dokumenttypen

| Typ       | Beschreibung                                 | Eingabe                 |
| --------- | -------------------------------------------- | ----------------------- |
| `website` | Scraped Webseiten und extrahiert Textinhalte | URL oder Liste von URLs |
| `pdf`     | Extrahiert Text aus PDF-Dateien              | PDF-Datei-Upload        |
| `txt`     | Klartext-Inhalt                              | TXT-Datei-Upload        |
| `docx`    | Extrahiert Text aus Word-Dokumenten          | DOCX-Datei-Upload       |

<Note>
  Die Dokumentverarbeitung erfolgt asynchron. Rufe den [Dokument abrufen](/de/api-reference/knowledgebases/get-document) Endpunkt ab, um zu prüfen, wann die Verarbeitung abgeschlossen ist.
</Note>

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

  ```json 201 PDF-Dokument erstellt theme={null}
  {
    "message": "Document created successfully. Processing will begin shortly.",
    "data": {
      "id": 2,
      "name": "Produkthandbuch",
      "description": "Benutzerhandbuch für unser Produkt",
      "type": "pdf",
      "type_label": "PDF",
      "status": "processing",
      "status_label": "Wird verarbeitet",
      "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>
