> ## 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 - Référence complète Responses

> Appelez GLM au format Responses pour les conversations textuelles, le streaming et les appels de fonctions. La compréhension d’images et la recherche web dépendent du modèle. Les paramètres et différences sont présentés ci-dessous.

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

Appelez GLM au format Responses pour les conversations textuelles, le streaming et les appels de fonctions. La compréhension d’images et la recherche web dépendent du modèle. Les paramètres et différences sont présentés ci-dessous.

## Modèles et différences de paramètres

Choisissez un modèle GLM. Les quatre acceptent du texte sur cet endpoint. Les fonctions optionnelles varient selon le modèle.

| ID du modèle     | Entrée        | Remarques sur la réflexion                                                                                                 |
| ---------------- | ------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `glm-5.3`        | Texte         | Niveaux effectifs : `low` / `high` / `max` ; valeurs compatibles dans reasoning. La réflexion ne peut pas être désactivée. |
| `glm-5.3-flash`  | Texte, images | Comme `glm-5.3` ; utilisez `input_image` pour les images.                                                                  |
| `glm-5.3-flashx` | Texte, images | Comme `glm-5.3` ; utilisez `input_image` pour les images.                                                                  |
| `glm-5.2`        | Texte         | `none` peut encore produire des tokens de réflexion et ne garantit pas sa désactivation.                                   |

Responses utilise `reasoning.effort` imbriqué, au lieu de `reasoning_effort` ou `thinking` à la racine. Les tokens de réflexion sont inclus dans output\_tokens. Une tâche simple peut renvoyer `reasoning_tokens=0` ; cela ne signifie pas que la réflexion peut être désactivée.

Effort de raisonnement ; `low` est recommandé.

**Règles de compatibilité de `glm-5.3` / `glm-5.3-flash` / `glm-5.3-flashx`**

| Valeur fournie         | Niveau de réflexion effectif      |
| ---------------------- | --------------------------------- |
| `low` / `high` / `max` | Inchangé                          |
| `xhigh`                | `max`                             |
| `medium`               | `high`                            |
| `minimal` / `none`     | `low` ; réflexion toujours active |

**`minimal` et `none` ne désactivent pas la réflexion de la série 5.3.** Les tokens de réflexion sont facturés en sortie. Les valeurs inconnues restent inchangées, sans correspondance de compatibilité ; utilisez les valeurs indiquées. Ces correspondances ne s’appliquent pas à glm-5.2.

Sur cet endpoint, `glm-5.2` peut encore produire des tokens de réflexion avec none. Cette valeur ne garantit pas la désactivation de la réflexion.

## Prompts système et conversations à plusieurs tours

`instructions`: Instructions système. `glm-5.3-flash` accepte ce champ lorsque input est une chaîne. Avec un tableau de messages, placez le prompt système dans le premier message role=system.

```json theme={null}
{
  "model": "glm-5.3-flash",
  "input": [
    {
      "role": "system",
      "content": "Réponds brièvement en français."
    },
    {
      "role": "user",
      "content": "Retiens le code RED-583"
    },
    {
      "role": "assistant",
      "content": "C’est noté"
    },
    {
      "role": "user",
      "content": "Quel est le code ? Réponds uniquement avec le code."
    }
  ],
  "reasoning": {
    "effort": "low"
  },
  "max_output_tokens": 1024
}
```

Enregistre la réponse pour la référencer ensuite. `glm-5.3-flash` et `glm-5.3-flashx` permettent de poursuivre avec `store=true` et previous\_response\_id. `glm-5.2` ne permet pas la continuation par identifiant ; `store=true` ne l’active pas. Incluez plutôt l’historique complet dans input.

id à la racine de la réponse précédente. `glm-5.3-flash` et `glm-5.3-flashx` l’acceptent avec `store=true` et le même modèle. Transmettez cet id sans modification, et non l’id d’un élément output. `glm-5.2` renvoie 400 pour ce champ. Pour changer de modèle, omettez-le et incluez l’historique complet dans input.

## Réponses en streaming

