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

# MiniMax-M3.1-Flash - OpenAI-kompatible API

> - Ruft das Modell MiniMax-M3.1-Flash über das OpenAI Chat Completions-Protokoll auf
- **Konversationen mit mehreren Runden**: unterstützt Konversationen mit einer oder mehreren Runden und gemeinsamem Kontext
- **System-Prompt**: passt Rolle und Verhalten der KI über eine Nachricht mit `role=system` an
- **Multimodale Eingabe**: `content` unterstützt eine Kombination aus Text und Bildern / Videos
- **Reasoning**: immer aktiviert; `reasoning_effort` steuert die Tiefe. Reasoning-Inhalte werden über `reasoning_content` zurückgegeben; `content` enthält nur die endgültige Antwort
- **Streaming-Ausgabe**: unterstützt SSE-Streaming
- **Werkzeugaufrufe**: unterstützt Function Calling

**Streaming-Antworten**: Bei `stream=true` erfolgt die Ausgabe über Server-Sent Events. Jede Nachricht hat das Format `data: {JSON}`; zum Abschluss wird `data: [DONE]` gesendet. `choices[].delta` liefert zuerst `reasoning_content` inkrementell, anschließend `content` / `tool_calls`. Bei `stream_options.include_usage=true` wird vor dem Ende ein zusätzlicher Datenblock mit `usage` zurückgegeben.

<Note>
  **BaseURL**: Die Standard-BaseURL ist `https://direct.evolink.ai`, die Textmodelle und langlebige Verbindungen besser unterstützt. `https://api.evolink.ai` ist der primäre Endpunkt für multimodale Dienste und dient als Ausweichadresse für Textmodelle.
</Note>


## OpenAPI

````yaml de/api-manual/language-series/minimax-m3.1-flash/minimax-m3.1-flash-chat.json POST /v1/chat/completions
openapi: 3.1.0
info:
  title: MiniMax-M3.1-Flash – Vollständige Parameterreferenz (OpenAI-kompatibel)
  description: >-
    Vollständige API-Referenz für die MiniMax-M3.1-Flash Chat API.


    **Modellfunktionen**:

    - Kontextlänge: **1,000,000 Tokens** (1M)

    - Maximale Ausgabe: **524,288 Tokens** (512K), empfohlen: **131,072 Tokens**
    (128K), einschließlich Reasoning-Tokens

    - Reasoning: immer aktiviert; die Tiefe wird über `reasoning_effort`
    gesteuert, Standardwert: `max`

    - Multimodale Eingabe: Text, Bilder und Videos

    - Werkzeugaufrufe: unterstützt Function Calling

    - Kontext-Cache: identische Präfixe werden automatisch aus dem Cache
    gelesen; Treffer werden unter `usage.prompt_tokens_details.cached_tokens`
    erfasst

    - Streaming-Ausgabe: unterstützt SSE-Streaming


    Fügen Sie bei Konversationen mit mehreren Runden die vollständige
    assistant-Nachricht der vorherigen Runde unverändert zu `messages` hinzu,
    einschließlich `reasoning_content` und `tool_calls`.
  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: Chat-Vervollständigung
    description: Endpunkte für KI-Chat-Vervollständigung
