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

# GPT Schnittstelle für alle Modelle - Responses vollständige Parameter

> - OpenAI-kompatible Responses API für GPT-Textmodelle; das konkrete Modell wird über `model` gewählt (alle möglichen Werte siehe Vergleichstabelle beim Parameter `model`)
- Die gesamte Reihe besteht aus Reasoning-Modellen; die Reasoning-Tiefe wird über `reasoning.effort` gesteuert, Reasoning-Token werden als Ausgabe-Token abgerechnet
- Prompt-Caching greift automatisch: im Cache getroffene Eingabe-Token werden zum günstigeren Cache-Preis abgerechnet
- Unterstützt synchronen und Streaming-Modus (SSE)
- Serverseitige Tools: `web_search` (Websuche), `code_interpreter` (Codeausführung), `file_search` (Dokumentensuche)
- Gewöhnliche `function`-Werkzeuge (clientseitige Funktionsaufrufe) werden ebenfalls unterstützt
- Mehrere Gesprächsrunden lassen sich mit `previous_response_id` verketten
- **Hinweis** Der Unterstützungsumfang einiger Parameter unterscheidet sich je nach Modell; Einzelheiten siehe die Hinweise zu den jeweiligen Parametern unten

<Note>
  **BaseURL**: Die Standard-BaseURL ist `https://direct.evolink.ai` und bietet bessere Unterstützung für Textmodelle sowie persistente Verbindungen. `https://api.evolink.ai` ist der primäre Endpunkt für multimodale Dienste und dient bei Textmodellen als Ausweichadresse.
</Note>

<Note>
  **Serverseitige Tools** (`web_search`, `code_interpreter`, `file_search`, `mcp`) werden auf dem Server ausgeführt, Ergebnisse müssen nicht vom Client zurückgesendet werden, und sie werden nur auf dieser API bereitgestellt. Der Chat-Completions-Endpunkt unterstützt ausschließlich gewöhnliche `function`-Werkzeugaufrufe.
</Note>

<Note>
  **Hinweis** Diese API unterstützt nur den synchronen und den Streaming-Modus: Der asynchrone Hintergrundmodus mit `background: true` wird nicht unterstützt, und es gibt keine Endpunkte zum Abfragen, Abbrechen oder Löschen einer Antwort anhand ihrer ID. Verwenden Sie bei langen Generierungen `stream: true`, um die Verbindung offen zu halten.

  Das Werkzeug `image_generation` ist auf dieser Modellreihe nicht verfügbar; verwenden Sie für die Bildgenerierung die APIs der Bildmodellreihe.
</Note>

<Note>
  **Mehrstufige Konversationen**: Übergeben Sie die in der vorherigen Runde zurückgegebene `id` in der nächsten Runde als `previous_response_id`, um den Kontext fortzuführen. Antworten haben eine Aufbewahrungsfrist; nach deren Ablauf ist die ID ungültig und die Anfrage wird als neue Konversation behandelt. Für Szenarien mit hohen Anforderungen an die Kontextgenauigkeit wird empfohlen, den vollständigen `input`-Verlauf selbst zu pflegen.
</Note>


## OpenAPI

````yaml de/api-manual/language-series/gpt/responses/responses-reference.json POST /v1/responses
openapi: 3.1.0
info:
  title: GPT Schnittstelle für alle Modelle - Responses vollständige Parameter
  description: >-
    Vollständiges Parameterhandbuch für den Aufruf von GPT-Textmodellen über die
    OpenAI-kompatible Responses API (einschließlich serverseitiger Tools).
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Produktion (empfohlen)
  - url: https://api.evolink.ai
    description: Alternative URL
security:
  - bearerAuth: []
tags:
  - name: Responses
    description: OpenAI Responses API mit serverseitigen Tools