Active le streaming SSE. Lisez le texte dans delta des événements response.output\_text.delta. L’événement final de réussite est response.completed. Terminez aussi le tour et traitez `response.incomplete`, `response.failed` ou error. N’attendez pas uniquement \[DONE] ou la fermeture de la connexion.

| Événement                                                                 | Traitement                                                                            |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `response.created` / `response.in_progress`                               | Début du tour.                                                                        |
| `response.output_text.delta`                                              | Ajouter delta au texte de réponse.                                                    |
| `response.reasoning_text.delta` / `response.reasoning_summary_text.delta` | Contenu de réflexion à séparer de la réponse ; accepter les deux formes d’événements. |
| `response.output_item.done`                                               | Récupérer l’élément de sortie complet, par exemple function\_call.                    |
| `response.completed`                                                      | Génération terminée ; lire `response.output` et response.usage.                       |
| `response.incomplete` / `response.failed` / `error`                       | Traiter la troncature ou l’erreur et terminer le tour.                                |

Arrêtez la lecture après un événement final. HTTP 200 indique seulement que le flux est établi ; vérifiez l’état final de l’événement. Un tour d’appel d’outil peut finir par `response.completed` tout en nécessitant l’exécution de la fonction et une nouvelle requête par votre application.

## Appels de fonctions

Choisissez l’exemple de fonction dans le menu des requêtes. Responses utilise une définition de fonction à plat :

```json theme={null}
{
  "type": "function",
  "name": "get_temperature",
  "description": "Renvoie la température de la ville indiquée",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string"
      }
    },
    "required": [
      "city"
    ],
    "additionalProperties": false
  }
}
```

1. Parcourir `response.output` et récupérer tous les éléments type=function\_call.
2. Analyser et valider la chaîne JSON arguments, puis exécuter chaque fonction dans votre application.
3. Ajouter tout le précédent output à l’historique. Ajouter un `function_call_output` par appel avec le `call_id` d’origine et un output de type chaîne.
4. Envoyer l’historique mis à jour comme input de la requête suivante. L’exemple de retour de résultat illustre cette structure.

<Note>
  `parallel_tool_calls`: Autorise plusieurs appels d’outils dans un tour. false ne garantit pas un seul appel de fonction. Le client doit parcourir et traiter tous les function\_call.
</Note>

## Images, recherche et sortie JSON

Pour `glm-5.3-flash` et `glm-5.3-flashx`, mélangez `input_text` et `input_image` dans le tableau content du message utilisateur. `image_url` reçoit une URL publique d’image ou une Data URL Base64. Utilisez uniquement du texte avec `glm-5.3` et glm-5.2.

Déclarez `tools: [{"type":"web_search"}]`. La recherche est exécutée sur le serveur et renvoie des éléments `web_search_call` et du texte. Vérifiez les éléments de sortie pour savoir si elle a été utilisée. Des frais par recherche peuvent s’ajouter aux tokens ; consultez les tarifs du modèle.

Pour poursuivre après une recherche, ajoutez l’intégralité du `output` précédent, y compris `web_search_call` et `message`, à `input`, puis ajoutez votre nouvelle question. Conservez les champs originaux tels que `id`, `status` et `action`. La recherche a déjà été exécutée par le serveur : ne créez pas de `function_call_output` pour `web_search_call`. Consultez l’exemple de requête `web_search_history`.

`text.format.type`: Format de sortie : text pour du texte, `json_object` pour un objet JSON. Avec `json_object`, demandez explicitement du JSON valide dans le prompt, puis analysez et validez la réponse côté client. Les contraintes JSON Schema strictes ne sont pas proposées ; `json_schema` ou `strict=true` ne garantissent pas une structure précise.

## Réponses et utilisation

Éléments de sortie ordonnés. Extrayez text des entrées content de type `output_text` dans les éléments type=message. reasoning peut précéder la réponse ; un tour `function_call` peut n’avoir aucun texte de réponse. Ne lisez pas systématiquement output\[0].

`output_text`: Texte de réponse agrégé facultatif ; il peut être absent. Les clients génériques doivent parcourir output.