paths:
  /v1/chat/completions:
    post:
      tags:
        - Chat-Vervollständigung
      summary: MiniMax-M3.1-Flash Chat API (OpenAI-kompatibel)
      description: >-
        - Ruft das Modell MiniMax-M3.1-Flash über das OpenAI Chat
        Completions-Protokoll auf

        - **Konversationen mit mehreren Runden**: unterstützt Konversationen mit
        einer oder mehreren Runden und gemeinsamem Kontext

        - **System-Prompt**: passt Rolle und Verhalten der KI über eine
        Nachricht mit `role=system` an

        - **Multimodale Eingabe**: `content` unterstützt eine Kombination aus
        Text und Bildern / Videos

        - **Reasoning**: immer aktiviert; `reasoning_effort` steuert die Tiefe.
        Reasoning-Inhalte werden über `reasoning_content` zurückgegeben;
        `content` enthält nur die endgültige Antwort

        - **Streaming-Ausgabe**: unterstützt SSE-Streaming

        - **Werkzeugaufrufe**: unterstützt Function Calling


        **Streaming-Antworten**: Bei `stream=true` erfolgt die Ausgabe über
        Server-Sent Events. Jede Nachricht hat das Format `data: {JSON}`; zum
        Abschluss wird `data: [DONE]` gesendet. `choices[].delta` liefert zuerst
        `reasoning_content` inkrementell, anschließend `content` / `tool_calls`.
        Bei `stream_options.include_usage=true` wird vor dem Ende ein
        zusätzlicher Datenblock mit `usage` zurückgegeben.
      operationId: createChatCompletionMiniMaxM31Flash
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            examples:
              simple_text:
                summary: Einzelrunden-Textkonversation
                value:
                  model: MiniMax-M3.1-Flash
                  messages:
                    - role: user
                      content: Please introduce yourself.
                  max_completion_tokens: 131072
              multi_turn:
                summary: Mehrrundengespräch (Kontextverständnis)
                value:
                  model: MiniMax-M3.1-Flash
                  messages:
                    - role: user
                      content: What is Python?
                    - role: assistant
                      content: Python is a high-level programming language.
                    - role: user
                      content: What are its main advantages?
                  max_completion_tokens: 131072
              system_prompt:
                summary: System-Prompts verwenden
                value:
                  model: MiniMax-M3.1-Flash
                  messages:
                    - role: system
                      content: >-
                        You are a Python programming assistant. Keep your
                        answers concise.
                    - role: user
                      content: How do I read a file?
                  max_completion_tokens: 131072
              reasoning_effort:
                summary: Reasoning-Tiefe anpassen
                value:
                  model: MiniMax-M3.1-Flash
                  reasoning_effort: high
                  messages:
                    - role: user
                      content: >-
                        A bat and a ball cost 1.10 in total. The bat costs 1.00
                        more than the ball. How much does the ball cost?
                  max_completion_tokens: 131072
              image_understanding:
                summary: Bildverständnis (multimodale Eingabe)
                value:
                  model: MiniMax-M3.1-Flash
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: What is shown in this image?
                        - type: image_url
                          image_url:
                            url: https://example.com/image.jpeg
                            detail: default
                  max_completion_tokens: 131072
              video_understanding:
                summary: Videoverständnis (multimodale Eingabe)
                value:
                  model: MiniMax-M3.1-Flash
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: Summarize this video.
                        - type: video_url
                          video_url:
                            url: https://example.com/video.mp4
                            fps: 1
                            detail: default
                  max_completion_tokens: 131072
              tool_calling:
                summary: Function Calling (Werkzeugaufruf)
                value:
                  model: MiniMax-M3.1-Flash
                  messages:
                    - role: user
                      content: Check the stock for product demo-item-001.
                  tools:
                    - type: function
                      function:
                        name: get_product_stock
                        description: Get the current stock level for a product.
                        parameters:
                          type: object
                          properties:
                            product_id:
                              type: string
                              description: Product identifier.
                          required:
                            - product_id
                  max_completion_tokens: 131072
              streaming:
                summary: Streaming-Ausgabe
                value:
                  model: MiniMax-M3.1-Flash
                  stream: true
                  stream_options:
                    include_usage: true
                  messages:
                    - role: user
                      content: Write a short poem about spring.
                  max_completion_tokens: 131072
      responses:
        '200':
          description: Chat erfolgreich generiert
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
              examples:
                with_thinking:
                  summary: Mit Reasoning-Inhalten
                  value:
                    id: 072514edea627212c7e226a55bcf4e2e
                    choices:
                      - finish_reason: stop
                        index: 0
                        message:
                          content: '0.05'
                          role: assistant
                          name: MiniMax AI
                          audio_content: ''
                          reasoning_content: >-
                            Let the ball cost x. Then 2x + 1 = 1.10, so x =
                            0.05.
                    created: 1792401901
                    model: MiniMax-M3.1-Flash
                    object: chat.completion
                    usage:
                      total_tokens: 281
                      total_characters: 0
                      prompt_tokens: 229
                      completion_tokens: 52
                      completion_tokens_details:
                        reasoning_tokens: 49
                      prompt_tokens_details:
                        cached_tokens: 187
                    input_sensitive: false
                    output_sensitive: false
                    input_sensitive_type: 0
                    output_sensitive_type: 0
                    output_sensitive_int: 0
                    base_resp:
                      status_code: 0
                      status_msg: ''
                direct_answer:
                  summary: Direkte Antwort (ohne Reasoning-Inhalte)
                  value:
                    id: 072514cc3cee91b3222f36a2a386128f
                    choices:
                      - finish_reason: stop
                        index: 0
                        message:
                          content: >-
                            Recursion is a technique in which a function calls
                            itself to solve smaller instances of a problem.
                          role: assistant
                          name: MiniMax AI
                          audio_content: ''
                    created: 1792401868
                    model: MiniMax-M3.1-Flash
                    object: chat.completion
                    usage:
                      total_tokens: 219
                      total_characters: 0
                      prompt_tokens: 208
                      completion_tokens: 11
                      prompt_tokens_details:
                        cached_tokens: 58
                    input_sensitive: false
                    output_sensitive: false
                    input_sensitive_type: 0
                    output_sensitive_type: 0
                    output_sensitive_int: 0
                    base_resp:
                      status_code: 0
                      status_msg: ''
                tool_calls:
                  summary: Werkzeugaufruf ausgelöst (finish_reason=tool_calls)
                  value:
                    id: 072514ce0ad459c5ac53494746f66488
                    choices:
                      - finish_reason: tool_calls
                        index: 0
                        message:
                          content: I'll check the stock for product demo-item-001.
                          role: assistant
                          name: MiniMax AI
                          tool_calls:
                            - id: call_function_fr79bzcw7n6k_1
                              type: function
                              function:
                                name: get_product_stock
                                arguments: '{"product_id": "demo-item-001"}'
                              index: 0
                          audio_content: ''
                    created: 1792401870
                    model: MiniMax-M3.1-Flash
                    object: chat.completion
                    usage:
                      total_tokens: 483
                      total_characters: 0
                      prompt_tokens: 446
                      completion_tokens: 37
                      prompt_tokens_details:
                        cached_tokens: 227
                    input_sensitive: false
                    output_sensitive: false
                    input_sensitive_type: 0
                    output_sensitive_type: 0
                    output_sensitive_int: 0
                    base_resp:
                      status_code: 0
                      status_msg: ''
                length:
                  summary: Ausgabelimit erreicht (finish_reason=length)
                  value:
                    id: 072513cf5d12aa74e53c700e4e1edf9e
                    choices:
                      - finish_reason: length
                        index: 0
                        message:
                          content: ''
                          role: assistant
                          name: MiniMax AI
                          audio_content: ''
                          reasoning_content: I need to explain the process step by step.
                    created: 1792401615
                    model: MiniMax-M3.1-Flash
                    object: chat.completion
                    usage:
                      total_tokens: 219
                      total_characters: 0
                      prompt_tokens: 211
                      completion_tokens: 8
                      completion_tokens_details:
                        reasoning_tokens: 8
                      prompt_tokens_details:
                        cached_tokens: 184
                    input_sensitive: false
                    output_sensitive: false
                    input_sensitive_type: 0
                    output_sensitive_type: 0
                    output_sensitive_int: 0
                    base_resp:
                      status_code: 0
                      status_msg: ''
        '400':
          description: Ungültige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  message: Invalid request parameters
                  type: invalid_request_error
                  param: ''
                  code: null
        '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: Kontingent unzureichend, Aufladung erforderlich
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 402
                  message: Insufficient quota
                  type: insufficient_quota_error
        '403':
          description: Zugriff auf dieses Modell verweigert
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 403
                  message: Access denied for this model
                  type: permission_error
                  param: model
        '404':
          description: Ressource nicht gefunden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 404
                  message: Specified model not found
                  type: not_found_error
                  param: model
        '413':
          description: Anfragetext zu groß
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 413
                  message: Request body too large
                  type: request_too_large_error
                  param: messages
        '429':
          description: Anfragelimit überschritten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 429
                  message: Rate limit exceeded
                  type: rate_limit_error
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 500
                  message: Internal server error
                  type: internal_server_error
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: 502
                  message: Bad gateway
                  type: bad_gateway_error
        '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
