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

# Mid-Call-Tool erstellen

> Neues Mid-Call-Tool erstellen

Dieser Endpunkt ermöglicht es Ihnen, ein neues Mid-Call-Tool zu erstellen, das Ihre KI-Assistenten verwenden können, um während Anrufen mit externen APIs zu interagieren.

### Anfragekörper-Parameter

<ParamField body="name" type="string" required>
  Tool-Name - darf nur Kleinbuchstaben und Unterstriche enthalten und muss mit einem Buchstaben beginnen (z.B. `get_weather`, `book_appointment`)
</ParamField>

<ParamField body="description" type="string" required>
  Detaillierte Erklärung, wann und wie die KI dieses Tool verwenden soll (max. 255 Zeichen)
</ParamField>

<ParamField body="endpoint" type="string" required>
  Gültige URL des aufzurufenden API-Endpunkts
</ParamField>

<ParamField body="method" type="string" required>
  HTTP-Methode: `GET`, `POST`, `PUT`, `PATCH` oder `DELETE`
</ParamField>

<ParamField body="timeout" type="integer" optional>
  Anfrage-Timeout in Sekunden (1-30, Standard: 10)
</ParamField>

<ParamField body="headers" type="array" optional>
  Mit der Anfrage zu sendende HTTP-Header

  <Expandable title="headers-Eigenschaften">
    <ParamField body="name" type="string" required>
      Header-Name
    </ParamField>

    <ParamField body="value" type="string" required>
      Header-Wert
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="schema" type="array" optional>
  Parameter, die die KI aus der Konversation extrahiert und an den Endpunkt sendet

  <Expandable title="schema-Eigenschaften">
    <ParamField body="name" type="string" required>
      Parameter-Name (2-32 Zeichen, muss mit Buchstaben beginnen, kann Buchstaben und Unterstriche enthalten)
    </ParamField>

    <ParamField body="type" type="string" required>
      Parameter-Typ: `string`, `number` oder `boolean`
    </ParamField>

    <ParamField body="description" type="string" required>
      Beschreibung, die der KI hilft zu verstehen, wie dieser Parameter extrahiert werden soll (3-255 Zeichen)
    </ParamField>
  </Expandable>
</ParamField>

### Antwortfelder

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

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

  <Expandable title="data-Eigenschaften">
    <ResponseField name="id" type="integer">
      Eindeutiger Bezeichner des Tools
    </ResponseField>

    <ResponseField name="name" type="string">
      Name des Tools
    </ResponseField>

    <ResponseField name="description" type="string">
      Tool-Beschreibung
    </ResponseField>

    <ResponseField name="endpoint" type="string">
      API-Endpunkt-URL
    </ResponseField>

    <ResponseField name="method" type="string">
      HTTP-Methode
    </ResponseField>

    <ResponseField name="timeout" type="integer">
      Anfrage-Timeout in Sekunden
    </ResponseField>

    <ResponseField name="headers" type="array">
      HTTP-Header
    </ResponseField>

    <ResponseField name="schema" type="array">
      Parameter-Schema
    </ResponseField>

    <ResponseField name="created_at" type="string">
      ISO 8601-Zeitstempel
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      ISO 8601-Zeitstempel
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 201 Created theme={null}
  {
    "message": "Tool erfolgreich erstellt",
    "data": {
      "id": 1,
      "name": "check_order_status",
      "description": "Verwenden Sie dieses Tool, um den Status einer Kundenbestellung zu überprüfen.",
      "endpoint": "https://api.yourstore.com/orders/status",
      "method": "GET",
      "timeout": 10,
      "headers": [
        {
          "name": "Content-Type",
          "value": "application/json"
        },
        {
          "name": "Authorization",
          "value": "Bearer sk_..."
        }
      ],
      "schema": [
        {
          "name": "order_id",
          "type": "string",
          "description": "Die Bestellungs-ID des Kunden"
        },
        {
          "name": "order_number",
          "type": "number",
          "description": "Die numerische Bestellnummer"
        },
        {
          "name": "priority_order",
          "type": "boolean",
          "description": "Ob dies eine Prioritätsbestellung ist"
        }
      ],
      "created_at": "2025-10-10T12:00:00.000000Z",
      "updated_at": "2025-10-10T12:00:00.000000Z"
    }
  }
  ```

  ```json 422 Validierungsfehler theme={null}
  {
    "message": "Das Name-Feld darf nur Kleinbuchstaben und Unterstriche enthalten und muss mit einem Buchstaben beginnen.",
    "errors": {
      "name": [
        "Tool-Name darf nur Kleinbuchstaben und Unterstriche enthalten und muss mit einem Buchstaben beginnen."
      ]
    }
  }
  ```

  ```json 422 Plan-Limit erreicht theme={null}
  {
    "message": "Sie haben das Limit Ihres Plans von 5 Mid-Call-Tools erreicht. Bitte upgraden Sie Ihren Plan, um weitere Tools zu erstellen."
  }
  ```
</ResponseExample>

### Tools an Assistenten anhängen

Nach dem Erstellen eines Tools müssen Sie es an einen Assistenten anhängen, um es während Anrufen zu verwenden. Tools werden über die Assistant-API verwaltet:

* **[Assistenten erstellen](/api-reference/assistants/create-assistant)** - Verwenden Sie den Parameter `tool_ids`, um Tools beim Erstellen eines Assistenten anzuhängen
* **[Assistenten aktualisieren](/api-reference/assistants/update-assistant)** - Verwenden Sie den Parameter `tool_ids`, um Tools bei einem vorhandenen Assistenten hinzuzufügen, zu entfernen oder zu ersetzen
