> ## 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 - API compatible Anthropic

> - Utilisez le protocole Anthropic Messages pour appeler le modèle MiniMax-M3
- La structure des requêtes / réponses s'aligne sur l'API Anthropic
- **Conversation multimodale** : `content` prend en charge les blocs de contenu texte et image
- **Invites système** : transmises via le champ `system` de premier niveau
- **Mode réflexion** : contrôlé via l'objet `thinking` ; le contenu de réflexion est renvoyé via un bloc `content[type=thinking]`
- **Sortie en streaming** : flux d'événements SSE
- **Appel d'outils** : compatible avec le flux Anthropic `tool_use` / `tool_result`

<Note>
  **BaseURL** : la BaseURL par défaut est `https://direct.evolink.ai`, qui offre une meilleure prise en charge des modèles textuels et des connexions de longue durée. `https://api.evolink.ai` est le point de terminaison principal pour les services multimodaux et sert d'adresse de repli pour les modèles textuels.
</Note>


## OpenAPI

````yaml fr/api-manual/language-series/minimax-m3/minimax-m3-messages.json POST /v1/messages
openapi: 3.1.0
info:
  title: Interface MiniMax-M3 compatible Anthropic
  description: >-
    Référence complète de l'API pour appeler MiniMax-M3 via le protocole
    Anthropic Messages.


    **Notes de compatibilité** :

    - Chemin : `/v1/messages` (chemin standard Anthropic)

    - La structure des requêtes / réponses s'aligne sur l'API Anthropic Messages

    - Champs pris en charge : `model` `messages` (requis) `system` `max_tokens`
    `temperature` `top_p` `stream` `thinking` `tools` `tool_choice` `metadata`


    **Capacités du modèle** :

    - Sortie maximale : **524 288 tokens** (512K), recommandé **131 072 tokens**
    (128K)

    - Mode réflexion : `thinking` par défaut `adaptive`, le contenu de réflexion
    est renvoyé via un bloc `content[type=thinking]`

    - Entrée multimodale : prend en charge les blocs de contenu texte et image
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Production (recommandée)
  - url: https://api.evolink.ai
    description: URL alternative
security:
  - bearerAuth: []
tags:
  - name: Messages
    description: Points de terminaison du protocole Anthropic Messages