components:
  schemas:
    ChatCompletionRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          description: Name des Chat-Modells
          enum:
            - MiniMax-M3.1-Flash
          example: MiniMax-M3.1-Flash
        messages:
          type: array
          description: >-
            Liste der Konversationsnachrichten, unterstützt Mehrrundendialog


            Nachrichten mit unterschiedlichen Rollen haben unterschiedliche
            Feldstrukturen; wählen Sie die entsprechende Rolle zur Ansicht aus
          items:
            oneOf:
              - $ref: '#/components/schemas/SystemMessage'
              - $ref: '#/components/schemas/UserMessage'
              - $ref: '#/components/schemas/AssistantRequestMessage'
              - $ref: '#/components/schemas/ToolMessage'
            discriminator:
              propertyName: role
              mapping:
                system: '#/components/schemas/SystemMessage'
                user: '#/components/schemas/UserMessage'
                assistant: '#/components/schemas/AssistantRequestMessage'
                tool: '#/components/schemas/ToolMessage'
          minItems: 1
        reasoning_effort:
          type: string
          description: >-
            Reasoning-Tiefe, Standardwert: `max`. Höhere Stufen erhöhen in der
            Regel den Verbrauch an Reasoning-Tokens und die Antwortzeit.
          enum:
            - low
            - medium
            - high
            - xhigh
            - max
          default: max
          example: high
        thinking:
          type: object
          description: >-
            Reasoning-Modus. MiniMax-M3.1-Flash verwendet immer Reasoning. Nur
            `adaptive` wird unterstützt; das Feld kann weggelassen werden
          properties:
            type:
              type: string
              enum:
                - adaptive
              default: adaptive
        reasoning_split:
          type: boolean
          description: >-
            Legt fest, ob Reasoning-Inhalte separat zurückgegeben werden. Nur
            `true` wird unterstützt; die Inhalte werden über `reasoning_content`
            zurückgegeben. Das Feld kann weggelassen werden
          enum:
            - true
          default: true
        temperature:
          type: number
          description: >-
            Sampling-Temperatur; steuert die Zufälligkeit der Ausgabe


            **Hinweise**:

            - Bereich: `[0, 2]`, Standardwert: 1

            - Niedrigere Werte erzeugen deterministischere, höhere Werte
            vielfältigere Ausgaben


            **Empfehlung**: Ändern Sie nicht gleichzeitig temperature und top_p
          minimum: 0
          maximum: 2
          default: 1
          example: 1
        top_p:
          type: number
          description: >-
            Parameter für Nucleus Sampling


            **Hinweise**:

            - Bestimmt die kumulative Wahrscheinlichkeit der Tokens, aus denen
            ausgewählt wird

            - Beispielsweise bedeutet 0.95, dass aus Tokens mit einer
            kumulativen Wahrscheinlichkeit von 95% ausgewählt wird

            - Bereich: `[0, 1]`, Standardwert: 0.95


            **Empfehlung**: Ändern Sie nicht gleichzeitig temperature und top_p
          minimum: 0
          maximum: 1
          default: 0.95
          example: 0.95
        max_completion_tokens:
          type: integer
          description: >-
            Maximale Länge der generierten Ausgabe in Tokens, **einschließlich
            Reasoning und Antwort**


            **Hinweise**:

            - Empfohlen: **131,072** (128K), Maximum: **524,288** (512K)

            - Bei einem zu niedrigen Wert kann das Limit bereits während des
            Reasonings erreicht werden. In diesem Fall wird
            `finish_reason=length` mit leerem `content` zurückgegeben
          minimum: 1
          maximum: 524288
          example: 131072
        stream:
          type: boolean
          description: >-
            Ob die Antwort im Streaming-Modus zurückgegeben wird


            - `true`: Streaming-Antwort, gibt Inhalte in Echtzeit-Chunks über
            SSE (Server-Sent Events) zurück

            - `false`: Wartet auf die vollständige Antwort, bevor sie
            zurückgegeben wird (Standard)
          default: false
          example: false
        stream_options:
          type: object
          description: |-
            Optionen für die Streaming-Antwort

            Nur wirksam, wenn `stream=true`
          properties:
            include_usage:
              type: boolean
              description: >-
                Legt fest, ob vor dem Ende des Streams ein zusätzlicher
                Datenblock zurückgegeben wird, der ausschließlich die
                `usage`-Statistik enthält
        tools:
          type: array
          description: >-
            Liste der Werkzeugdefinitionen für Function Calling


            Jedes Werkzeug benötigt einen Namen, eine Beschreibung und ein
            Parameterschema
          items:
            $ref: '#/components/schemas/Tool'
        tool_choice:
          type: string
          description: >-
            Strategie zur Werkzeugauswahl. Nur `auto` wird unterstützt; das
            Modell entscheidet, ob ein Werkzeug aufgerufen wird
          enum:
            - auto
          default: auto
        max_tokens:
          type: integer
          description: >-
            Veralteter Parameter zur Begrenzung der Generierungslänge


            **Hinweis**: Veraltet, bitte verwenden Sie stattdessen
            `max_completion_tokens`
          deprecated: true
          minimum: 1
        'n':
          type: integer
          description: Anzahl der generierten Antworten; nur `1` wird unterstützt
          enum:
            - 1
          default: 1
    ChatCompletionResponse:
      type: object
      properties:
        id:
          type: string
          description: Eindeutige Kennung für die Chat-Vervollständigung
          example: 0668a381bdc3c0ded310e27c9a46d16e7
        model:
          type: string
          description: Tatsächlich verwendeter Modellname
          example: MiniMax-M3.1-Flash
        object:
          type: string
          enum:
            - chat.completion
          description: Antworttyp
          example: chat.completion
        created:
          type: integer
          description: Erstellungszeitstempel (Unix-Sekunden)
          example: 1777026807
        choices:
          type: array
          description: Liste der Chat-Vervollständigungsoptionen
          items:
            $ref: '#/components/schemas/Choice'
        usage:
          $ref: '#/components/schemas/Usage'
        input_sensitive:
          type: boolean
          description: >-
            Ob der Eingabeinhalt einen Filter für sensible Wörter ausgelöst hat.
            Wenn die Eingabe schwerwiegend gegen die Richtlinien verstößt, gibt
            die API einen Inhaltsverstoßfehler mit leerem Antwortinhalt zurück
        input_sensitive_type:
          type: integer
          description: >-
            Art des durch die Eingabe ausgelösten sensiblen Worts (wird
            zurückgegeben, wenn `input_sensitive` true ist): 1 schwerer Verstoß;
            2 Pornografie; 3 Werbung; 4 verbotener Inhalt; 5 beleidigende
            Sprache; 6 Gewalt/Terrorismus; 7 Sonstiges
        output_sensitive:
          type: boolean
          description: Ob der Ausgabeinhalt einen Filter für sensible Wörter ausgelöst hat
        output_sensitive_type:
          type: integer
          description: Art des durch die Ausgabe ausgelösten sensiblen Worts
        base_resp:
          type: object
          description: Statuscode und Fehlerdetails
          properties:
            status_code:
              type: integer
              description: >-
                Statuscode. `0` bedeutet Erfolg; andere Codes umfassen `1002`
                für Ratenbegrenzung, `1008` für unzureichendes Guthaben, `1039`
                für Überschreitung des Token-Limits, `2013` für Parameterfehler
                usw.
            status_msg:
              type: string
              description: Fehlerdetails
        output_sensitive_int:
          type: integer
          description: >-
            Numerische Kennung der Kategorie sensibler Wörter, die in der
            Ausgabe erkannt wurde
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type:
                - integer
                - string
                - 'null'
              description: HTTP-Status-Fehlercode
            message:
              type: string
              description: Fehlerbeschreibung
            type:
              type: string
              description: Fehlertyp
            param:
              type: string
              description: Name des betroffenen Parameters
    SystemMessage:
      title: System Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - system
          description: Rollenkennung, fest auf `system` gesetzt
        content:
          type: string
          description: >-
            Inhalt des System-Prompts, dient zum Festlegen der Rolle und des
            Verhaltens der KI
        name:
          type: string
          description: >-
            Name des Teilnehmers, dient zur Unterscheidung verschiedener Quellen
            von System-Prompts
    UserMessage:
      title: User Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
          description: Rollenkennung, fest auf `user` gesetzt
        content:
          description: >-
            Inhalt der Benutzernachricht


            **Hinweise**:

            - Für reinen Text übergeben Sie direkt eine Zeichenkette

            - Für multimodale Eingaben übergeben Sie ein Array von
            Inhaltsblöcken; unterstützt werden `text`, `image_url` (Bild) und
            `video_url` (Video)

            - Maximale Größe des Anfragekörpers: 64 MB
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentPart'
        name:
          type: string
          description: >-
            Name des Teilnehmers, dient zur Unterscheidung verschiedener
            Benutzer
    AssistantRequestMessage:
      title: Assistant Message
      type: object
      required:
        - role
      properties:
        role:
          type: string
          enum:
            - assistant
          description: Rollenkennung, fest auf `assistant` gesetzt
        content:
          type:
            - string
            - 'null'
          description: >-
            Inhalt der Assistentennachricht


            **Hinweise**:

            - Dient zum Übergeben historischer Assistentenantworten in
            Mehrrundengesprächen

            - Kann `null` sein, wenn `tool_calls` vorhanden ist
        reasoning_content:
          type: string
          description: >-
            Reasoning-Inhalte aus der vorherigen Antwort; bei Konversationen mit
            mehreren Runden unverändert zurückgeben
        name:
          type: string
          description: Name des Teilnehmers
        tool_calls:
          type: array
          description: >-
            Liste der Werkzeugaufrufe


            Dient zum Übergeben historischer Werkzeugaufruf-Informationen in
            Mehrrundengesprächen
          items:
            type: object
            properties:
              id:
                type: string
                description: Eindeutige Kennung für den Werkzeugaufruf
              type:
                type: string
                enum:
                  - function
              function:
                type: object
                properties:
                  name:
                    type: string
                    description: Name der aufgerufenen Funktion
                  arguments:
                    type: string
                    description: Funktionsargumente (JSON-Zeichenkette)
    ToolMessage:
      title: Tool Message
      type: object
      required:
        - role
        - content
        - tool_call_id
      properties:
        role:
          type: string
          enum:
            - tool
          description: Rollenkennung, fest auf `tool` gesetzt
        content:
          type: string
          description: Inhalt des Werkzeugaufruf-Ergebnisses
        tool_call_id:
          type: string
          description: >-
            Werkzeugaufruf-ID


            Entspricht dem Feld `id`, das in `tool_calls` der
            Assistentennachricht zurückgegeben wird
    Tool:
      type: object
      required:
        - type
        - function
      properties:
        type:
          type: string
          enum:
            - function
          description: Werkzeugtyp, derzeit wird nur `function` unterstützt
        function:
          type: object
          required:
            - name
            - parameters
          properties:
            name:
              type: string
              description: >-
                Name der aufzurufenden Funktion


                **Hinweise**:

                - Muss aus den Zeichen a-z, A-Z, 0-9 bestehen oder Unterstriche
                und Bindestriche enthalten

                - Maximale Länge beträgt 64 Zeichen
            description:
              type: string
              description: >-
                Funktionsbeschreibung, hilft dem Modell zu verstehen, wann und
                wie diese Funktion aufgerufen wird
            parameters:
              type: object
              description: >-
                Eingabeparameter der Funktion, beschrieben als
                JSON-Schema-Objekt
    Choice:
      type: object
      properties:
        index:
          type: integer
          description: Index der Option
          example: 0
        message:
          $ref: '#/components/schemas/AssistantMessage'
        finish_reason:
          type: string
          description: |-
            Abschlussgrund

            - `stop`: Natürlicher Abschluss oder Stoppsequenz ausgelöst
            - `length`: Maximales Token-Limit erreicht
            - `content_filter`: Inhalt durch Sicherheitsrichtlinie gefiltert
            - `tool_calls`: Modell hat ein Werkzeug aufgerufen
          enum:
            - stop
            - length
            - content_filter
            - tool_calls
          example: stop
    Usage:
      type: object
      description: Token-Nutzungsstatistik
      properties:
        total_tokens:
          type: integer
          description: Gesamtanzahl der verbrauchten Tokens
          example: 1604
        total_characters:
          type: integer
          description: Gesamtanzahl der verbrauchten Zeichen
          example: 0
        prompt_tokens:
          type: integer
          description: Gesamtzahl der Eingabetokens einschließlich Cache-Treffern
          example: 1365
        completion_tokens:
          type: integer
          description: Anzahl der Ausgabetokens (einschließlich des Denkanteils)
          example: 239
        completion_tokens_details:
          type: object
          description: Detaillierte Aufschlüsselung der Ausgabe-Tokens
          properties:
            reasoning_tokens:
              type: integer
              description: Anzahl der Reasoning-Tokens
              example: 49
        prompt_tokens_details:
          type: object
          description: Detaillierte Aufschlüsselung der Eingabe-Tokens
          properties:
            cached_tokens:
              type: integer
              description: >-
                Anzahl der aus dem Cache gelesenen Eingabetokens


                Cache-Treffer werden zum Cache-Tarif abgerechnet. Nicht gecachte
                Tokens = `prompt_tokens - cached_tokens`; diese werden zum
                regulären Eingabetarif abgerechnet
              example: 114
    ContentPart:
      type: object
      description: >-
        Multimodaler Content-Part. Deklarieren Sie den Typ über `type` und
        füllen Sie nur die zu diesem Typ passenden Felder aus
      properties:
        type:
          type: string
          enum:
            - text
            - image_url
            - video_url
          description: |-
            Inhaltstyp

            - `text`: Textblock
            - `image_url`: Bildeingabe
            - `video_url`: Videoeingabe
        text:
          type: string
          description: Textinhalt, wenn `type=text`
        image_url:
          type: object
          description: >-
            Bildeingabe (wenn `type=image_url`). Maximal 10 MB pro Bild,
            unterstützt JPEG / PNG / GIF / WEBP
          required:
            - url
          properties:
            url:
              type: string
              description: Bild-URL oder eine mit `data:` beginnende base64-data-URL
            detail:
              type: string
              description: >-
                Steuert die Auflösung der Bildanalyse


                - `low`: Niedrige Präzision, verbraucht weniger Tokens

                - `default`: Standardpräzision

                - `high`: Hohe Präzision, erkennt mehr Details, verbraucht aber
                mehr Tokens
              enum:
                - low
                - default
                - high
              default: default
            max_long_side_pixel:
              type: integer
              description: Maximale Pixelgrenze für die längste Seite des Bildes
              minimum: 1
        video_url:
          type: object
          description: >-
            Videoeingabe (wenn `type=video_url`). Maximal 50 MB für URL- /
            Base64-Video, unterstützt MP4 / AVI / MOV / MKV
          required:
            - url
          properties:
            url:
              type: string
              description: >-
                Video-URL, eine base64-Daten-URL, die mit `data:` beginnt, oder
                eine Dateireferenz im Format `mm_file://{file_id}`
            detail:
              type: string
              description: Steuert die Auflösung der Video-Frame-Extraktion
              enum:
                - low
                - default
                - high
              default: default
            fps:
              type: number
              description: >-
                Abtastrate für Videoframes, Standardwert: 1, Bereich: [0.2, 5].
                Eine höhere Abtastrate hilft, Änderungen im Bild zu erfassen,
                und erhöht in der Regel den Token-Verbrauch.
              minimum: 0.2
              maximum: 5
              default: 1
            max_long_side_pixel:
              type: integer
              description: Maximale Pixelgrenze für die längste Seite von Video-Frames
              minimum: 1
    AssistantMessage:
      type: object
      properties:
        role:
          type: string
          description: Rolle des Nachrichtenabsenders
          enum:
            - assistant
          example: assistant
        content:
          type:
            - string
            - 'null'
          description: >-
            Endgültiger Antwortinhalt ohne Reasoning-Prozess (kann bei einem
            Werkzeugaufruf `null` sein)
          example: '0.05'
        reasoning_content:
          type: string
          description: >-
            Reasoning-Inhalte. Bei einfachen Fragen können sie entfallen; in
            diesem Fall wird das Feld nicht zurückgegeben
          example: Let the ball cost x. Then 2x + 1 = 1.10, so x = 0.05.
        name:
          type: string
          description: Name des Absenders
        audio_content:
          type: string
          description: >-
            Audioinhalt (leere Zeichenkette bei reinen
            Textkonversationsszenarien)
        tool_calls:
          type: array
          description: >-
            Liste der Werkzeugaufrufe (wird zurückgegeben, wenn das Modell
            beschließt, ein Werkzeug aufzurufen)
          items:
            type: object
            properties:
              id:
                type: string
                description: Eindeutige Kennung für den Werkzeugaufruf
              type:
                type: string
                enum:
                  - function
              function:
                type: object
                properties:
                  name:
                    type: string
                    description: Name der aufgerufenen Funktion
                  arguments:
                    type: string
                    description: Funktionsargumente (JSON-Zeichenkette)
              index:
                type: integer
                description: Index des Werkzeugaufrufs
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Alle APIs erfordern eine Bearer-Token-Authentifizierung


        **API-Schlüssel abrufen**:


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


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

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

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