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

# MiniMax-M3 - Anthropic-kompatible API

> - Verwenden Sie das Anthropic Messages-Protokoll, um das MiniMax-M3 Modell aufzurufen
- Anfrage- / Antwortstruktur richtet sich nach der Anthropic API
- **Multimodales Gespräch**: `content` unterstützt Text- und Bildinhaltsblöcke
- **System-Prompts**: Werden über das Feld `system` der obersten Ebene übergeben
- **Denkmodus**: Wird über das `thinking`-Objekt gesteuert; der Denkinhalt wird über einen `content[type=thinking]`-Block zurückgegeben
- **Streaming-Ausgabe**: SSE-Event-Stream
- **Werkzeugaufrufe**: Kompatibel mit dem Anthropic `tool_use` / `tool_result`-Ablauf

<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/minimax-m3-messages.json POST /v1/messages
openapi: 3.1.0
info:
  title: MiniMax-M3 Anthropic-kompatible Schnittstelle
  description: >-
    Vollständige API-Referenz für den Aufruf von MiniMax-M3 über das Anthropic
    Messages-Protokoll.


    **Kompatibilitätshinweise**:

    - Pfad: `/v1/messages` (Anthropic-Standardpfad)

    - Anfrage- / Antwortstruktur richtet sich nach der Anthropic Messages API

    - Unterstützte Felder: `model` `messages` (erforderlich) `system`
    `max_tokens` `temperature` `top_p` `stream` `thinking` `tools` `tool_choice`
    `metadata`


    **Modellfähigkeiten**:

    - Maximale Ausgabe: **524.288 Tokens** (512K), empfohlen **131.072 Tokens**
    (128K)

    - Denkmodus: `thinking` Standardwert `adaptive`, der Denkinhalt wird über
    einen `content[type=thinking]`-Block zurückgegeben

    - Multimodale Eingabe: Unterstützt Text- und Bildinhaltsblöcke
  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: Messages
    description: Endpunkte des Anthropic Messages-Protokolls
