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

# API tous modèles GLM - Démarrage rapide Messages

> - Appelez les modèles de la série GLM via le protocole Anthropic Messages, le modèle précis étant choisi avec le paramètre `model`
- Les trois paramètres `model`, `max_tokens` et `messages` suffisent (`max_tokens` est obligatoire dans le protocole Anthropic)
- Fenêtre de contexte de 1M tokens sur toute la série, jusqu'à 131 072 tokens en sortie
- La **réflexion est active par défaut** sur toute la série : le `content` de la réponse contient un bloc `type="thinking"`, comptabilisé dans les tokens de sortie
- Pour le streaming, les appels d'outils, l'entrée image et les autres capacités, consultez la page « Référence complète »

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

<Note>
  **La série GLM active la réflexion par défaut** : le tableau `content` de la réponse contient un bloc `type="thinking"`, comptabilisé dans les tokens de sortie. `max_tokens` ne doit donc pas être trop faible ; 1024 au minimum est recommandé, faute de quoi la réponse peut être tronquée avant la fin de la réflexion et vous n'obtenez pas le texte de réponse.
</Note>


## OpenAPI

````yaml fr/api-manual/language-series/glm/messages/messages-quickstart.json POST /v1/messages
openapi: 3.1.0
info:
  title: API tous modèles GLM - Démarrage rapide Messages
  description: >-
    Exemple de démarrage rapide pour appeler les modèles de texte Zhipu GLM via
    le protocole Anthropic Messages. `model`, `max_tokens` et `messages`
    suffisent pour lancer une conversation ; pour l'ensemble des paramètres,
    consultez la page « Référence complète ».
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Production (recommandée, meilleure prise en charge des modèles textuels)
  - 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: Conversation rapide GLM (tous modèles, compatible Anthropic)
      description: >-
        - Appelez les modèles de la série GLM via le protocole Anthropic
        Messages, le modèle précis étant choisi avec le paramètre `model`

        - Les trois paramètres `model`, `max_tokens` et `messages` suffisent
        (`max_tokens` est obligatoire dans le protocole Anthropic)

        - Fenêtre de contexte de 1M tokens sur toute la série, jusqu'à 131 072
        tokens en sortie

        - La **réflexion est active par défaut** sur toute la série : le
        `content` de la réponse contient un bloc `type="thinking"`, comptabilisé
        dans les tokens de sortie

        - Pour le streaming, les appels d'outils, l'entrée image et les autres
        capacités, consultez la page « Référence complète »
      operationId: glmMessagesQuick
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMessageQuickRequest'
            examples:
              simple:
                summary: Appel minimal
                value:
                  model: glm-5.3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Bonjour, présentez-vous en une phrase
              flash:
                summary: Passer au modèle léger
                description: >-
                  `glm-5.3-flash` coûte bien moins cher que `glm-5.3` et
                  convient aux appels fréquents.
                value:
                  model: glm-5.3-flash
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Expliquez en une phrase ce qu'est HTTP
              multi_turn:
                summary: Conversation multi-tours
                value:
                  model: glm-5.3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: >-
                        Recommandez un langage de programmation adapté aux
                        débutants
                    - role: assistant
                      content: >-
                        Je recommande Python : syntaxe concise et écosystème
                        riche.
                    - role: user
                      content: Combien de temps faut-il environ pour l'apprendre ?
      responses:
        '200':
          description: Objet message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              examples:
                with_thinking:
                  summary: Inclut par défaut un bloc de contenu thinking
                  value:
                    id: msg_0842a705-9d0b-4eaa-b12d-09a4106326c5
                    type: message
                    role: assistant
                    model: glm-5.3
                    content:
                      - type: thinking
                        thinking: >-
                          L'utilisateur demande de saluer en un seul mot, il
                          suffit de répondre « Hi ».
                        signature: ''
                      - type: text
                        text: Hi.
                    stop_reason: end_turn
                    usage:
                      input_tokens: 18
                      output_tokens: 101
                      cache_creation_input_tokens: 0
                      cache_read_input_tokens: 0
                      prompt_tokens_details:
                        cached_tokens: 0
                tool_use:
                  summary: Déclenche un appel d'outil (stop_reason=tool_use)
                  value:
                    id: msg_067e85db-53df-43a1-bd38-09c53375f2f0
                    type: message
                    role: assistant
                    model: glm-5.3
                    content:
                      - type: tool_use
                        id: toolu_36b8a98e284c426799f08612
                        name: get_weather
                        input:
                          city: Tokyo
                    stop_reason: tool_use
                    usage:
                      input_tokens: 161
                      output_tokens: 11
                      cache_creation_input_tokens: 0
                      cache_read_input_tokens: 0
                      prompt_tokens_details:
                        cached_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
          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: Erreur du service en amont
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service temporairement indisponible
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateMessageQuickRequest:
      title: Create Message Quick Request
      type: object
      required:
        - model
        - max_tokens
        - messages
      properties:
        model:
          type: string
          description: >
            Modèle à appeler :


            | ID du modèle | Positionnement |

            |---|---|

            | `glm-5.3` | Modèle phare, progression générale sur l'ingénierie
            logicielle complexe et les tâches d'agent ; contexte de 1M |

            | `glm-5.3-flash` | Modèle multimodal léger, coût très faible,
            entrée image native ; contexte de 1M |

            | `glm-5.2` | Modèle phare de la génération précédente, raisonnement
            complexe et contexte très long ; contexte de 1M |
          enum:
            - glm-5.3
            - glm-5.3-flash
            - glm-5.2
          default: glm-5.3
          example: glm-5.3
        max_tokens:
          type: integer
          description: >-
            Nombre maximal de tokens générés pour cette requête ;
            **obligatoire** dans le protocole Anthropic.


            Remarque : la série GLM active la réflexion par défaut, et le
            contenu de réflexion consomme aussi des tokens de sortie. Cette
            valeur ne doit donc pas être trop faible — 1024 au minimum est
            recommandé.
          minimum: 1
          maximum: 131072
          default: 1024
          example: 1024
        messages:
          type: array
          description: >-
            Liste des messages de la conversation, dans l'ordre chronologique.
            Au moins un message est requis.
          minItems: 1
          items:
            $ref: '#/components/schemas/MessageSimple'
    MessageResponse:
      type: object
      description: Réponse de message au style Anthropic
      properties:
        id:
          type: string
          description: 'ID unique du message (format : `msg_<uuid>`)'
        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: glm-5.3
        content:
          type: array
          description: >-
            Liste des blocs de contenu de la réponse


            **Types de blocs possibles** :

            - `thinking` : processus de raisonnement (lorsque la réflexion est
            activée, par défaut)

            - `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 de l'arrêt


            - `end_turn` : fin naturelle (renvoyé également lorsqu'une séquence
            stop_sequences est rencontrée)

            - `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
    MessageSimple:
      title: Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
            - assistant
          description: >-
            Rôle du message


            - `user` : entrée de l'utilisateur

            - `assistant` : réponse du modèle (incluse lors des conversations
            multi-tours)


            Transmettez l'invite système via le champ `system` de premier
            niveau, et non dans `messages`.
          example: user
        content:
          type: string
          description: Contenu du message (texte brut)
          example: Bonjour, présentez-vous en une phrase
    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 lorsque type=`thinking` (peut être une chaîne vide)
        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: >-
            Arguments 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 en entrée (partie non trouvée en cache)
          example: 18
        output_tokens:
          type: integer
          description: Nombre de tokens en sortie (y compris la réflexion)
          example: 101
        cache_creation_input_tokens:
          type: integer
          description: >-
            Nombre de tokens d'entrée écrits dans le cache (toujours 0 pour la
            série GLM)
          example: 0
        cache_read_input_tokens:
          type: integer
          description: >-
            Nombre de tokens d'entrée trouvés en cache (lors d'une touche du
            cache implicite, environ la longueur du préfixe commun)
          example: 0
        prompt_tokens_details:
          type: object
          description: >-
            Détail des tokens d'entrée (champs de cache, également renvoyés par
            la série GLM)
          properties:
            cached_tokens:
              type: integer
              description: Nombre de tokens d'entrée trouvés en cache
              example: 0
  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 applique une authentification unifiée par Bearer
        Token pour `/v1/messages`.

````