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

# Zugriff auf Wissensdatenbanken teilen

> Gewähre, ändere oder entziehe Zugriff auf eine Wissensdatenbank für Personen und Workspace-API-Schlüssel

Gewährt, ändert oder entzieht Zugriff auf eine bestehende Wissensdatenbank. Ziele sind Personen und Workspace-API-Schlüssel. Gruppen bleiben im [In-App-Teilen](/de/developer/knowledge-folder-api/sharing).

## Bevor du startest

* **API-Key-Scope**: Erfordert einen API-Schlüssel mit dem `KNOWLEDGE_FOLDER_API` Scope. Der API-Schlüssel selbst braucht die Rolle Bearbeiter auf der Wissensdatenbank. Siehe [Wissensdatenbanken mit der API teilen](/de/developer/knowledge-folder-api/sharing) für die Einrichtung.
* **Wissensdatenbanken**: Die Knowledge Folder API verwaltet Ressourcen, die in der Library als Wissensdatenbanken erscheinen.

## Basis-URL

```
https://api.langdock.com
```

<Warning>
  **Dedicated Deployments**

  Ersetze `api.langdock.com` durch `<your-deployment-url>/api/public` in allen Anfragen.
</Warning>

## Rollen

| API-Wert | Label in Dateien | Zugriff                                                          |
| -------- | ---------------- | ---------------------------------------------------------------- |
| `USER`   | Betrachter       | Suchen und Dateien abrufen                                       |
| `EDITOR` | Bearbeiter       | Hochladen, aktualisieren, löschen, Zugriff teilen und umbenennen |

Ein Schlüssel nur mit Betrachter-Zugriff, auch über die API-Suche der Wissensdatenbank, kann diese Endpoints nicht aufrufen.

Ein Bearbeiter-Workspace-Schlüssel kann andere qualifizierte Workspace-Schlüssel freigeben, auch wenn der Schlüsselbesitzer kein Workspace-Admin ist. Der Teilen-Dialog in der App listet API-Schlüssel weiterhin nur für Workspace-Admins.

## Zugriff gewähren

`POST /knowledge/{folderId}/access`

### Pfadparameter

| Parameter  | Typ    | Pflicht | Beschreibung                |
| ---------- | ------ | ------- | --------------------------- |
| `folderId` | string | Ja      | Die ID der Wissensdatenbank |

### Request Body

| Feld        | Typ       | Pflicht | Beschreibung                                                            |
| ----------- | --------- | ------- | ----------------------------------------------------------------------- |
| `targetIds` | string\[] | Ja      | User-IDs und Workspace-API-Schlüssel-IDs. Minimum: `1`. Maximum: `100`. |
| `role`      | string    | Ja      | `USER` oder `EDITOR`                                                    |

Alle IDs müssen zu einem menschlichen Workspace-Mitglied oder einem qualifizierten Workspace-API-Schlüssel gehören. Gruppen-IDs werden nicht akzeptiert. Persönliche API-Schlüssel sind nicht berechtigt. Fehlt eine ID oder ist sie nicht berechtigt, schlägt die Anfrage fehl und es wird nichts geschrieben.

### Gewähren mit cURL

```bash theme={null}
curl -X POST "https://api.langdock.com/knowledge/{folderId}/access" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "targetIds": [
      "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "550e8400-e29b-41d4-a716-446655440000"
    ],
    "role": "EDITOR"
  }'
```

### Gewähren mit JavaScript

```javascript theme={null}
const axios = require("axios");

async function grantAccess(folderId, targetIds, role) {
  const response = await axios.post(
    `https://api.langdock.com/knowledge/${folderId}/access`,
    { targetIds, role },
    {
      headers: {
        Authorization: "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
      },
    }
  );

  return response.data;
}

