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

# API-Anfragen

> Konfiguration externer API-Integrationen für Voice Agents.

Sie können API-Anfrage-Definitionen im **API-Anfragen**-Tab des Voice Wizards erstellen. Klicken Sie auf **"API-Anfrage hinzufügen"** und Sie sehen das folgende Eingabeformular mit den unten erklärten Feldern.

![API Request Configuration Form](https://mintcdn.com/miyon/k1W2EMCYe3WDkNuH/images/create-api-request-modal.png?fit=max\&auto=format\&n=k1W2EMCYe3WDkNuH\&q=85\&s=68a9015c270ef5d03621707e0fbca12e)

## Formularfelder erklärt

### Name der API-Anfrage

Ein beschreibender Name für Ihre API-Anfrage (z. B. "Produktbestellung erstellen")

### URL

Die API-Endpunkt-URL. Sie können Platzhalter wie `{{userId}}` verwenden, die durch Werte aus Ihren **dynamischen** Funktionsparametern ersetzt werden.

* Beispiel: `https://api.shop.com/orders/{{userId}}`

### HTTP-Methode

Wählen Sie die HTTP-Methode für Ihre Anfrage (GET, POST, PUT, DELETE, etc.)

### API Key

Ihr Authentifizierungs-Token. Dieser ersetzt automatisch alle `{{api_key}}`-Platzhalter in Ihrer URL oder in den Headern.

### Headers

HTTP-Header für Ihre Anfrage im JSON-Format:

```json theme={null}
{
  "Authorization": "Bearer {{api_key}}",
  "Content-Type": "application/json"
}
```

* `{{api_key}}` wird durch Ihren API Key ersetzt

### Funktionsdefinition (Dynamische Parameter)

Definieren Sie die Parameter, die Benutzer beim Aufruf Ihrer Funktion übergeben können:

```json theme={null}
{
  "type": "function",
  "name": "place_order",
  "description": "Bestellt ein Produkt für einen Kunden",
  "parameters": {
    "type": "object",
    "properties": {
      "userId": {
        "type": "string",
        "description": "Kunden-Benutzer-ID"
      },
      "orderDetails": {
        "type": "object",
        "properties": {
          "product": {"type": "string"},
          "quantity": {"type": "number"}
        }
      }
    }
  }
}
```

Diese Parameter werden:

* Passende Platzhalter in URL und Headern ersetzen
* **Alle dynamischen Parameter, die nicht mit Platzhaltern übereinstimmen, werden in den Request Body eingefügt**
* **Funktioniert mit verschachtelten Objekten** - z. B. wird das `orderDetails`-Objekt im Body beibehalten

### Feste Parameter

Statische Werte, die immer in jeder Anfrage enthalten sind:

```json theme={null}
{
  "storeId": "STORE_123",
  "paymentMethod": "credit_card",
  "currency": "USD"
}
```

Diese werden:

* **Immer unverändert in den Request Body eingefügt**
* Sie ersetzen KEINE Platzhalter in Headern oder URL

### Variablen

Mit **Variablen** stellen Sie Werte aus der API-Antwort als `{{tool.<Tool-Name>.<Variable>}}` bereit und geben sie an andere Tools oder an die Nachbearbeitung weiter – serverseitig, ohne dass die KI den Wert jemals „anfasst". So lassen sich mehrere API-Anfragen zu einer Kette verbinden.

Beispiel: Das Tool `kunde_suchen` liefert eine `id`, und das Tool `bestellungen_abrufen` verwendet sie anschließend, um die Bestellungen des Kunden abzurufen.

**1. Variablen definieren**

Klappen Sie im Tool den Abschnitt **„Variablen"** auf und legen Sie pro Zeile fest:

* **Variable** – der Name, unter dem Sie den Wert referenzieren (z. B. `id`).
* **Antwortpfad** – der Pfad zum Wert in der Antwort in Punkt-Notation, beginnend mit `response.` (z. B. `response.id` oder `response.data.id`).
* **Standardwert** (optional) – wird gesendet, wenn der Wert in der Antwort fehlt.

  ![Abschnitt „Variablen" mit definierten Variablen](https://mintcdn.com/miyon/XnCGtL5z66Wx0Hp8/images/api-tool/variables-extracted.jpg?fit=max\&auto=format\&n=XnCGtL5z66Wx0Hp8\&q=85\&s=a1c3b72714f8d8ab18cb6327ce9946ce)

Referenziert wird die Variable als `{{tool.<Tool-Name>.<Variable>}}`, z. B. `{{tool.kunde_suchen.id}}`.

**2. Felder aus der Testantwort übernehmen (optional)**

Statt den Pfad manuell einzutippen, klicken Sie auf **„Variablen extrahieren"**: Die API wird einmal getestet, und Sie übernehmen die Felder direkt aus der echten Antwort. Über die Suche finden Sie das passende Feld schnell.

![Felder aus der Testantwort übernehmen](https://mintcdn.com/miyon/XnCGtL5z66Wx0Hp8/images/api-tool/variables-picked-from-response.jpg?fit=max\&auto=format\&n=XnCGtL5z66Wx0Hp8\&q=85\&s=fb39b6f8948f691a65ae24891c3540a0)

Ein **grünes Häkchen** zeigt, dass der Pfad in der letzten Testantwort als einzelner Wert gefunden wurde:

![Pfad in der Testantwort gefunden](https://mintcdn.com/miyon/XnCGtL5z66Wx0Hp8/images/api-tool/picked-vars-found-in-response.jpg?fit=max\&auto=format\&n=XnCGtL5z66Wx0Hp8\&q=85\&s=ce73416abc34c3db6afc8b8044bdbe01)

Ein **gelbes Symbol** bedeutet, dass der Pfad dort nicht als einzelner Wert vorhanden ist (z. B. Tippfehler oder falscher Pfad):

![Pfad nicht in der Testantwort gefunden](https://mintcdn.com/miyon/XnCGtL5z66Wx0Hp8/images/api-tool/picked-var-not-found-in-response.jpg?fit=max\&auto=format\&n=XnCGtL5z66Wx0Hp8\&q=85\&s=3c36bbdc7de8fd49efe1953b32ec7241)

**3. Variable in einem anderen Tool verwenden**

Setzen Sie die Variable in einem anderen API-Tool in der **URL**, den **Headern** oder den **Festen Parametern** (Request Body) ein. Sobald Sie `{{` tippen, erscheint ein Dropdown, aus dem Sie die Variable auswählen.

![Variablen-Dropdown beim Tippen von zwei geschweiften Klammern](https://mintcdn.com/miyon/XnCGtL5z66Wx0Hp8/images/api-tool/vars-dropdown.jpg?fit=max\&auto=format\&n=XnCGtL5z66Wx0Hp8\&q=85\&s=bfbda17627c129845fca3850da2b0b7f)

**4. Verkettete Anfrage testen**

Nutzt eine Anfrage Variablen aus anderen Tools, geben Sie beim Testen unter **„Testwerte für Variablen"** einen Beispielwert ein, um die Anfrage einzeln zu testen – ohne echten Anruf.

![Testwerte für Variablen im Test-Dialog](https://mintcdn.com/miyon/XnCGtL5z66Wx0Hp8/images/api-tool/customer-orders-search-with-var.jpg?fit=max\&auto=format\&n=XnCGtL5z66Wx0Hp8\&q=85\&s=fe02bd160b2e024099e80cafd2eecffa)

> [!NOTE]
>
> Variablen werden **serverseitig** aufgelöst und direkt in die ausgehende Anfrage eingesetzt – der Wert läuft nie über die KI. Das ist zuverlässig und außerdem sicher für sensible Werte wie Tokens, die die KI sonst verfälschen könnte.

**Wo Sie Variablen einsetzen können:** in der **URL**, den **Headern** und den **Festen Parametern** (Request Body) sowie in der **Nachbearbeitung** (E-Mail-/SMS-Vorlagen) – überall öffnet sich beim Tippen von `{{` ein Dropdown. **Noch nicht verfügbar** in der Weiterleitung und im Prompt/der Begrüßung, da diese vor der Tool-Ausführung aufgelöst werden.

**Wenn ein Wert nicht verfügbar ist:** Wurde das Quell-Tool im Gespräch noch nicht ausgeführt, wird die Variable leer gesendet (bzw. der Standardwert, falls gesetzt). In der Gesprächsansicht wird beim jeweiligen Tool-Aufruf angezeigt, dass eine Variable nicht verfügbar war.

![Hinweis in der Gesprächsansicht: Variable war nicht verfügbar](https://mintcdn.com/miyon/XnCGtL5z66Wx0Hp8/images/api-tool/var-not-extracted-conversations.jpg?fit=max\&auto=format\&n=XnCGtL5z66Wx0Hp8\&q=85\&s=300f549aadc85f619b3ce1dfc3748ce8)

### Vorher sagen

Eine optionale Nachricht, die der KI-Assistent dem Benutzer mitteilt, bevor die API-Anfrage ausgeführt wird. Zum Beispiel: "Ich erstelle jetzt Ihre Bestellung..." oder "Einen Moment, ich rufe die Produktinformationen ab..."

## Beispiel: GET-Anfrage ohne dynamische Parameter

Manche API-Aufrufe benötigen keine Parameter von der KI - zum Beispiel "Alle Produkte abrufen". In diesem Fall ist trotzdem eine Funktionsdefinition erforderlich, damit die KI die API-Anfrage auslöst.

![API Request Configuration for GET without parameters](https://mintcdn.com/miyon/k1W2EMCYe3WDkNuH/images/create-api-request-modal-empty-request.png?fit=max\&auto=format\&n=k1W2EMCYe3WDkNuH\&q=85\&s=5175f465f9581a6cb5c7d242cc668abe)

### Konfiguration für "Get all products"

* **Name der API-Anfrage**: "Get all products"
* **URL**: `https://example.proxy.beeceptor.com/products` (Beispiel-Testendpunkt)
* **HTTP-Methode**: GET
* **API Key**: (leer oder Ihr API-Schlüssel)
* **Headers**: Standard-GET-Headers

### Funktionsdefinition ohne Parameter

Klicken Sie auf **"Keine dynamischen Parameter"** um eine Vorlage zu erhalten:

```json theme={null}
{
  "type": "function",
  "name": "listProducts",
  "description": "Get all available products from the catalog",
  "parameters": {
    "type": "object",
    "properties": {}
  }
}
```

**Wichtig:**

* Ein aussagekräftiger **Funktionsname** und eine **Beschreibung** sind entscheidend, weil die KI verstehen muss, wann die Funktion aufgerufen werden soll
* Fügen Sie explizite Anweisungen im **Benutzer-Prompt** hinzu, falls die KI Schwierigkeiten hat
* Die leeren `properties: {}` sind erforderlich für eine gültige Funktionsdefinition

### Resultierende HTTP-Anfrage

Basierend auf der obigen Konfiguration wird folgende HTTP-Anfrage erstellt:

```
GET https://example.proxy.beeceptor.com/products
Content-Type: application/json
```

**Erklärung:**

* **URL**: Direkte URL ohne Platzhalter-Ersetzungen
* **Headers**: GET-Headers mit Bearer API Token
* **Parameter**: Keine dynamischen Parameter erforderlich

## Wie die endgültige Anfrage erstellt wird

1. **URL**: Platzhalter werden durch dynamische Funktionsparameter ersetzt
2. **Headers**: `{{api_key}}` wird durch den API Key ersetzt, andere Platzhalter durch dynamische Parameterwerte
3. **Body**: Kombination aus Festen Parametern + dynamischen Parametern, die nicht mit Platzhaltern übereinstimmen

### Beispiel der endgültigen HTTP-Anfrage

Basierend auf den obigen Parametern wird folgende HTTP-Anfrage erstellt:

```
POST https://api.shop.com/orders/user123
Authorization: Bearer YOUR_API_KEY_HERE
Content-Type: application/json

{
  "storeId": "STORE_123",
  "paymentMethod": "credit_card",
  "currency": "USD",
  "orderDetails": {
    "product": "Wireless Headphones",
    "quantity": 2
  }
}
```

**Erklärung:**

* **URL**: `{{userId}}` wurde durch "user123" ersetzt
* **Headers**: `{{api_key}}` wurde durch Ihren tatsächlichen API Key ersetzt
* **Body**: Enthält sowohl feste Parameter (storeId, paymentMethod, currency) als auch dynamische Parameter (orderDetails)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.