`output_text` dans un élément message ; éventuellement `reasoning_text` dans un élément reasoning. La réflexion peut aussi être renvoyée via summary\_text. Un élément reasoning n’a pas nécessairement de champ content.

* `usage.input_tokens`: Total des tokens d’entrée, y compris ceux du cache. `usage.input_tokens_details.cached_tokens`: Sous-ensemble des tokens d’entrée trouvé dans le cache ; ne l’ajoutez pas de nouveau à input\_tokens. Le cache de préfixe est automatique, sans `cache_control` explicite. Le nombre de tokens concernés est celui renvoyé dans la réponse.
* `usage.output_tokens`: Total des tokens de sortie, réflexion comprise. `usage.output_tokens_details.reasoning_tokens`: Sous-ensemble des tokens de sortie consacré à la réflexion ; ne le comptez pas de nouveau dans output\_tokens. Cette valeur peut être absente ou nulle.

`status=incomplete` avec `incomplete_details.reason=max_output_tokens` signifie que le budget est épuisé. Il peut y avoir de la réflexion sans réponse ; augmentez la limite de sortie.


## OpenAPI

````yaml fr/api-manual/language-series/glm/responses/responses-reference.json POST /v1/responses
openapi: 3.1.0
info:
  title: API tous modèles GLM - Référence complète Responses
  description: >-
    Appelez la série GLM de Zhipu au format Responses compatible avec OpenAI.
    Modèles pris en charge : glm-5.3, glm-5.3-flash, glm-5.3-flashx et glm-5.2.
    Les fonctions optionnelles varient selon le modèle.
  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: Responses
    description: API GLM Responses