paths:
  /v1/messages:
    post:
      tags:
        - Messages
      summary: Interface Messages MiniMax-M3 (compatible Anthropic)
      description: >-
        - Utilisez le protocole Anthropic Messages pour appeler le modèle
        MiniMax-M3

        - La structure des requêtes / réponses s'aligne sur l'API Anthropic

        - **Conversation multimodale** : `content` prend en charge les blocs de
        contenu texte et image

        - **Invites système** : transmises via le champ `system` de premier
        niveau

        - **Mode réflexion** : contrôlé via l'objet `thinking` ; le contenu de
        réflexion est renvoyé via un bloc `content[type=thinking]`

        - **Sortie en streaming** : flux d'événements SSE

        - **Appel d'outils** : compatible avec le flux Anthropic `tool_use` /
        `tool_result`
      operationId: createMessageMiniMaxM3
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMessageRequest'
            examples:
              simple:
                summary: Requête exécutable minimale
                value:
                  model: MiniMax-M3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Bonjour, le monde
              system_prompt:
                summary: Avec invite système + multi-tours
                value:
                  model: MiniMax-M3
                  max_tokens: 2048
                  system: Vous êtes un éditeur technique expérimenté.
                  messages:
                    - role: user
                      content: Décrivez MiniMax-M3 en trois phrases.
              image_understanding:
                summary: Compréhension d'images (blocs de contenu multimodaux)
                value:
                  model: MiniMax-M3
                  max_tokens: 500
                  messages:
                    - role: user
                      content:
                        - type: text
                          text: Qu'y a-t-il dans cette image ?
                        - type: image
                          source:
                            type: url
                            url: https://example.com/image.jpeg
              disable_thinking:
                summary: Désactiver le mode réflexion
                value:
                  model: MiniMax-M3
                  max_tokens: 512
                  thinking:
                    type: disabled
                  messages:
                    - role: user
                      content: 'En une phrase : quelle est la capitale du Japon ?'
              tool_use:
                summary: Appel d'outil (style Anthropic tool_use)
                value:
                  model: MiniMax-M3
                  max_tokens: 2048
                  messages:
                    - role: user
                      content: Consulte la météo à San Francisco et dis-le-moi
                  tools:
                    - name: get_weather
                      description: Interroger la météo actuelle d'un lieu donné
                      input_schema:
                        type: object
                        properties:
                          location:
                            type: string
                            description: >-
                              Ville et état / pays, par exemple : San Francisco,
                              US
                        required:
                          - location
                  tool_choice:
                    type: auto
              streaming:
                summary: Sortie en streaming (SSE)
                value:
                  model: MiniMax-M3
                  max_tokens: 1024
                  stream: true
                  messages:
                    - role: user
                      content: Écris un court poème sur le printemps
      responses:
        '200':
          description: Objet message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              examples:
                thinking_adaptive:
                  summary: Réflexion adaptative (avec bloc de contenu thinking)
                  value:
                    id: 066a381bdc3c0ded310e27c9a46d16e7
                    type: message
                    role: assistant
                    model: MiniMax-M3
                    content:
                      - type: thinking
                        thinking: >-
                          L'utilisateur pose une question sur la capitale du
                          Japon, ce qui relève d'une connaissance géographique
                          de base. La réponse est Tokyo, je peux la donner
                          directement.
                        signature: 066a381bdc3c0ded310e27c9a46d16e7
                      - type: text
                        text: La capitale du Japon est **Tokyo**.
                    stop_reason: end_turn
                    usage:
                      input_tokens: 7
                      output_tokens: 77
                      cache_creation_input_tokens: 0
                      cache_read_input_tokens: 0
                tool_use:
                  summary: Appel d'outil déclenché (stop_reason=tool_use)
                  value:
                    id: 066a381bdc3c0ded310e27c9a46d16e8
                    type: message
                    role: assistant
                    model: MiniMax-M3
                    content:
                      - type: text
                        text: >-
                          D'accord, je vais consulter la météo à San Francisco
                          pour vous.
                      - 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: Paramètres de requête invalides
          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: Erreur d'authentification
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: authentication_error
                  message: Authentication error
        '402':
          description: Quota insuffisant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: billing_error
                  message: Insufficient quota
        '403':
          description: Erreur de permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: permission_error
                  message: Permission denied
        '404':
          description: Modèle ou ressource introuvable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: not_found_error
                  message: Model not found
        '429':
          description: Limite de fréquence dépassée
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: rate_limit_error
                  message: Rate limited
        '500':
          description: Erreur interne du serveur
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Passerelle incorrecte
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service temporairement indisponible
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateMessageRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          description: Modèle à appeler
          enum:
            - MiniMax-M3
          example: MiniMax-M3
        max_tokens:
          type: integer
          description: >-
            Limite supérieure de la longueur du contenu généré (en tokens)


            **Remarques** :

            - MiniMax-M3 recommandé **131 072** (128K), maximum **524 288**
            (512K)

            - Les tokens générés par la réflexion comptent également dans cette
            limite

            - Le contenu dépassant la limite sera tronqué ; si la génération est
            interrompue pour cause de `length`, essayez d'augmenter cette valeur
          minimum: 1
          maximum: 524288
          example: 1024
        messages:
          type: array
          description: >-
            Liste des messages de la conversation, en alternant les tours user /
            assistant


            **Remarques** :

            - Doit contenir au moins 1 message

            - Le dernier message est généralement `role=user`
          items:
            $ref: '#/components/schemas/InputMessage'
          minItems: 1
        system:
          description: >-
            Invite système, utilisée pour définir le rôle et le comportement de
            l'IA


            **Remarques** :

            - Prend en charge une chaîne ou un tableau de chaînes

            - Transmis via le champ `system` de premier niveau
          oneOf:
            - type: string
              example: You are a helpful assistant.
            - type: array
              description: >-
                Invite système au format tableau de blocs de contenu. Les blocs
                de texte peuvent inclure cache_control
              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: >-
            Température d'échantillonnage


            **Remarques** :

            - Plage : `[0, 2]`

            - Par défaut 1 ; les valeurs plus élevées produisent une sortie plus
            divergente, les valeurs plus basses produisent une sortie plus
            déterministe
          minimum: 0
          maximum: 2
          default: 1
          example: 1
        top_p:
          type: number
          description: >-
            Seuil d'échantillonnage par noyau


            **Remarques** :

            - Plage : `[0, 1]`, MiniMax-M3 par défaut 0.95

            - Il est recommandé de ne pas ajuster simultanément temperature et
            top_p
          minimum: 0
          maximum: 1
          default: 0.95
          example: 0.95
        stream:
          type: boolean
          description: >-
            Indique s'il faut renvoyer en streaming via SSE


            - `true` : réponse en streaming Server-Sent Events

            - `false` : attend la réponse complète avant de la renvoyer (par
            défaut)
          default: false
          example: false
        thinking:
          type: object
          description: >-
            Contrôle la réflexion approfondie. Lorsque la réflexion est activée,
            les blocs de réflexion doivent être retransmis tels quels dans les
            conversations multi-tours


            **Remarques** :

            - **Par défaut `adaptive`** : le modèle décide de manière adaptative
            s'il doit engager une réflexion approfondie en fonction de la
            difficulté du problème

            - Lorsqu'elle est activée, le tableau `content` de la réponse inclut
            un bloc de raisonnement `type="thinking"` (facturé en tokens de
            sortie)
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - disabled
                - adaptive
              description: >-
                - `adaptive` : le modèle décide de manière autonome si une
                réflexion est nécessaire (valeur par défaut recommandée)

                - `disabled` : désactive la réflexion, répond directement
              default: adaptive
        tools:
          type: array
          description: |-
            Liste de définitions d'outils

            **Remarques** :
            - Suit la spécification de définition d'outils d'Anthropic
            - `input_schema` utilise un objet JSON Schema
          items:
            $ref: '#/components/schemas/Tool'
        tool_choice:
          type: object
          description: >-
            Stratégie de sélection d'outils. Seuls auto et none sont pris en
            charge
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - auto
                - none
              description: >-
                - `auto` : le modèle décide automatiquement s'il faut appeler un
                outil (par défaut lorsque des outils sont fournis)

                - `none` : interdit les appels d'outils
        metadata:
          type: object
          description: Métadonnées de la requête
          properties:
            user_id:
              type: string
              description: >-
                Identifiant unique représentant l'utilisateur final, peut être
                utilisé pour la surveillance par utilisateur et la détection
                d'abus (l'utilisation d'un ID haché est recommandée)
    MessageResponse:
      type: object
      description: Réponse de message de style Anthropic
      properties:
        id:
          type: string
          description: ID unique du message
        type:
          type: string
          enum:
            - message
          description: Type d'objet de réponse
        role:
          type: string
          enum:
            - assistant
        model:
          type: string
          description: Modèle réellement utilisé
          example: MiniMax-M3
        content:
          type: array
          description: >-
            Liste des blocs de contenu de la réponse


            **Types de blocs possibles** :

            - `thinking` : processus de raisonnement (uniquement lorsque la
            réflexion est active)

            - `text` : texte de la réponse finale

            - `tool_use` : appel d'outil initié par le modèle
          items:
            $ref: '#/components/schemas/OutputContentBlock'
        stop_reason:
          type: string
          description: |-
            Raison d'arrêt

            - `end_turn` : achèvement naturel
            - `max_tokens` : limite max_tokens atteinte
            - `tool_use` : le modèle a déclenché un appel d'outil
          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: >-
                Type d'erreur (par ex. invalid_request_error /
                authentication_error / billing_error, etc.)
            message:
              type: string
              description: Description de l'erreur
        request_id:
          type: string
          description: ID de suivi de la requête
    InputMessage:
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
            - assistant
            - user_system
            - group
            - sample_message_user
            - sample_message_ai
          description: >-
            Rôle de l'expéditeur du message. MiniMax-M3 utilise des messages
            user / assistant alternés


            - `user` : message utilisateur (également utilisé pour retransmettre
            les blocs `tool_result`)

            - `assistant` : réponse historique de l'assistant (peut contenir des
            blocs `text` / `thinking` / `tool_use`)


            Remarque : **`system` n'est pas accepté ici** : les invites système
            doivent être transmises via le champ `system` de premier niveau.
        content:
          description: >-
            Contenu du message


            **Remarques** :

            - Pour du texte brut, transmettez directement une chaîne

            - Pour du contenu structuré, transmettez un tableau de blocs de
            contenu (`text` / `image` / `video` / `tool_use` / `tool_result` /
            `thinking`)
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentBlock'
    CacheControl:
      type: object
      description: Marqueur de mise en cache d'invite
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - ephemeral
          description: Type de marqueur de cache
    Tool:
      type: object
      required:
        - name
        - input_schema
      properties:
        name:
          type: string
          description: |-
            Nom de l'outil

            **Remarques** :
            - Seuls `a-zA-Z0-9_-` sont autorisés
            - Maximum 64 caractères
        description:
          type: string
          description: Description de l'outil, aide le modèle à déterminer quand l'appeler
        input_schema:
          type: object
          description: |-
            Objet JSON Schema pour les paramètres d'entrée de l'outil

            **Remarques** :
            - `type` doit être `object`
            - Doit déclarer `properties` et `required`
        cache_control:
          $ref: '#/components/schemas/CacheControl'
    OutputContentBlock:
      type: object
      description: Bloc de contenu dans la réponse
      properties:
        type:
          type: string
          enum:
            - text
            - thinking
            - tool_use
        text:
          type: string
          description: Texte lorsque type=`text`
        thinking:
          type: string
          description: Texte du processus de raisonnement lorsque type=`thinking`
        signature:
          type: string
          description: >-
            Signature d'intégrité lorsque type=`thinking`, utilisée pour la
            vérification du contexte multi-tours
        id:
          type: string
          description: ID de l'appel d'outil lorsque type=`tool_use`
        name:
          type: string
          description: Nom de l'outil lorsque type=`tool_use`
        input:
          type: object
          description: >-
            Paramètres d'entrée JSON générés par le modèle lorsque
            type=`tool_use`
    AnthropicUsage:
      type: object
      description: Statistiques d'utilisation des tokens (spécification Anthropic)
      properties:
        input_tokens:
          type: integer
          description: Nombre de tokens d'entrée (partie non mise en cache)
          example: 7
        output_tokens:
          type: integer
          description: Nombre de tokens de sortie (réflexion incluse)
          example: 77
        cache_creation_input_tokens:
          type: integer
          description: Tokens d'entrée utilisés pour la création du cache
          example: 0
        cache_read_input_tokens:
          type: integer
          description: Tokens d'entrée lus depuis le cache
          example: 0
    ContentBlock:
      type: object
      description: >-
        Bloc de contenu du message


        **Types pris en charge** :

        - `text` : contenu textuel

        - `image` : entrée d'image (MiniMax-M3 uniquement)

        - `video` : entrée vidéo (MiniMax-M3 uniquement)

        - `tool_use` : retransmettre un appel d'outil précédent de l'assistant

        - `tool_result` : résultat d'exécution d'outil

        - `thinking` : retransmettre le contenu de réflexion précédent de
        l'assistant

        - `mid_conv_system` : instruction système en cours de conversation
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - text
            - image
            - video
            - tool_use
            - tool_result
            - thinking
            - mid_conv_system
        text:
          type: string
          description: Contenu textuel lorsque type=`text`
        source:
          $ref: '#/components/schemas/MediaSource'
          description: >-
            Source de l'image ou de la vidéo, utilisée lorsque type=`image` ou
            type=`video` (MiniMax-M3 uniquement)
        id:
          type: string
          description: ID de l'appel d'outil (requis pour tool_use)
        name:
          type: string
          description: Nom de l'outil (requis pour tool_use)
        input:
          type: object
          description: Paramètres d'entrée de l'outil (objet JSON pour tool_use)
        tool_use_id:
          type: string
          description: >-
            ID de l'appel d'outil correspondant (requis pour tool_result, mappé
            à tool_use.id)
        content:
          description: >-
            Résultat d'exécution de l'outil (tool_result), chaîne ou tableau de
            blocs de contenu
          oneOf:
            - type: string
            - type: array
              items:
                type: object
        thinking:
          type: string
          description: >-
            Contenu du processus de réflexion de l'assistant à retransmettre
            (utilisé lorsque type=`thinking`)
        signature:
          type: string
          description: >-
            Signature du contenu de réflexion retransmis ; doit être renvoyée
            telle quelle pour la continuation multi-tours
        cache_control:
          $ref: '#/components/schemas/CacheControl'
    MediaSource:
      type: object
      description: >-
        Source média pour les blocs de contenu image ou vidéo


        - Les images prennent en charge JPEG / PNG / GIF / WEBP, maximum 10 Mo
        par image

        - Les vidéos prennent en charge MP4 / AVI / MOV / MKV, maximum 50 Mo
        pour une URL / Base64
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - base64
            - url
          description: Type de source média
        media_type:
          type: string
          description: Requis pour une entrée base64, par ex. `image/png` ou `video/mp4`
        data:
          type: string
          description: Octets média encodés en base64
        url:
          type: string
          description: >-
            URL publique ; les vidéos peuvent également utiliser des références
            de fichier au format `mm_file://{file_id}`
        detail:
          type: string
          enum:
            - low
            - default
            - high
          default: default
          description: >-
            Précision de compréhension, par défaut default. Une résolution plus
            élevée consomme plus de tokens
        fps:
          type: number
          minimum: 0.2
          maximum: 5
          default: 1
          description: >-
            Fréquence d'extraction des images de la vidéo, par défaut 1, plage
            [0.2, 5]. Les valeurs plus élevées sont plus sensibles aux
            changements visuels et consomment plus de tokens
        max_long_side_pixel:
          type: integer
          minimum: 1
          description: >-
            Contrainte de pixels maximale pour le côté le plus long des images
            ou des images de la vidéo
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Toutes les API nécessitent une authentification par Bearer Token##


        **Obtenir une clé API :**


        Visitez la [page de gestion des clés
        API](https://evolink.ai/dashboard/keys) pour obtenir votre clé API


        **Ajouter à l'en-tête de requête :**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```


        **Remarque** : EvoLink utilise uniformément l'authentification par
        Bearer Token pour `/v1/messages`.

````