const result = await grantAccess(
  "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  ["7c9e6679-7425-40de-944b-e07fc1f90ae7"],
  "EDITOR"
);
console.log(result.result.granted);
```

### Erfolgreiche Antwort (200 OK)

```json theme={null}
{
  "status": "success",
  "result": {
    "granted": [
      {
        "type": "USER",
        "targetId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "role": "EDITOR"
      },
      {
        "type": "API_KEY",
        "targetId": "550e8400-e29b-41d4-a716-446655440000",
        "role": "EDITOR"
      }
    ]
  }
}
```

## Rolle ändern

`PATCH /knowledge/{folderId}/access`

| Feld       | Typ    | Pflicht | Beschreibung                                |
| ---------- | ------ | ------- | ------------------------------------------- |
| `type`     | string | Ja      | `USER` oder `API_KEY`                       |
| `targetId` | string | Ja      | ID der Person oder des Workspace-Schlüssels |
| `role`     | string | Ja      | `USER` oder `EDITOR`                        |

Du kannst den Zugriff des Besitzers nicht ändern. Übertrage die Besitzerschaft zuerst in Dateien. Fehlt noch eine Freigabe, legt diese Anfrage sie an.

```bash theme={null}
curl -X PATCH "https://api.langdock.com/knowledge/{folderId}/access" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "API_KEY",
    "targetId": "550e8400-e29b-41d4-a716-446655440000",
    "role": "USER"
  }'
```

```json theme={null}
{
  "status": "success"
}
```

## Zugriff entziehen

`DELETE /knowledge/{folderId}/access`

| Feld       | Typ    | Pflicht | Beschreibung                                |
| ---------- | ------ | ------- | ------------------------------------------- |
| `type`     | string | Ja      | `USER` oder `API_KEY`                       |
| `targetId` | string | Ja      | ID der Person oder des Workspace-Schlüssels |

Du kannst den Zugriff des Besitzers nicht entziehen.

```bash theme={null}
curl -X DELETE "https://api.langdock.com/knowledge/{folderId}/access" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "API_KEY",
    "targetId": "550e8400-e29b-41d4-a716-446655440000"
  }'
```

```json theme={null}
{
  "status": "success"
}
```

## Fehlerbehandlung

| Status | Bedeutung                                                                                              |
| ------ | ------------------------------------------------------------------------------------------------------ |
| `400`  | Ungültiger Body, unzulässiges Ziel oder Änderung am Besitzer                                           |
| `401`  | Ungültiger oder fehlender API-Schlüssel                                                                |
| `403`  | Fehlender `KNOWLEDGE_FOLDER_API` Scope, oder der Schlüssel ist kein Bearbeiter dieser Wissensdatenbank |
| `404`  | Wissensdatenbank oder Zugriffs-Ziel nicht gefunden                                                     |
| `429`  | Rate Limit überschritten                                                                               |
| `500`  | Unerwarteter Serverfehler                                                                              |

<Info>
  Langdock blockiert bewusst Browser-basierte Anfragen, um deinen API-Schlüssel zu schützen und die Sicherheit deiner Anwendungen zu gewährleisten. Weitere Informationen findest du in unserem Guide zu [Best Practices für API-Schlüssel](/de/admin/ai-adoption-and-rollout/best-practices/api-key-best-practices).
</Info>


## OpenAPI

````yaml post /knowledge/{folderId}/access
openapi: 3.0.0
info:
  title: Langdock API
  version: 3.0.0
servers:
  - url: https://api.langdock.com
    description: Production
security:
  - bearerAuth: []
paths:
  /knowledge/{folderId}/access:
    post:
      summary: Grant Knowledge base access to people or workspace API keys
      parameters:
        - name: folderId
          in: path
          required: true
          description: The ID of the knowledge folder
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - targetIds
                - role
              properties:
                targetIds:
                  type: array
                  items:
                    type: string
                    format: uuid
                  minItems: 1
                  maxItems: 100
                role:
                  type: string
                  enum:
                    - USER
                    - EDITOR
      responses:
        '200':
          description: Access granted successfully
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key as Bearer token. Format "Bearer YOUR_API_KEY"

````