paths:
  /v1/messages:
    post:
      tags:
        - Messages
      summary: MiniMax-M3 Messages-Schnittstelle (Anthropic-kompatibel)
      description: >-
        - Verwenden Sie das Anthropic Messages-Protokoll, um das MiniMax-M3
        Modell aufzurufen

        - Anfrage- / Antwortstruktur richtet sich nach der Anthropic API

        - **Multimodales Gespräch**: `content` unterstützt Text- und
        Bildinhaltsblöcke

        - **System-Prompts**: Werden über das Feld `system` der obersten Ebene
        übergeben

        - **Denkmodus**: Wird über das `thinking`-Objekt gesteuert; der
        Denkinhalt wird über einen `content[type=thinking]`-Block zurückgegeben

        - **Streaming-Ausgabe**: SSE-Event-Stream

        - **Werkzeugaufrufe**: Kompatibel mit dem Anthropic `tool_use` /
        `tool_result`-Ablauf
      operationId: createMessageMiniMaxM3
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMessageRequest'
            examples:
              simple:
                summary: Minimale lauffähige Anfrage
                value:
                  model: MiniMax-M3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Hallo, Welt
              system_prompt:
                summary: Mit System-Prompt + Mehrrunden
                value:
                  model: MiniMax-M3
                  max_tokens: 2048
                  system: Du bist ein erfahrener technischer Redakteur.
                  messages:
                    - role: user
                      content: Beschreibe MiniMax-M3 in drei Sätzen.
              image_understanding:
                summary: Bildverständnis (multimodale Inhaltsblöcke)
                value:
                  model: MiniMax-M3
                  max_tokens: 500
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: Was ist auf diesem Bild zu sehen?
                        - type: image
                          source:
                            type: url
                            url: https://example.com/image.jpeg
              disable_thinking:
                summary: Denkmodus deaktivieren
                value:
                  model: MiniMax-M3
                  max_tokens: 512
                  thinking:
                    type: disabled
                  messages:
                    - role: user
                      content: 'In einem Satz: Was ist die Hauptstadt von Japan?'
              tool_use:
                summary: Werkzeugaufruf (Anthropic tool_use-Stil)
                value:
                  model: MiniMax-M3
                  max_tokens: 2048
                  messages:
                    - role: user
                      content: Prüfe das Wetter in San Francisco und sage es mir
                  tools:
                    - name: get_weather
                      description: Aktuelles Wetter für einen angegebenen Ort abfragen
                      input_schema:
                        type: object
                        properties:
                          location:
                            type: string
                            description: >-
                              Stadt und Bundesland/Land, z. B.: San Francisco,
                              US
                        required:
                          - location
                  tool_choice:
                    type: auto
              streaming:
                summary: Streaming-Ausgabe (SSE)
                value:
                  model: MiniMax-M3
                  max_tokens: 1024
                  stream: true
                  messages:
                    - role: user
                      content: Schreibe ein kurzes Gedicht über den Frühling
      responses:
        '200':
          description: Message-Objekt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              examples:
                thinking_adaptive:
                  summary: Thinking adaptiv (mit Thinking-Inhaltsblock)
                  value:
                    id: 066a381bdc3c0ded310e27c9a46d16e7
                    type: message
                    role: assistant
                    model: MiniMax-M3
                    content:
                      - type: thinking
                        thinking: >-
                          Der Benutzer fragt nach der Hauptstadt von Japan, was
                          eine grundlegende Geografiefrage ist. Die Antwort
                          lautet Tokio, ich kann sie direkt geben.
                        signature: 066a381bdc3c0ded310e27c9a46d16e7
                      - type: text
                        text: Die Hauptstadt von Japan ist **Tokio**.
                    stop_reason: end_turn
                    usage:
                      input_tokens: 7
                      output_tokens: 77
                      cache_creation_input_tokens: 0
                      cache_read_input_tokens: 0
                tool_use:
                  summary: Werkzeugaufruf ausgelöst (stop_reason=tool_use)
                  value:
                    id: 066a381bdc3c0ded310e27c9a46d16e8
                    type: message
                    role: assistant
                    model: MiniMax-M3
                    content:
                      - type: text
                        text: >-
                          Klar, ich schaue für dich das Wetter in San Francisco
                          nach.
                      - type: tool_use
                        id: toolu_01abc123xyz
                        name: get_weather
                        input:
                          location: San Francisco, US
                    stop_reason: tool_use
                    usage:
                      input_tokens: 35
                      output_tokens: 68
                      cache_creation_input_tokens: 0
                      cache_read_input_tokens: 0
        '400':
          description: Ungültige Anfrageparameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                request_id: req_xxx
                error:
                  type: invalid_request_error
                  message: Invalid request
        '401':
          description: Authentifizierungsfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: authentication_error
                  message: Authentication error
        '402':
          description: Kontingent unzureichend
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: billing_error
                  message: Insufficient quota
        '403':
          description: Berechtigungsfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: permission_error
                  message: Permission denied
        '404':
          description: Modell oder Ressource nicht gefunden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: not_found_error
                  message: Model not found
        '429':
          description: Anfragelimit überschritten
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: rate_limit_error
                  message: Rate limited
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Dienst vorübergehend nicht verfügbar
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateMessageRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          description: Aufzurufendes Modell
          enum:
            - MiniMax-M3
          example: MiniMax-M3
        max_tokens:
          type: integer
          description: >-
            Obergrenze für die Länge des generierten Inhalts (in Tokens)


            **Hinweise**:

            - MiniMax-M3 empfohlen **131.072** (128K), maximal **524.288**
            (512K)

            - Vom Nachdenken erzeugte Tokens zählen ebenfalls zu dieser Grenze

            - Inhalte, die die Grenze überschreiten, werden abgeschnitten; wenn
            die Generierung aufgrund von `length` unterbrochen wird, versuchen
            Sie, diesen Wert zu erhöhen
          minimum: 1
          maximum: 524288
          example: 1024
        messages:
          type: array
          description: >-
            Liste der Konversationsnachrichten, abwechselnd user- /
            assistant-Runden


            **Hinweise**:

            - Muss mindestens 1 Nachricht enthalten

            - Die letzte Nachricht ist typischerweise `role=user`
          items:
            $ref: '#/components/schemas/InputMessage'
          minItems: 1
        system:
          description: >-
            System-Prompt, dient zum Festlegen der Rolle und des Verhaltens der
            KI


            **Hinweise**:

            - Unterstützt eine Zeichenkette oder ein Array von Zeichenketten

            - Wird über das `system`-Feld der obersten Ebene übergeben
          oneOf:
            - type: string
              example: You are a helpful assistant.
            - type: array
              description: >-
                System-Prompt im Format eines Inhaltsblock-Arrays. Textblöcke
                können cache_control enthalten
              items:
                type: object
                required:
                  - type
                  - text
                properties:
                  type:
                    type: string
                    enum:
                      - text
                  text:
                    type: string
                  cache_control:
                    $ref: '#/components/schemas/CacheControl'
        temperature:
          type: number
          description: >-
            Sampling-Temperatur


            **Hinweise**:

            - Bereich: `[0, 2]`

            - Standard 1; höhere Werte erzeugen divergentere Ausgaben,
            niedrigere Werte erzeugen deterministischere Ausgaben
          minimum: 0
          maximum: 2
          default: 1
          example: 1
        top_p:
          type: number
          description: >-
            Nucleus-Sampling-Schwellenwert


            **Hinweise**:

            - Bereich: `[0, 1]`, MiniMax-M3 Standard 0,95

            - Es wird empfohlen, temperature und top_p nicht gleichzeitig
            anzupassen
          minimum: 0
          maximum: 1
          default: 0.95
          example: 0.95
        stream:
          type: boolean
          description: >-
            Ob über SSE-Streaming zurückgegeben wird


            - `true`: Server-Sent Events Streaming-Antwort

            - `false`: Wartet auf die vollständige Antwort, bevor sie
            zurückgegeben wird (Standard)
          default: false
          example: false
        thinking:
          type: object
          description: >-
            Steuert tiefes Nachdenken. Wenn Nachdenken aktiviert ist, müssen
            Thinking-Blöcke in Mehrrundengesprächen unverändert zurückgegeben
            werden


            **Hinweise**:

            - **Standardwert `adaptive`**: Das Modell entscheidet adaptiv anhand
            der Schwierigkeit des Problems, ob tiefes Nachdenken eingesetzt wird

            - Wenn aktiviert, enthält das Antwort-`content`-Array einen
            Reasoning-Block mit `type="thinking"` (wird als Ausgabe-Tokens
            berechnet)
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - disabled
                - adaptive
              description: >-
                - `adaptive`: Das Modell entscheidet selbstständig, ob
                Nachdenken erforderlich ist (empfohlener Standardwert)

                - `disabled`: Nachdenken deaktivieren, direkt antworten
              default: adaptive
        tools:
          type: array
          description: |-
            Liste der Werkzeugdefinitionen

            **Hinweise**:
            - Folgt der Anthropic-Werkzeugdefinitionsspezifikation
            - `input_schema` verwendet ein JSON-Schema-Objekt
          items:
            $ref: '#/components/schemas/Tool'
        tool_choice:
          type: object
          description: >-
            Strategie zur Werkzeugauswahl. Es werden nur auto und none
            unterstützt
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - auto
                - none
              description: >-
                - `auto`: Das Modell entscheidet automatisch, ob ein Werkzeug
                aufgerufen wird (Standard, wenn Werkzeuge bereitgestellt werden)

                - `none`: Werkzeugaufrufe verbieten
        metadata:
          type: object
          description: Anfrage-Metadaten
          properties:
            user_id:
              type: string
              description: >-
                Eindeutige Kennung, die den Endbenutzer repräsentiert, kann zur
                Überwachung und Missbrauchserkennung pro Benutzer verwendet
                werden (die Verwendung einer gehashten ID wird empfohlen)
    MessageResponse:
      type: object
      description: Nachrichtenantwort im Anthropic-Stil
      properties:
        id:
          type: string
          description: Eindeutige Nachrichten-ID
        type:
          type: string
          enum:
            - message
          description: Typ des Antwortobjekts
        role:
          type: string
          enum:
            - assistant
        model:
          type: string
          description: Tatsächlich verwendetes Modell
          example: MiniMax-M3
        content:
          type: array
          description: |-
            Liste der Antwortinhaltsblöcke

            **Mögliche Blocktypen**:
            - `thinking`: Reasoning-Prozess (nur wenn Nachdenken aktiv ist)
            - `text`: Endgültiger Antworttext
            - `tool_use`: Vom Modell initiierter Werkzeugaufruf
          items:
            $ref: '#/components/schemas/OutputContentBlock'
        stop_reason:
          type: string
          description: |-
            Stoppgrund

            - `end_turn`: Natürlicher Abschluss
            - `max_tokens`: max_tokens-Limit erreicht
            - `tool_use`: Modell hat einen Werkzeugaufruf ausgelöst
          enum:
            - end_turn
            - max_tokens
            - tool_use
        usage:
          $ref: '#/components/schemas/AnthropicUsage'
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - error
        error:
          type: object
          properties:
            type:
              type: string
              description: >-
                Fehlertyp (z. B. invalid_request_error / authentication_error /
                billing_error usw.)
            message:
              type: string
              description: Fehlerbeschreibung
        request_id:
          type: string
          description: Anfrage-Tracking-ID
    InputMessage:
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
            - assistant
            - user_system
            - group
            - sample_message_user
            - sample_message_ai
          description: >-
            Rolle des Nachrichtenabsenders. MiniMax-M3 verwendet abwechselnde
            user- / assistant-Nachrichten


            - `user`: Benutzernachricht (wird auch zum Zurückgeben von
            `tool_result`-Blöcken verwendet)

            - `assistant`: Historische Assistentenantwort (kann `text` /
            `thinking` / `tool_use`-Blöcke enthalten)


            Hinweis: **`system` wird hier nicht akzeptiert**: System-Prompts
            sollten über das `system`-Feld der obersten Ebene übergeben werden.
        content:
          description: >-
            Nachrichteninhalt


            **Hinweise**:

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

            - Für strukturierte Inhalte übergeben Sie ein Inhaltsblock-Array
            (`text` / `image` / `video` / `tool_use` / `tool_result` /
            `thinking`)
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentBlock'
    CacheControl:
      type: object
      description: Prompt-Caching-Markierung
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - ephemeral
          description: Typ der Cache-Markierung
    Tool:
      type: object
      required:
        - name
        - input_schema
      properties:
        name:
          type: string
          description: |-
            Werkzeugname

            **Hinweise**:
            - Nur `a-zA-Z0-9_-` erlaubt
            - Maximal 64 Zeichen
        description:
          type: string
          description: >-
            Werkzeugbeschreibung, hilft dem Modell zu bestimmen, wann es
            aufgerufen wird
        input_schema:
          type: object
          description: |-
            JSON-Schema-Objekt für die Werkzeug-Eingabeparameter

            **Hinweise**:
            - `type` muss `object` sein
            - Sollte `properties` und `required` deklarieren
        cache_control:
          $ref: '#/components/schemas/CacheControl'
    OutputContentBlock:
      type: object
      description: Inhaltsblock in der Antwort
      properties:
        type:
          type: string
          enum:
            - text
            - thinking
            - tool_use
        text:
          type: string
          description: Text, wenn type=`text`
        thinking:
          type: string
          description: Reasoning-Prozesstext, wenn type=`thinking`
        signature:
          type: string
          description: >-
            Integritätssignatur, wenn type=`thinking`, wird zur Kontextprüfung
            über mehrere Runden verwendet
        id:
          type: string
          description: Werkzeugaufruf-ID, wenn type=`tool_use`
        name:
          type: string
          description: Werkzeugname, wenn type=`tool_use`
        input:
          type: object
          description: Vom Modell generierte JSON-Eingabeparameter, wenn type=`tool_use`
    AnthropicUsage:
      type: object
      description: Token-Nutzungsstatistik (Anthropic-Spezifikation)
      properties:
        input_tokens:
          type: integer
          description: Anzahl der Eingabe-Tokens (nicht zwischengespeicherter Anteil)
          example: 7
        output_tokens:
          type: integer
          description: Anzahl der Ausgabe-Tokens (einschließlich Nachdenken)
          example: 77
        cache_creation_input_tokens:
          type: integer
          description: Für die Cache-Erstellung verwendete Eingabe-Tokens
          example: 0
        cache_read_input_tokens:
          type: integer
          description: Aus dem Cache gelesene Eingabe-Tokens
          example: 0
    ContentBlock:
      type: object
      description: |-
        Nachrichteninhaltsblock

        **Unterstützte Typen**:
        - `text`: Textinhalt
        - `image`: Bildeingabe (nur MiniMax-M3)
        - `video`: Videoeingabe (nur MiniMax-M3)
        - `tool_use`: Vorherigen Assistenten-Werkzeugaufruf zurückgeben
        - `tool_result`: Ergebnis der Werkzeugausführung
        - `thinking`: Vorherigen Assistenten-Denkinhalt zurückgeben
        - `mid_conv_system`: Systemanweisung mitten im Gespräch
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - text
            - image
            - video
            - tool_use
            - tool_result
            - thinking
            - mid_conv_system
        text:
          type: string
          description: Textinhalt, wenn type=`text`
        source:
          $ref: '#/components/schemas/MediaSource'
          description: >-
            Bild- oder Videoquelle, wird verwendet, wenn type=`image` oder
            type=`video` (nur MiniMax-M3)
        id:
          type: string
          description: Werkzeugaufruf-ID (erforderlich für tool_use)
        name:
          type: string
          description: Werkzeugname (erforderlich für tool_use)
        input:
          type: object
          description: Werkzeug-Eingabeparameter (JSON-Objekt für tool_use)
        tool_use_id:
          type: string
          description: >-
            Zugehörige Werkzeugaufruf-ID (erforderlich für tool_result, wird
            tool_use.id zugeordnet)
        content:
          description: >-
            Ergebnis der Werkzeugausführung (tool_result), Zeichenkette oder
            Inhaltsblock-Array
          oneOf:
            - type: string
            - type: array
              items:
                type: object
        thinking:
          type: string
          description: >-
            Zurückzugebender Inhalt des Assistenten-Denkprozesses (wird
            verwendet, wenn type=`thinking`)
        signature:
          type: string
          description: >-
            Signatur für den zurückgegebenen Denkinhalt; muss zur Fortsetzung
            über mehrere Runden unverändert zurückgegeben werden
        cache_control:
          $ref: '#/components/schemas/CacheControl'
    MediaSource:
      type: object
      description: >-
        Medienquelle für Bild- oder Videoinhaltsblöcke


        - Bilder unterstützen JPEG / PNG / GIF / WEBP, maximal 10 MB pro Bild

        - Videos unterstützen MP4 / AVI / MOV / MKV, maximal 50 MB für URL /
        Base64
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - base64
            - url
          description: Typ der Medienquelle
        media_type:
          type: string
          description: Erforderlich für base64-Eingabe, z. B. `image/png` oder `video/mp4`
        data:
          type: string
          description: Base64-codierte Medienbytes
        url:
          type: string
          description: >-
            Öffentliche URL; Videos können auch Dateireferenzen im Format
            `mm_file://{file_id}` verwenden
        detail:
          type: string
          enum:
            - low
            - default
            - high
          default: default
          description: >-
            Verständnispräzision, Standardwert default. Höhere Auflösung
            verbraucht mehr Tokens
        fps:
          type: number
          minimum: 0.2
          maximum: 5
          default: 1
          description: >-
            Frame-Extraktionsrate des Videos, Standard 1, Bereich [0.2, 5].
            Höhere Werte sind empfindlicher gegenüber visuellen Änderungen und
            verbrauchen mehr Tokens
        max_long_side_pixel:
          type: integer
          minimum: 1
          description: >-
            Maximale Pixelbeschränkung für die längste Seite von Bildern oder
            Video-Frames
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle APIs erfordern eine Bearer-Token-Authentifizierung##


        **API-Key erhalten:**


        Besuchen Sie die
        [API-Key-Verwaltungsseite](https://evolink.ai/dashboard/keys), um Ihren
        API-Key zu erhalten


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

        ```

        Authorization: Bearer YOUR_API_KEY

        ```


        **Hinweis**: EvoLink verwendet für `/v1/messages` einheitlich die
        Bearer-Token-Authentifizierung.

````