paths:
  /v1/responses:
    post:
      tags:
        - Responses
      summary: GPT Responses (alle Modelle, vollständige Parameter)
      description: >-
        - OpenAI-kompatible Responses API für GPT-Textmodelle; das konkrete
        Modell wird über `model` gewählt (alle möglichen Werte siehe
        Vergleichstabelle beim Parameter `model`)

        - Die gesamte Reihe besteht aus Reasoning-Modellen; die Reasoning-Tiefe
        wird über `reasoning.effort` gesteuert, Reasoning-Token werden als
        Ausgabe-Token abgerechnet

        - Prompt-Caching greift automatisch: im Cache getroffene Eingabe-Token
        werden zum günstigeren Cache-Preis abgerechnet

        - Unterstützt synchronen und Streaming-Modus (SSE)

        - Serverseitige Tools: `web_search` (Websuche), `code_interpreter`
        (Codeausführung), `file_search` (Dokumentensuche)

        - Gewöhnliche `function`-Werkzeuge (clientseitige Funktionsaufrufe)
        werden ebenfalls unterstützt

        - Mehrere Gesprächsrunden lassen sich mit `previous_response_id`
        verketten

        - **Hinweis** Der Unterstützungsumfang einiger Parameter unterscheidet
        sich je nach Modell; Einzelheiten siehe die Hinweise zu den jeweiligen
        Parametern unten
      operationId: gptResponsesReference
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponsesRequest'
      responses:
        '200':
          description: >-
            Antwortgenerierung erfolgreich (JSON-Objekt oder – bei `stream=true`
            – ein SSE-Event-Stream, der mit `response.completed` endet)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsesResponse'
        '400':
          description: >-
            Ungültige Anfrageparameter (einschließlich vom Modell nicht
            unterstützter Parameter; die Fehlermeldung nennt den konkreten
            Parameternamen)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 400
                  message: >-
                    Invalid value: '__bogus__'. Supported values are: 'auto' and
                    'disabled'.
                  type: invalid_request_error
                  param: truncation
        '401':
          description: Nicht autorisiert, ungültiges oder abgelaufenes Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 401
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Unzureichendes Kontingent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 402
                  message: Insufficient quota
                  type: insufficient_quota_error
                  fallback_suggestion: https://evolink.ai/dashboard/billing
        '429':
          description: Ratenlimit überschritten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 429
                  message: Rate limit exceeded
                  type: rate_limit_error
                  fallback_suggestion: retry after 60 seconds
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 500
                  message: Internal server error
                  type: internal_server_error
                  fallback_suggestion: try again later
        '503':
          description: Dienst vorübergehend nicht verfügbar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 503
                  message: Service temporarily unavailable
                  type: service_unavailable_error
                  fallback_suggestion: retry after 30 seconds