paths:
  /v1/responses:
    post:
      tags:
        - Responses
      summary: API GLM Responses (référence complète)
      description: >-
        Appelez GLM au format Responses pour les conversations textuelles, le
        streaming et les appels de fonctions. La compréhension d’images et la
        recherche web dépendent du modèle. Les paramètres et différences sont
        présentés ci-dessous.
      operationId: createGLMResponse
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResponsesRequest'
            examples:
              basic:
                summary: Conversation textuelle de base
                value:
                  model: glm-5.3-flash
                  input: Présente-toi en une phrase.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
              system_message:
                summary: Prompt système et tableau de messages
                value:
                  model: glm-5.3-flash
                  input:
                    - role: system
                      content: Réponds brièvement en français.
                    - role: user
                      content: Qu’est-ce que la recherche dichotomique ?
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
              stream:
                summary: Sortie SSE en streaming
                value:
                  model: glm-5.3-flash
                  input: Présente-toi en une phrase.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  stream: true
              history:
                summary: Conversation avec historique
                value:
                  model: glm-5.3-flash
                  input:
                    - role: user
                      content: Retiens le code RED-583
                    - role: assistant
                      content: C’est noté
                    - role: user
                      content: Quel est le code ? Réponds uniquement avec le code.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
              function:
                summary: Appel de fonction côté client
                value:
                  model: glm-5.3-flash
                  input: Recherche la température à Pékin.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  tools:
                    - type: function
                      name: get_temperature
                      description: Renvoie la température de la ville indiquée
                      parameters:
                        type: object
                        properties:
                          city:
                            type: string
                        required:
                          - city
                        additionalProperties: false
                  tool_choice:
                    type: function
                    name: get_temperature
              function_result:
                summary: Renvoyer un résultat de fonction
                description: >-
                  Remplacez le call_id de l’exemple par la valeur réellement
                  renvoyée au tour précédent et conservez son output complet.
                value:
                  model: glm-5.3-flash
                  input:
                    - role: user
                      content: Recherche la température à Pékin.
                    - type: function_call
                      call_id: call_weather_demo
                      name: get_temperature
                      arguments: '{"city":"Pékin"}'
                    - type: function_call_output
                      call_id: call_weather_demo
                      output: '{"city":"Pékin","temperature":25}'
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  tools:
                    - type: function
                      name: get_temperature
                      description: Renvoie la température de la ville indiquée
                      parameters:
                        type: object
                        properties:
                          city:
                            type: string
                        required:
                          - city
                        additionalProperties: false
                  tool_choice: none
              web_search:
                summary: Recherche web côté serveur
                value:
                  model: glm-5.3-flash
                  input: >-
                    Utilise la recherche web pour trouver le titre de la page
                    d’accueil de Python. Renvoie uniquement le titre et le lien
                    source.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  tools:
                    - type: web_search
                  tool_choice: required
              web_search_history:
                summary: Poursuivre après une recherche web
                description: >-
                  Pour une requête réelle, remplacez les exemples
                  web_search_call et message par tous les éléments output
                  originaux de la réponse précédente, puis ajoutez votre
                  nouvelle question. Conservez les champs tels que id, status et
                  action. Ne créez pas de function_call_output pour
                  web_search_call.
                value:
                  model: glm-5.3-flash
                  input:
                    - role: user
                      content: >-
                        Utilise la recherche web pour trouver le titre de la
                        page d’accueil de Python. Renvoie uniquement le titre et
                        le lien source.
                    - type: web_search_call
                      id: ws_search_demo
                      status: completed
                      action:
                        type: open_page
                        url: https://www.python.org
                    - type: message
                      id: msg_search_demo
                      status: completed
                      role: assistant
                      content:
                        - type: output_text
                          text: Welcome to Python.org — https://www.python.org
                          annotations: []
                    - role: user
                      content: >-
                        Quel titre de page d’accueil as-tu trouvé au tour
                        précédent ? Renvoie uniquement le titre, sans effectuer
                        de nouvelle recherche.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
              json_object:
                summary: Sortie sous forme d’objet JSON
                value:
                  model: glm-5.3-flash
                  input: >-
                    Renvoie uniquement un objet JSON valide avec le champ city
                    égal à Beijing. Pas de Markdown.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  text:
                    format:
                      type: json_object
              image:
                summary: Compréhension d’image (exemple Flash)
                description: L’exemple contient la Data URL d’une image PNG rouge.
                value:
                  model: glm-5.3-flash
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  input:
                    - role: user
                      content:
                        - type: input_text
                          text: >-
                            L’image est unie. Réponds uniquement avec sa
                            couleur.
                        - type: input_image
                          image_url: >-
                            data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAABK0lEQVR4nO3RMQEAMAyAsLb+PW8y8hADHOybSEfraYDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANGOsDz+EB/5Uf+TQAAAAASUVORK5CYII=
              store:
                summary: Créer une réponse à référencer (Flash)
                value:
                  model: glm-5.3-flash
                  input: Retiens le code BLUE-728. Réponds uniquement C’est noté.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  store: true
              previous_response:
                summary: Référencer la réponse précédente (Flash)
                description: >-
                  Exécutez d’abord l’exemple qui enregistre une réponse, puis
                  définissez previous_response_id avec son id à la racine.
                  glm-5.2 ne prend pas en charge cette méthode de continuation.
                value:
                  model: glm-5.3-flash
                  input: Quel était le code ? Réponds uniquement avec le code.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  previous_response_id: Identifiant de réponse renvoyé au tour précédent
              flashx:
                summary: Appeler GLM-5.3-FlashX
                value:
                  model: glm-5.3-flashx
                  input: Présente-toi en une phrase.
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
              vision_flashx:
                summary: Entrée image GLM-5.3-FlashX
                value:
                  model: glm-5.3-flashx
                  max_output_tokens: 1024
                  reasoning:
                    effort: low
                  input:
                    - role: user
                      content:
                        - type: input_text
                          text: >-
                            L’image est unie. Réponds uniquement avec sa
                            couleur.
                        - type: input_image
                          image_url: >-
                            data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAIAAABMXPacAAABK0lEQVR4nO3RMQEAMAyAsLb+PW8y8hADHOybSEfraYDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANwBqANQBrANYArAFYA7AGYA3AGoA1AGsA1gCsAVgDsAZgDcAagDUAawDWAKwBWAOwBmANGOsDz+EB/5Uf+TQAAAAASUVORK5CYII=
      responses:
        '200':
          description: >-
            Génération terminée ou résultat incomplet ; vérifiez status. Le
            streaming renvoie text/event-stream.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponsesResponse'
              example:
                id: response_demo
                object: response
                created_at: 1789971757
                model: glm-5.3-flash
                status: completed
                output:
                  - type: message
                    id: message_demo
                    status: completed
                    role: assistant
                    content:
                      - type: output_text
                        text: >-
                          Bonjour, je suis GLM. Je peux vous aider à discuter,
                          rédiger et programmer.
                        annotations: []
                usage:
                  input_tokens: 17
                  output_tokens: 24
                  total_tokens: 41
                  input_tokens_details:
                    cached_tokens: 0
                  output_tokens_details:
                    reasoning_tokens: 0
                error: null
            text/event-stream:
              schema:
                type: string
              example: >+
                event: response.output_text.delta

                data:
                {"type":"response.output_text.delta","item_id":"message_demo","output_index":0,"content_index":0,"delta":"Bonjour"}


                event: response.completed

                data:
                {"type":"response.completed","response":{"id":"response_demo","object":"response","created_at":1789971757,"model":"glm-5.3-flash","status":"completed","output":[{"type":"message","id":"message_demo","status":"completed","role":"assistant","content":[{"type":"output_text","text":"Bonjour","annotations":[]}]}],"usage":{"input_tokens":17,"output_tokens":3,"total_tokens":20},"error":null}}

        '400':
          description: >-
            Paramètres incorrects : input absent, paramètres reasoning mal
            formés ou modèle ne prenant pas en charge previous_response_id, par
            exemple.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Clé API invalide ou expirée.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Crédits disponibles insuffisants.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Limite de fréquence dépassée. Réessayez avec un délai croissant.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Erreur du serveur.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service temporairement indisponible. Réessayez plus tard.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ResponsesRequest:
      type: object
      properties:
        model:
          type: string
          description: >-
            Choisissez un modèle GLM. Les quatre acceptent du texte sur cet
            endpoint. Les fonctions optionnelles varient selon le modèle.


            | ID du modèle | Entrée | Remarques sur la réflexion |

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

            | `glm-5.3` | Texte | Niveaux effectifs : low / high / max ; valeurs
            compatibles dans reasoning. La réflexion ne peut pas être
            désactivée. |

            | `glm-5.3-flash` | Texte, images | Comme glm-5.3 ; utilisez
            input_image pour les images. |

            | `glm-5.3-flashx` | Texte, images | Comme glm-5.3 ; utilisez
            input_image pour les images. |

            | `glm-5.2` | Texte | none peut encore produire des tokens de
            réflexion et ne garantit pas sa désactivation. |
          enum:
            - glm-5.3
            - glm-5.3-flash
            - glm-5.3-flashx
            - glm-5.2
          default: glm-5.3-flash
          example: glm-5.3-flash
        input:
          description: >-
            Obligatoire. Chaîne de texte ou tableau d’éléments d’entrée
            Responses. Le tableau accepte des messages, des éléments de sortie
            du modèle renvoyés tels quels et function_call_output. Pour
            plusieurs échanges, incluez l’historique complet à chaque requête.
            Placez le prompt système en premier avec role=system. Les images
            utilisent input_image, uniquement avec glm-5.3-flash et
            glm-5.3-flashx. N’utilisez pas le format de blocs messages /
            image_url de Chat Completions.
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/InputItem'
          example: Présente-toi en une phrase.
        max_output_tokens:
          type: integer
          minimum: 1
          description: >-
            Nombre maximal de tokens de sortie de cette génération, réflexion
            comprise. Commencez à 1024 et adaptez à la tâche. Un budget trop
            faible peut être épuisé pendant la réflexion et produire uniquement
            des éléments reasoning, sans réponse. Vérifiez status et
            incomplete_details. Le paramètre s’appelle max_output_tokens, pas
            max_tokens.
          example: 1024
        stream:
          type: boolean
          default: false
          description: >-
            Active le streaming SSE. Lisez le texte dans delta des événements
            response.output_text.delta. L’événement final de réussite est
            response.completed. Terminez aussi le tour et traitez
            response.incomplete, response.failed ou error. N’attendez pas
            uniquement [DONE] ou la fermeture de la connexion.
        reasoning:
          type: object
          properties:
            effort:
              type: string
              description: >-
                Effort de raisonnement ; low est recommandé.


                **Règles de compatibilité de glm-5.3 / glm-5.3-flash /
                glm-5.3-flashx**


                | Valeur fournie | Niveau de réflexion effectif |

                | --- | --- |

                | `low` / `high` / `max` | Inchangé |

                | `xhigh` | `max` |

                | `medium` | `high` |

                | `minimal` / `none` | low ; réflexion toujours active |


                **minimal et none ne désactivent pas la réflexion de la série
                5.3.** Les tokens de réflexion sont facturés en sortie. Les
                valeurs inconnues restent inchangées, sans correspondance de
                compatibilité ; utilisez les valeurs indiquées. Ces
                correspondances ne s’appliquent pas à glm-5.2.


                Sur cet endpoint, glm-5.2 peut encore produire des tokens de
                réflexion avec none. Cette valeur ne garantit pas la
                désactivation de la réflexion.
              enum:
                - max
                - xhigh
                - high
                - medium
                - low
                - minimal
                - none
              example: low
          description: >-
            Responses utilise reasoning.effort imbriqué, au lieu de
            reasoning_effort ou thinking à la racine. Les tokens de réflexion
            sont inclus dans output_tokens. Une tâche simple peut renvoyer
            reasoning_tokens=0 ; cela ne signifie pas que la réflexion peut être
            désactivée.
        instructions:
          type: string
          description: >-
            Instructions système. glm-5.3-flash accepte ce champ lorsque input
            est une chaîne. Avec un tableau de messages, placez le prompt
            système dans le premier message role=system.
        tools:
          type: array
          items:
            $ref: '#/components/schemas/Tool'
          description: >-
            Accepte les outils function côté client et web_search côté serveur.
            Déclarez une fonction avec name / description / parameters à plat,
            sans objet function imbriqué comme dans Chat Completions. Votre
            application exécute function_call et renvoie son résultat.
            web_search s’exécute sur le serveur ; les recherches effectuées
            peuvent être facturées par appel en plus des tokens. Consultez les
            tarifs du modèle.
        tool_choice:
          description: >-
            auto laisse le modèle choisir ; none désactive les outils ; required
            impose un appel d’outil. Pour une fonction précise :
            {"type":"function","name":"get_temperature"}. La sélection forcée
            n’est pas garantie de fonctionner de la même façon pour toutes les
            combinaisons de modèles et d’outils.
          oneOf:
            - type: string
              enum:
                - auto
                - none
                - required
            - type: object
              properties:
                type:
                  type: string
                  const: function
                name:
                  type: string
              required:
                - type
                - name
          example: auto
        parallel_tool_calls:
          type: boolean
          description: >-
            Autorise plusieurs appels d’outils dans un tour. false ne garantit
            pas un seul appel de fonction. Le client doit parcourir et traiter
            tous les function_call.
        text:
          type: object
          properties:
            format:
              type: object
              properties:
                type:
                  type: string
                  description: >-
                    Format de sortie : text pour du texte, json_object pour un
                    objet JSON. Avec json_object, demandez explicitement du JSON
                    valide dans le prompt, puis analysez et validez la réponse
                    côté client. Les contraintes JSON Schema strictes ne sont
                    pas proposées ; json_schema ou strict=true ne garantissent
                    pas une structure précise.
                  enum:
                    - text
                    - json_object
                  example: json_object
              required:
                - type
          description: >-
            Format de sortie. Les exemples utilisent json_object ; HTTP 200 ne
            garantit pas la conformité à un schéma JSON.
        store:
          type: boolean
          description: >-
            Enregistre la réponse pour la référencer ensuite. glm-5.3-flash et
            glm-5.3-flashx permettent de poursuivre avec store=true et
            previous_response_id. glm-5.2 ne permet pas la continuation par
            identifiant ; store=true ne l’active pas. Incluez plutôt
            l’historique complet dans input.
        previous_response_id:
          type: string
          description: >-
            id à la racine de la réponse précédente. glm-5.3-flash et
            glm-5.3-flashx l’acceptent avec store=true et le même modèle.
            Transmettez cet id sans modification, et non l’id d’un élément
            output. glm-5.2 renvoie 400 pour ce champ. Pour changer de modèle,
            omettez-le et incluez l’historique complet dans input.
          example: Identifiant de réponse renvoyé au tour précédent
        metadata:
          type: object
          additionalProperties:
            type: string
          description: >-
            Métadonnées personnalisées sous forme de paires de chaînes
            clé-valeur, disponibles dans metadata de la réponse. N’y incluez ni
            clés secrètes ni données sensibles.
          example:
            conversation: demo
        temperature:
          type: number
          description: >-
            Paramètre d’échantillonnage. Sa plage effective et son effet
            dépendent du modèle. Il ne garantit pas une sortie déterministe et
            peut être omis pour les tâches de raisonnement.
        top_p:
          type: number
          description: >-
            Paramètre d’échantillonnage. Sa plage effective et son effet
            dépendent du modèle. Il peut généralement être omis.
      required:
        - model
        - input
    ResponsesResponse:
      type: object
      properties:
        id:
          type: string
          description: >-
            Identifiant de cette réponse. À transmettre sans modification dans
            previous_response_id.
          example: response_demo
        object:
          type: string
          const: response
        created_at:
          type: integer
          description: Date de création en secondes Unix.
        model:
          type: string
          example: glm-5.3-flash
        status:
          type: string
          description: >-
            completed indique la fin de génération du tour, éventuellement avec
            uniquement des appels d’outils. incomplete indique une sortie
            incomplète. Vérifiez output et error.
          enum:
            - completed
            - incomplete
            - failed
            - in_progress
            - queued
        output:
          type: array
          items:
            $ref: '#/components/schemas/OutputItem'
          description: >-
            Éléments de sortie ordonnés. Extrayez text des entrées content de
            type output_text dans les éléments type=message. reasoning peut
            précéder la réponse ; un tour function_call peut n’avoir aucun texte
            de réponse. Ne lisez pas systématiquement output[0].
        output_text:
          type: string
          description: >-
            Texte de réponse agrégé facultatif ; il peut être absent. Les
            clients génériques doivent parcourir output.
        usage:
          $ref: '#/components/schemas/Usage'
        error:
          type:
            - object
            - 'null'
          description: Erreur de réponse, généralement null en cas de réussite.
          additionalProperties: true
        incomplete_details:
          type: object
          properties:
            reason:
              type: string
              description: Détails d’une sortie tronquée, par exemple max_output_tokens.
        metadata:
          type:
            - object
            - 'null'
          additionalProperties:
            type: string
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            type:
              type: string
            param:
              type:
                - string
                - 'null'
            code:
              type:
                - string
                - integer
                - 'null'
      required:
        - error
    InputItem:
      description: >-
        Message, résultat de fonction ou élément repris sans modification du
        précédent output. Pour les résultats d’outils, utilisez le call_id
        renvoyé et conservez les champs d’origine des éléments de sortie
        précédents.
      oneOf:
        - $ref: '#/components/schemas/InputMessage'
        - $ref: '#/components/schemas/FunctionCallOutput'
        - type: object
          properties:
            type:
              type: string
              description: Type de l’élément de sortie renvoyé.
              enum:
                - function_call
                - reasoning
                - web_search_call
            id:
              type: string
            call_id:
              type: string
            name:
              type: string
            arguments:
              type: string
              description: Arguments encodés sous forme de chaîne JSON.
            status:
              type: string
            action:
              type: object
              additionalProperties: true
              description: Action de recherche ou d’accès à une page de web_search_call.
          required:
            - type
    Tool:
      oneOf:
        - type: object
          properties:
            type:
              type: string
              const: function
            name:
              type: string
            description:
              type: string
            parameters:
              type: object
              description: JSON Schema des paramètres de fonction.
            strict:
              type: boolean
              description: >-
                Option de contrainte des arguments de fonction. Le client doit
                toujours analyser et valider arguments avant d’exécuter la
                fonction.
          required:
            - type
            - name
            - parameters
        - type: object
          properties:
            type:
              type: string
              const: web_search
          required:
            - type
    OutputItem:
      type: object
      properties:
        type:
          type: string
          description: >-
            Types courants : message, reasoning, function_call et
            web_search_call.
          enum:
            - message
            - reasoning
            - function_call
            - web_search_call
        id:
          type: string
        status:
          type: string
        role:
          type: string
        content:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              text:
                type: string
              annotations:
                type: array
                items:
                  type: object
          description: >-
            output_text dans un élément message ; éventuellement reasoning_text
            dans un élément reasoning.
        summary:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
              text:
                type: string
          description: >-
            La réflexion peut aussi être renvoyée via summary_text. Un élément
            reasoning n’a pas nécessairement de champ content.
        call_id:
          type: string
          description: >-
            Identifiant de l’appel de fonction utilisé pour renvoyer son
            résultat.
        name:
          type: string
          description: Nom de la fonction.
        arguments:
          type: string
          description: >-
            Arguments de fonction sous forme de chaîne JSON. Analysez-les et
            validez-les avant l’exécution.
        action:
          type: object
          additionalProperties: true
          description: Action de recherche ou d’accès à une page de web_search_call.
      required:
        - type
    Usage:
      type: object
      properties:
        input_tokens:
          type: integer
          description: Total des tokens d’entrée, y compris ceux du cache.
        output_tokens:
          type: integer
          description: Total des tokens de sortie, réflexion comprise.
        total_tokens:
          type: integer
          description: Somme des tokens d’entrée et de sortie.
        input_tokens_details:
          type: object
          properties:
            cached_tokens:
              type: integer
              description: >-
                Sous-ensemble des tokens d’entrée trouvé dans le cache ; ne
                l’ajoutez pas de nouveau à input_tokens. Le cache de préfixe est
                automatique, sans cache_control explicite. Le nombre de tokens
                concernés est celui renvoyé dans la réponse.
        output_tokens_details:
          type: object
          properties:
            reasoning_tokens:
              type: integer
              description: >-
                Sous-ensemble des tokens de sortie consacré à la réflexion ; ne
                le comptez pas de nouveau dans output_tokens. Cette valeur peut
                être absente ou nulle.
    InputMessage:
      type: object
      properties:
        role:
          type: string
          enum:
            - system
            - user
            - assistant
        content:
          description: >-
            Chaîne de texte ou tableau de blocs d’entrée. Lors du renvoi d’une
            sortie assistant existante, ses blocs output_text peuvent être
            conservés tels quels.
          oneOf:
            - type: string
            - type: array
              items:
                oneOf:
                  - $ref: '#/components/schemas/InputText'
                  - $ref: '#/components/schemas/InputImage'
                  - $ref: '#/components/schemas/OutputText'
      required:
        - role
        - content
    FunctionCallOutput:
      type: object
      properties:
        type:
          type: string
          const: function_call_output
        call_id:
          type: string
          description: call_id du function_call d’origine.
        output:
          type: string
          description: Résultat de fonction, généralement une chaîne encodée en JSON.
      required:
        - type
        - call_id
        - output
    InputText:
      type: object
      properties:
        type:
          type: string
          const: input_text
        text:
          type: string
      required:
        - type
        - text
    InputImage:
      type: object
      properties:
        type:
          type: string
          const: input_image
        image_url:
          type: string
          description: >-
            URL publique d’image ou Data URL Base64, par exemple
            data:image/png;base64,... pour un PNG. Seuls glm-5.3-flash /
            glm-5.3-flashx acceptent les images ; utilisez uniquement du texte
            avec glm-5.3 et glm-5.2.
      required:
        - type
        - image_url
    OutputText:
      type: object
      properties:
        type:
          type: string
          const: output_text
        text:
          type: string
        annotations:
          type: array
          items:
            type: object
      required:
        - type
        - text
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Transmettez Bearer YOUR_API_KEY dans l’en-tête Authorization.

````