components:
  schemas:
    ResponsesRequest:
      type: object
      required:
        - model
        - input
      properties:
        model:
          type: string
          description: >-
            Aufzurufendes Modell:


            | Modell-ID | Kontextfenster | Positionierung |

            |---|---|---|

            | `gpt-5.6-sol` | 1.050.000 | GPT-5.6-Familie, Spitzen-Reasoning |

            | `gpt-5.6-terra` | 1.050.000 | GPT-5.6-Familie, ausgewogener
            Produktivbetrieb |

            | `gpt-5.6-luna` | 1.050.000 | GPT-5.6-Familie, hoher Durchsatz und
            Kostenkontrolle |

            | `gpt-5.5` | 400.000 | Allgemeines Reasoning-Modell |

            | `gpt-5.4` | 128.000 | Allgemeines Reasoning-Modell |

            | `gpt-5.2` | 400.000 | Allgemeines Reasoning-Modell |

            | `gpt-5.1` | 400.000 | Allgemeines Reasoning-Modell |
          enum:
            - gpt-5.6-sol
            - gpt-5.6-terra
            - gpt-5.6-luna
            - gpt-5.5
            - gpt-5.4
            - gpt-5.2
            - gpt-5.1
          example: gpt-5.6-sol
        input:
          description: >-
            Modelleingabe: eine reine Zeichenkette oder ein Array von
            Eingabeelementen.


            Das `content` eines Eingabeelements unterstützt zwei Blocktypen:
            `input_text` (Text) und `input_image` (Bild):


            ```json

            "input": [
              {
                "role": "user",
                "content": [
                  { "type": "input_text", "text": "Was ist auf diesem Bild zu sehen?" },
                  {
                    "type": "input_image",
                    "image_url": "https://example.com/photo.png",
                    "detail": "auto"
                  }
                ]
              }
            ]

            ```


            **Bild**

            - Übergeben Sie in `image_url` die öffentliche URL des Bildes

            - `image_url` muss eine Zeichenkette sein; die Schreibweise `{
            "url": "..." }` gibt `400` zurück

            - `detail` steht auf derselben Ebene wie `image_url` (nicht darin
            verschachtelt): `auto` (Standard) / `low` / `high` / `original`

            - Das Bild muss herunterladbar sein, andernfalls wird `400`
            zurückgegeben


            **Werkzeugergebnisse**

            - Das Array kann auch Werkzeugergebnis-Elemente aus der vorherigen
            Runde zurückgeben, etwa `function_call_output`


            **Hinweis** Die Blocktypen dieser API unterscheiden sich von denen
            der Chat Completions API (dort `text` / `image_url`). Sie dürfen
            nicht vermischt werden; eine falsche Verwendung gibt `400` zurück.
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/InputItem'
          example: >-
            Search for AI news from the past week and summarize it in three
            sentences.
        instructions:
          type: string
          description: >-
            Anweisungen auf Systemebene, gleichbedeutend mit dem Einfügen einer
            Systemnachricht ganz am Anfang von `input`. Wird die Konversation
            mit `previous_response_id` fortgesetzt, wird dieser Parameter nicht
            aus der vorherigen Runde übernommen und muss in jeder Runde
            übergeben werden.
          example: You are a concise assistant. Answer in no more than three sentences.
        stream:
          type: boolean
          description: >-
            Ob eine Streaming-Antwort zurückgegeben wird (SSE-Events, endend mit
            `response.completed`). Standard `false`.
          default: false
          example: false
        max_output_tokens:
          type: integer
          description: >-
            Maximale Anzahl zu generierender Token (einschließlich
            Reasoning-Token). Wird die Obergrenze erreicht, lautet `status`
            `incomplete`.
          example: 2048
        reasoning:
          type: object
          description: >-
            Reasoning-Steuerung.


            **Die möglichen Werte von `effort` (Reasoning-Tiefe) unterscheiden
            sich je nach Modell:**


            | Modell | Mögliche Werte |

            |---|---|

            | `gpt-5.6-sol` / `gpt-5.6-terra` / `gpt-5.6-luna` | `none`, `low`,
            `medium`, `high`, `xhigh`, `max` |

            | `gpt-5.5` / `gpt-5.4` / `gpt-5.2` | `none`, `low`, `medium`,
            `high`, `xhigh` |

            | `gpt-5.1` | `none`, `low`, `medium`, `high` |


            **`summary` (Reasoning-Zusammenfassung)**: `auto` / `concise` /
            `detailed`, in der gesamten Reihe verfügbar. Nach der Aktivierung
            erscheint in `output` ein `reasoning`-Element.


            **`mode` (Reasoning-Modus)**: `standard` / `pro`, nur von der
            `gpt-5.6`-Familie unterstützt.


            **`context` (Reasoning-Kontextbereich)**: `auto` / `current_turn` /
            `all_turns`, nur von der `gpt-5.6`-Familie unterstützt.


            Reasoning-Token werden als Ausgabe-Token abgerechnet und in
            `usage.output_tokens_details.reasoning_tokens` gezählt.
          properties:
            effort:
              type: string
              enum:
                - none
                - low
                - medium
                - high
                - xhigh
                - max
              example: medium
            summary:
              type: string
              enum:
                - auto
                - concise
                - detailed
              example: auto
            mode:
              type: string
              enum:
                - standard
                - pro
              example: standard
            context:
              type: string
              enum:
                - auto
                - current_turn
                - all_turns
              example: current_turn
        text:
          type: object
          description: >-
            Steuerung des Ausgabetexts:


            - `format`: `{"type": "text"}` (Standard), `{"type": "json_object"}`
            oder `{"type": "json_schema", "name": "...", "schema": {...},
            "strict": true}` für strukturierte Ergebnisse

            - `verbosity`: `low` / `medium` / `high`, steuert die
            Ausführlichkeit der Antwort
          properties:
            format:
              type: object
              description: Definition des Ausgabeformats
            verbosity:
              type: string
              enum:
                - low
                - medium
                - high
              example: medium
        tools:
          type: array
          description: >-
            Werkzeugdeklarationen. Serverseitige Tools werden auf dem Server
            ausgeführt; Ergebnisse müssen nicht vom Client zurückgesendet
            werden:


            | Werkzeugtyp | Fähigkeit |

            |---|---|

            | `web_search` | Durchsucht das Web und ruft Webseiten auf (Alias
            `web_search_preview`) |

            | `code_interpreter` | Führt Code in einer Sandbox aus, erfordert
            `"container": {"type": "auto"}` |

            | `file_search` | Durchsucht einen bestehenden Vektorspeicher,
            erfordert `vector_store_ids` |

            | `mcp` | Verbindet sich mit einem entfernten MCP-Dienst, erfordert
            `server_label` und `server_url` |


            Gewöhnliche `function`-Werkzeuge (clientseitige Funktionsaufrufe)
            werden ebenfalls unterstützt.


            **Hinweis** `image_generation` ist auf dieser Modellreihe nicht
            verfügbar; verwenden Sie stattdessen die APIs der Bildmodellreihe.
          items:
            $ref: '#/components/schemas/Tool'
          example:
            - type: web_search
        tool_choice:
          description: >-
            Steuert die Tool-Auswahl: `"auto"` (Standard) / `"none"` /
            `"required"` oder ein Objekt, das ein bestimmtes Tool festlegt, z.
            B. `{"type": "web_search"}`.
          oneOf:
            - type: string
              enum:
                - none
                - auto
                - required
            - type: object
        max_tool_calls:
          type: integer
          description: >-
            Obergrenze für die Gesamtzahl der in dieser Antwort zulässigen
            Werkzeugaufrufe.
          example: 5
        parallel_tool_calls:
          type: boolean
          description: >-
            Ob das Modell innerhalb einer Runde mehrere Werkzeuge parallel
            aufrufen darf. Standard `true`.


            **Hinweis** Nur die `gpt-5.6`-Familie und `gpt-5.5` unterstützen die
            Einstellung `false`; auf `gpt-5.4` / `gpt-5.2` / `gpt-5.1` hat
            dieser Parameter keine Wirkung und verhält sich stets wie `true`.
          default: true
          example: true
        previous_response_id:
          type: string
          description: >-
            Die `id` der vorherigen Antwort, dient dazu, mehrere Gesprächsrunden
            zu verketten, ohne den Verlauf erneut zu übertragen.


            **Hinweis** Muss zusammen mit `store: true` (Standardwert) verwendet
            werden. Antworten haben eine Aufbewahrungsfrist; nach deren Ablauf
            ist die ID ungültig, und die Anfrage wird als neue Konversation ohne
            Kontextübernahme behandelt. Für Szenarien mit hohen Anforderungen an
            die Kontextgenauigkeit wird empfohlen, den vollständigen
            `input`-Verlauf selbst zu pflegen.
          example: resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5
        store:
          type: boolean
          description: >-
            Ob diese Antwort serverseitig gespeichert wird; nur gespeicherte
            Antworten können über `previous_response_id` referenziert werden.
            Standard `true`.


            **Hinweis** Nur die `gpt-5.6`-Familie und `gpt-5.5` unterstützen die
            Einstellung `false`; auf `gpt-5.4` / `gpt-5.2` / `gpt-5.1` hat
            dieser Parameter keine Wirkung und verhält sich stets wie `true`.
            Wenn keine Speicherung gewünscht ist, wählen Sie ein Modell, das das
            Abschalten unterstützt.
          default: true
          example: true
        include:
          type: array
          description: >-
            Zusätzliche Inhalte, die in der Antwort zurückgegeben werden sollen.
            Mögliche Werte:


            - `reasoning.encrypted_content`

            - `message.output_text.logprobs`

            - `web_search_call.results`

            - `web_search_call.action.sources`

            - `file_search_call.results`

            - `code_interpreter_call.outputs`

            - `message.input_image.image_url`

            - `computer_call_output.output.image_url`
          items:
            type: string
          example:
            - reasoning.encrypted_content
        temperature:
          type: number
          description: >-
            Sampling-Temperatur, Wertebereich 0 bis 2. Niedrigere Werte machen
            die Ausgabe deterministischer.


            **Hinweis** Auf `gpt-5.4` / `gpt-5.2` / `gpt-5.1` hat der Wert `0`
            keine Wirkung (er wird wie nicht gesetzt behandelt und auf den
            Standardwert `1` zurückgesetzt); für deterministischere Ausgaben
            verwenden Sie einen Wert größer als 0, etwa `0.01`.
          minimum: 0
          maximum: 2
          example: 0.7
        top_p:
          type: number
          description: >-
            Nucleus-Sampling-Parameter, Wertebereich 0 bis 1. Es wird empfohlen,
            ihn nicht zusammen mit `temperature` anzupassen.
          minimum: 0
          maximum: 1
          example: 0.9
        top_logprobs:
          type: integer
          description: >-
            Anzahl der pro Position zurückgegebenen Kandidaten-Token,
            Wertebereich 0 bis 20; muss zusammen mit `include:
            ["message.output_text.logprobs"]` verwendet werden.


            **Hinweis** Nur von der `gpt-5.6`-Familie und `gpt-5.5` unterstützt;
            andere Modelle unterstützen diesen Parameter nicht.
          minimum: 0
          maximum: 20
          example: 2
        frequency_penalty:
          type: number
          description: >-
            Frequency Penalty, Wertebereich -2 bis 2, verringert die
            Wahrscheinlichkeit wiederholter Inhalte.


            **Hinweis** Nur von der `gpt-5.6`-Familie unterstützt; andere
            Modelle unterstützen diesen Parameter nicht.
          minimum: -2
          maximum: 2
          example: 0.5
        presence_penalty:
          type: number
          description: >-
            Presence Penalty, Wertebereich -2 bis 2, ermutigt das Modell, neue
            Themen anzusprechen.


            **Hinweis** Nur von der `gpt-5.6`-Familie unterstützt; andere
            Modelle unterstützen diesen Parameter nicht.
          minimum: -2
          maximum: 2
          example: 0.5
        truncation:
          type: string
          description: >-
            Verhalten, wenn der Kontext das Fenster überschreitet: `disabled`
            (Standard, gibt direkt einen Fehler zurück) oder `auto` (kürzt den
            mittleren Teil automatisch).
          enum:
            - auto
            - disabled
          default: disabled
          example: auto
        context_management:
          type: array
          description: >-
            Konfiguration der automatischen Verdichtung langer Konversationen,
            zum Beispiel `[{"type": "compaction", "compact_threshold":
            100000}]`: Überschreitet der Kontext den Schwellenwert, wird der
            Verlauf automatisch verdichtet.


            **Hinweis** Nur von der `gpt-5.6`-Familie unterstützt; andere
            Modelle unterstützen diesen Parameter nicht.
          items:
            type: object
        prompt_cache_key:
          type: string
          description: >-
            Cache-Gruppierungsschlüssel. Wenn Sie für Anfragen mit demselben
            Präfix denselben Wert übergeben, steigt die Trefferquote des
            Prompt-Caches.
          example: app-agent-v1
        prompt_cache_retention:
          type: string
          description: >-
            Aufbewahrungsstrategie für den Prompt-Cache: `in_memory` (Standard)
            oder `24h` (verlängert die Aufbewahrungsdauer des Caches).
          enum:
            - in_memory
            - 24h
          example: in_memory
        prompt:
          type: object
          description: >-
            Verweist auf eine bereits erstellte Prompt-Vorlage, in der Form
            `{"id": "pmpt_xxx", "version": "1", "variables": {...}}`.
          properties:
            id:
              type: string
            version:
              type: string
            variables:
              type: object
        metadata:
          type: object
          description: >-
            Benutzerdefinierte Schlüssel-Wert-Paare, die unverändert mit der
            Antwort zurückgegeben werden und die Kennzeichnung auf
            Anwendungsseite erleichtern. Schlüssel und Werte sind jeweils
            Zeichenketten.
          example:
            trace_id: abc-123
        safety_identifier:
          type: string
          description: >-
            Stabile Kennung des Endnutzers, dient der Nachverfolgung von
            Missbrauch.


            **Hinweis** Nur von der `gpt-5.6`-Familie unterstützt; andere
            Modelle unterstützen diesen Parameter nicht.
          example: user-1024
        user:
          type: string
          description: Kennung des Endnutzers, dient der Unterscheidung der Aufrufquelle.
          example: user-1024
    ResponsesResponse:
      type: object
      properties:
        id:
          type: string
          description: >-
            Eindeutige ID dieser Antwort, kann als `previous_response_id` für
            die nächste Runde dienen
          example: resp_0f5c2b2c20c39e8a006a7ef545443081979e478b10927984b5
        object:
          type: string
          enum:
            - response
          description: Antworttyp
          example: response
        status:
          type: string
          description: >-
            Antwortstatus: `completed` für ein normales Ende, `incomplete`, wenn
            die Generierung etwa wegen Erreichen von `max_output_tokens` nicht
            abgeschlossen wurde, `failed` bei fehlgeschlagener Generierung
          enum:
            - completed
            - incomplete
            - failed
          example: completed
        model:
          type: string
          description: Tatsächlich verwendeter Modellname
          example: gpt-5.6-sol
        created_at:
          type: integer
          description: Erstellungszeitstempel
          example: 1786705221
        output:
          type: array
          description: >-
            Ausgabeelemente in Generierungsreihenfolge: das `reasoning`-Element
            (Reasoning-Zusammenfassung / verschlüsselter Reasoning-Inhalt),
            Werkzeugaufruf-Elemente (etwa `web_search_call`,
            `code_interpreter_call`) und zuletzt das `message`-Element mit dem
            `output_text`-Inhalt.
          items:
            $ref: '#/components/schemas/OutputItem'
        incomplete_details:
          type: object
          description: Erläutert den Grund, wenn `status` gleich `incomplete` ist
        usage:
          $ref: '#/components/schemas/Usage'
        metadata:
          type: object
          description: >-
            Benutzerdefinierte Schlüssel-Wert-Paare aus der Anfrage, unverändert
            zurückgegeben
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
              description: HTTP-Status-Fehlercode
            message:
              type: string
              description: Fehlerbeschreibung
            type:
              type: string
              description: Fehlertyp
            param:
              type: string
              description: Zugehöriger Parametername
            fallback_suggestion:
              type: string
              description: Vorschlag bei Fehlerauftreten
    InputItem:
      type: object
      description: >-
        Eingabeelement: ein Nachrichtenelement (`role` + `content`) oder ein
        Werkzeugergebnis-Element aus der vorherigen Runde (etwa
        `function_call_output`)


        So geben Sie ein Tool-Ergebnis zurück:


        ```json

        {
          "type": "function_call_output",
          "call_id": "call_abc123",
          "output": "{\"temp_c\": 21}"
        }

        ```
      properties:
        role:
          type: string
          description: Nachrichtenrolle
          enum:
            - system
            - developer
            - user
            - assistant
          example: user
        content:
          description: >-
            Eingabeinhalt: eine Zeichenkette oder ein Array von Content-Blöcken
            (Mischung aus `input_text` / `input_image`)
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/InputContentBlock'
        type:
          type: string
          description: >-
            Typ des Eingabeelements. Bei Nachrichten optional; zur Rückgabe
            eines Tool-Ergebnisses `function_call_output` verwenden.
          enum:
            - function_call_output
          example: function_call_output
        call_id:
          type: string
          description: >-
            Die `call_id` des zugehörigen `function_call`-Ausgabeelements aus
            der vorherigen Runde (nicht dessen `id`). Nur für
            `function_call_output`-Elemente erforderlich.
          example: call_abc123
        output:
          type: string
          description: >-
            Das Ergebnis der Tool-Ausführung als Zeichenkette (JSON-Ergebnisse
            selbst serialisieren). Nur für `function_call_output`-Elemente
            erforderlich.
          example: '{"temp_c": 21}'
    Tool:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: Werkzeugtyp
          enum:
            - web_search
            - web_search_preview
            - code_interpreter
            - file_search
            - mcp
            - function
          example: web_search
    OutputItem:
      type: object
      properties:
        id:
          type: string
          description: Bezeichner des Ausgabeelements
        type:
          type: string
          description: Typ des Ausgabeelements
          enum:
            - reasoning
            - message
            - web_search_call
            - code_interpreter_call
            - file_search_call
            - mcp_call
            - function_call
          example: web_search_call
        status:
          type: string
          description: Status des Ausgabeelements
          example: completed
        content:
          type: array
          description: >-
            Inhaltsteile der Nachricht (`output_text`), vorhanden bei
            `message`-Elementen
          items:
            type: object
        encrypted_content:
          type: string
          description: >-
            Verschlüsselter Reasoning-Inhalt, erscheint am `reasoning`-Element;
            erfordert `include: ["reasoning.encrypted_content"]` in der Anfrage
    Usage:
      type: object
      description: >-
        Statistik zum Token-Verbrauch. Prompt-Caching greift automatisch; im
        Cache getroffene Eingabe-Token werden zum günstigeren Cache-Preis
        abgerechnet.
      properties:
        input_tokens:
          type: integer
          description: Anzahl der Eingabe-Token
          example: 18
        output_tokens:
          type: integer
          description: Anzahl der Ausgabe-Token (einschließlich Reasoning-Token)
          example: 42
        total_tokens:
          type: integer
          description: Gesamtanzahl der Tokens
          example: 60
        input_tokens_details:
          type: object
          description: Detaillierte Eingabe-Token-Informationen
          properties:
            cached_tokens:
              type: integer
              description: Anzahl der aus dem Cache gelieferten Token
              example: 0
            cache_write_tokens:
              type: integer
              description: Anzahl der in den Cache geschriebenen Token
              example: 0
        output_tokens_details:
          type: object
          description: Detaillierte Ausgabe-Token-Informationen
          properties:
            reasoning_tokens:
              type: integer
              description: Anzahl der Reasoning-Tokens
              example: 16
    InputContentBlock:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: |-
            Inhaltstyp

            - `input_text`: Textblock
            - `input_image`: Bildeingabe
          enum:
            - input_text
            - input_image
          example: input_image
        text:
          type: string
          description: Textinhalt, wenn `type=input_text`
          example: What is in this image?
        image_url:
          type: string
          description: >-
            Öffentliche URL des Bildes (wenn `type=input_image`). Muss eine
            Zeichenkette sein; die Schreibweise `{ "url": "..." }` gibt `400`
            zurück. Das Bild muss herunterladbar sein, andernfalls wird
            ebenfalls `400` zurückgegeben.
          example: https://example.com/photo.png
        detail:
          type: string
          description: >-
            Genauigkeit der Bildanalyse, auf derselben Ebene wie `image_url`
            (nicht darin verschachtelt)


            - `low`: geringe Genauigkeit, verbraucht weniger Token

            - `high`: hohe Genauigkeit, feinere Erkennung

            - `original`: Analyse in der Originalgröße des Bildes

            - `auto` (Standard): wird vom Modell automatisch entschieden
          enum:
            - auto
            - low
            - high
            - original
          default: auto
          example: auto
      description: >-
        Multimodaler Content-Block. Deklarieren Sie den Typ über `type` und
        füllen Sie nur die zu diesem Typ passenden Felder aus.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle APIs erfordern Bearer-Token-Authentifizierung##


        **API-Schlüssel erhalten:**


        Besuchen Sie die
        [API-Schlüsselverwaltungsseite](https://evolink.ai/dashboard/keys), um
        Ihren API-Schlüssel zu erhalten


        **Zum Anfrage-Header hinzufügen:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````