> ## 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 Kimi (tous les modèles) - Messages : Référence complète

> Point d’accès public : POST /v1/messages. Régler l’effort de raisonnement avec output_config.effort. cache_control au niveau supérieur contrôle les écritures de cache 5m/1h (série K3.1 uniquement). Conserver intégralement thinking, signature, tool_use et les blocs de résultats de recherche côté serveur.

> [!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.


## OpenAPI

````yaml fr/api-manual/language-series/kimi/messages/messages-reference.json POST /v1/messages
openapi: 3.1.0
info:
  title: 'API Kimi (tous les modèles) - Messages : Référence complète'
  description: >-
    Appeler les modèles de texte Kimi via le protocole Anthropic Messages.
    Utiliser `model` pour sélectionner `kimi-k3.1-pro`,
    `kimi-k3.1-pro-highspeed` ou `kimi-k3`. Tous ont une fenêtre de contexte de
    1 048 576 tokens et prennent en charge les conversations à plusieurs tours,
    le streaming, les appels d’outils, la recherche Web et les images en entrée.


    Le raisonnement est toujours activé pour les trois modèles ; régler son
    intensité avec `output_config.effort`. La sortie structurée, les séquences
    d’arrêt et le TTL d’écriture du cache sont réservés à la série K3.1 ; voir
    le champ `model`. Dans les conversations à plusieurs tours, renvoyer sans
    modification tous les blocs de contenu assistant, y compris thinking,
    signature et tool_use.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Production (Recommandé)
  - url: https://api.evolink.ai
    description: URL alternative
security:
  - bearerAuth: []
tags:
  - name: Messages
    description: API compatible Anthropic Messages
paths:
  /v1/messages:
    post:
      tags:
        - Messages
      summary: API Kimi Messages (tous les modèles, compatible Anthropic)
      description: >-
        Point d’accès public : POST /v1/messages. Régler l’effort de
        raisonnement avec output_config.effort. cache_control au niveau
        supérieur contrôle les écritures de cache 5m/1h (série K3.1 uniquement).
        Conserver intégralement thinking, signature, tool_use et les blocs de
        résultats de recherche côté serveur.
      operationId: createMessageKimi
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMessageRequest'
            examples:
              simple:
                summary: Requête Pro minimale
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Reply with OK.
              highspeed:
                summary: Requête Highspeed minimale
                value:
                  model: kimi-k3.1-pro-highspeed
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Reply with OK.
              k3:
                summary: Requête minimale Kimi K3
                value:
                  model: kimi-k3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Reply with OK.
              system_prompt:
                summary: Prompt système
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 2048
                  output_config:
                    effort: low
                  system: Vous êtes un rédacteur technique précis.
                  messages:
                    - role: user
                      content: Explique la mise en cache du contexte.
              streaming:
                summary: Streaming SSE Anthropic
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Reply with OK.
                  stream: true
              multimodal:
                summary: Image en entrée
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content:
                        - type: image
                          source:
                            type: base64
                            media_type: image/jpeg
                            data: /9j/4AAQSkZJRgABAQAA...
                        - type: text
                          text: Décris cette image.
              tool_use:
                summary: Utilisation d'outil
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 2048
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Consulte la météo du jour à Pékin.
                  tools:
                    - name: get_weather
                      description: Obtenir la météo d'une ville donnée
                      input_schema:
                        type: object
                        properties:
                          city:
                            type: string
                            description: Nom de la ville
                        required:
                          - city
                  tool_choice:
                    type: auto
              web_search:
                summary: Recherche web côté serveur
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Use web search to find the official Kimi homepage URL.
                  tools:
                    - type: web_search_20250305
                      name: web_search
                      max_uses: 1
              structured_output:
                summary: Sortie structurée stricte (série K3.1 uniquement)
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 1024
                  output_config:
                    effort: low
                    format:
                      type: json_schema
                      schema:
                        type: object
                        properties:
                          result:
                            type: string
                        required:
                          - result
                        additionalProperties: false
                  messages:
                    - role: user
                      content: Return a JSON object with result equal to OK.
              cache_1h:
                summary: Cache 1h au niveau supérieur (série K3.1 uniquement)
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Reply with OK.
                  cache_control:
                    type: ephemeral
                    ttl: 1h
      responses:
        '200':
          description: >-
            Réponse Message ; les requêtes en streaming renvoient un flux
            d'événements Anthropic SSE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
            text/event-stream:
              schema:
                type: string
                description: >-
                  La séquence d'événements comprend généralement message_start,
                  content_block_*, message_delta et message_stop.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    CreateMessageRequest:
      type: object
      required:
        - model
        - max_tokens
        - messages
      properties:
        model:
          type: string
          enum:
            - kimi-k3.1-pro
            - kimi-k3.1-pro-highspeed
            - kimi-k3
          default: kimi-k3.1-pro
          description: >-
            Modèle à appeler :


            | Identifiant du modèle | Positionnement | Effort de raisonnement |

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

            | `kimi-k3.1-pro` | Dernière génération (recommandée) | `low` /
            `high` / `max`, `max` par défaut |

            | `kimi-k3.1-pro-highspeed` | Mêmes paramètres que Pro, génération
            plus rapide | Comme `kimi-k3.1-pro` |

            | `kimi-k3` | Génération précédente | `max` uniquement |


            Les trois modèles ont une fenêtre de contexte de 1 048 576 tokens et
            un raisonnement toujours activé.


            La sortie structurée (`output_config.format`), les séquences d’arrêt
            (`stop_sequences`) et le TTL d’écriture du cache (`cache_control`)
            sont réservés à la série K3.1 et ne sont pas pris en charge par
            `kimi-k3`. Les réponses de `kimi-k3` peuvent contenir uniquement des
            blocs `text`, sans blocs `thinking`.
        max_tokens:
          type: integer
          minimum: 1
          description: >-
            Nombre maximal de tokens autorisés pour cette génération, y compris
            thinking et le texte final.
          maximum: 1048576
        messages:
          type: array
          minItems: 1
          description: >-
            Liste de messages Anthropic Messages. Pour une conversation
            multi-tour, renvoyez les blocs de contenu assistant complets sans
            modification.
          items:
            $ref: '#/components/schemas/Message'
        system:
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/MessagesTextBlockParam'
          description: Prompt système sous forme de chaîne ou de tableau de blocs text.
        stream:
          type: boolean
          default: false
          description: Indique si un flux d'événements Anthropic SSE est renvoyé.
        tools:
          type: array
          description: >-
            Fonctions personnalisées ou recherche web côté serveur. La recherche
            intégrée utilise type=web_search_20250305 et name=web_search ;
            facturation par appel effectué.
          items:
            oneOf:
              - $ref: '#/components/schemas/Tool'
              - $ref: '#/components/schemas/WebSearchTool'
        tool_choice:
          $ref: '#/components/schemas/ToolChoice'
        stop_sequences:
          type: array
          items:
            type: string
          maxItems: 5
          description: >-
            Séquences d’arrêt. Une correspondance exacte arrête la sortie ; la
            séquence correspondante n’est pas émise. Jusqu’à 5 séquences, de 32
            octets maximum chacune. En cas de correspondance, `stop_reason` vaut
            `end_turn` et `stop_sequence` vaut `null`.


            Prises en charge uniquement par `kimi-k3.1-pro` /
            `kimi-k3.1-pro-highspeed`, pas par `kimi-k3`.
        cache_control:
          type: object
          description: >-
            Options d’écriture de cache au niveau supérieur, prises en charge
            uniquement par `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed`, pas par
            `kimi-k3`. Seul cache_control au niveau supérieur contrôle le TTL
            d’écriture ; les marqueurs de cache dans les blocs de messages ne
            remplacent pas ce champ. Valeur par défaut si omis : 5m.
          properties:
            type:
              type: string
              enum:
                - ephemeral
              description: Type de cache, toujours ephemeral.
            ttl:
              type: string
              enum:
                - 5m
                - 1h
              default: 5m
              description: 'TTL du cache : 5m ou 1h ; par défaut : 5m.'
          required:
            - type
        output_config:
          type: object
          description: >-
            Configuration de sortie : effort de raisonnement et sortie
            structurée.
          properties:
            effort:
              type: string
              enum:
                - low
                - high
                - max
                - medium
                - xhigh
                - minimal
                - none
              default: max
              description: >-
                Effort de raisonnement. Le raisonnement reste activé même avec
                `thinking.type: "disabled"`.


                - `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed` : `low` / `high` /
                `max` sont recommandés ; `max` par défaut. Pour les clients
                génériques, `medium` équivaut à `high`, `xhigh` à `max` et
                `minimal` / `none` à `low` ; `none` ne désactive pas le
                raisonnement.

                - `kimi-k3` : seul `max` est pris en charge (valeur par défaut).


                Un effort accru augmente généralement les tokens de raisonnement
                et la latence. Les tokens de raisonnement comptent dans la
                sortie.
            format:
              type: object
              description: >-
                Sortie structurée : le modèle renvoie du JSON respectant
                strictement le JSON Schema spécifié. Pris en charge uniquement
                par `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed`, pas par
                `kimi-k3`. Pour une sortie structurée avec `kimi-k3`, utiliser
                `response_format` de l’API Chat Completions.
              properties:
                type:
                  type: string
                  enum:
                    - json_schema
                schema:
                  type: object
                  description: JSON Schema que la sortie doit respecter.
                  additionalProperties: true
              required:
                - type
                - schema
        temperature:
          type: number
          default: 1
          description: >-
            Température d’échantillonnage, fixée par le modèle à `1` ; il n’est
            pas nécessaire de fournir ce champ. `kimi-k3.1-pro` /
            `kimi-k3.1-pro-highspeed` l’ignorent automatiquement ; `kimi-k3`
            renvoie une erreur pour les valeurs non prises en charge.
        top_p:
          type: number
          default: 0.95
          description: >-
            Seuil d’échantillonnage nucleus, fixé par le modèle à `0.95` ; il
            n’est pas nécessaire de fournir ce champ. `kimi-k3.1-pro` /
            `kimi-k3.1-pro-highspeed` l’ignorent automatiquement ; `kimi-k3`
            renvoie une erreur pour les valeurs non prises en charge.
    MessageResponse:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - message
        role:
          type: string
          enum:
            - assistant
        model:
          type: string
          example: kimi-k3.1-pro
        content:
          type: array
          items:
            $ref: '#/components/schemas/ContentBlock'
        stop_reason:
          type:
            - string
            - 'null'
          enum:
            - end_turn
            - max_tokens
            - tool_use
            - refusal
            - null
        stop_sequence:
          type:
            - string
            - 'null'
        usage:
          $ref: '#/components/schemas/MessageUsage'
    Message:
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          description: Rôle du message. Seuls user et assistant sont pris en charge.
          enum:
            - user
            - assistant
        content:
          description: >-
            Contenu du message sous forme de texte brut ou de tableau de blocs
            de contenu Anthropic.
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ContentBlock'
    MessagesTextBlockParam:
      type: object
      properties:
        type:
          type: string
          enum:
            - text
        text:
          type: string
      required:
        - type
        - text
    Tool:
      type: object
      required:
        - name
        - input_schema
      properties:
        name:
          type: string
          description: Nom de l'outil.
        description:
          type: string
          description: Description aidant le modèle à décider quand utiliser l'outil.
        input_schema:
          type: object
          additionalProperties: true
          description: Définition des paramètres de l'outil au format JSON Schema.
    WebSearchTool:
      type: object
      required:
        - type
        - name
      properties:
        type:
          type: string
          enum:
            - web_search_20250305
        name:
          type: string
          enum:
            - web_search
        max_uses:
          type: integer
          minimum: 1
          description: Nombre maximal de recherches autorisées pour cette réponse.
    ToolChoice:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: >-
            Choix d’outil : auto laisse décider le modèle, any impose un appel
            et none désactive les appels d’outils.
          enum:
            - auto
            - any
            - none
          default: auto
    ContentBlock:
      description: >-
        Bloc de contenu Anthropic pour le texte, l'image, le raisonnement,
        l'appel d'outil ou le résultat d'outil.
      oneOf:
        - $ref: '#/components/schemas/TextBlock'
        - $ref: '#/components/schemas/ImageBlock'
        - $ref: '#/components/schemas/ThinkingBlock'
        - $ref: '#/components/schemas/ToolUseBlock'
        - $ref: '#/components/schemas/ToolResultBlock'
        - $ref: '#/components/schemas/ServerToolUseBlock'
        - $ref: '#/components/schemas/WebSearchResultBlock'
    MessageUsage:
      type: object
      properties:
        input_tokens:
          type: integer
          description: >-
            Tokens d’entrée ordinaires, hors lectures et écritures du cache. Les
            trois catégories sont disjointes ; ne soustrayez pas à nouveau les
            tokens du cache.
        cache_creation_input_tokens:
          type: integer
          description: Tokens d'entrée écrits dans le cache.
        cache_read_input_tokens:
          type: integer
          description: Tokens d'entrée servis depuis le cache.
        output_tokens:
          type: integer
          description: Tokens de sortie, y compris les tokens thinking.
        output_tokens_details:
          type: object
          properties:
            thinking_tokens:
              type: integer
        cache_creation:
          type: object
          properties:
            ephemeral_5m_input_tokens:
              type: integer
              minimum: 0
            ephemeral_1h_input_tokens:
              type: integer
              minimum: 0
          description: >-
            Les deux catégories d’écriture de cache de
            cache_creation_input_tokens. La série K3.1 les facture selon leur
            TTL réel.
        server_tool_use:
          type: object
          properties:
            web_search_requests:
              type: integer
              minimum: 0
          description: Utilisation de la recherche pour cette réponse.
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - error
        error:
          type: object
          properties:
            type:
              type: string
            message:
              type: string
        request_id:
          type: string
    TextBlock:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          description: 'Type de bloc de contenu. Valeur fixe : text.'
          enum:
            - text
        text:
          type: string
          description: Contenu textuel.
    ImageBlock:
      type: object
      required:
        - type
        - source
      description: Bloc de contenu image (entrée multimodale).
      properties:
        type:
          type: string
          enum:
            - image
          description: 'Type de bloc de contenu. Valeur fixe : image.'
        source:
          type: object
          required:
            - type
          description: Source de l'image.
          properties:
            type:
              type: string
              enum:
                - base64
                - url
              description: >-
                Source d’image : base64 pour les données intégrées, url pour une
                référence de fichier.
            media_type:
              type: string
              enum:
                - image/jpeg
                - image/png
                - image/gif
                - image/webp
              description: Type MIME de l'image lorsque `type=base64`.
            data:
              type: string
              description: >-
                Données Base64 de l'image lorsque `type=base64` (sans le préfixe
                `data:`).
            url:
              type: string
              description: Référence de fichier image, uniquement lorsque type=url.
    ThinkingBlock:
      type: object
      required:
        - type
        - thinking
      properties:
        type:
          type: string
          description: 'Type de bloc de contenu. Valeur fixe : thinking.'
          enum:
            - thinking
        thinking:
          type: string
          description: >-
            Contenu de raisonnement du modèle. Renvoyez-le sans modification
            avec la signature dans les conversations multi-tours.
        signature:
          type: string
          description: >-
            Pour une conversation multi-tour, renvoyez cette valeur sans
            modification avec le bloc thinking.
    ToolUseBlock:
      type: object
      required:
        - type
        - id
        - name
        - input
      properties:
        type:
          type: string
          description: 'Type de bloc de contenu. Valeur fixe : tool_use.'
          enum:
            - tool_use
        id:
          type: string
          description: ID tool_use référencé lors du renvoi du résultat.
        name:
          type: string
          description: Nom de l'outil demandé par le modèle.
        input:
          type: object
          additionalProperties: true
          description: Objet d'entrée d'outil généré par le modèle.
    ToolResultBlock:
      type: object
      required:
        - type
        - tool_use_id
        - content
      properties:
        type:
          type: string
          description: 'Type de bloc de contenu. Valeur fixe : tool_result.'
          enum:
            - tool_result
        tool_use_id:
          type: string
          description: ID du bloc tool_use correspondant.
        content:
          description: >-
            Résultat d’outil sous forme de chaîne ou de tableau de blocs texte
            et image.
          oneOf:
            - type: string
            - type: array
              items:
                oneOf:
                  - $ref: '#/components/schemas/TextBlock'
                  - $ref: '#/components/schemas/ImageBlock'
        is_error:
          type: boolean
          default: false
          description: Indique si l'exécution de l'outil a échoué.
    ServerToolUseBlock:
      type: object
      required:
        - type
        - id
        - name
        - input
      properties:
        type:
          type: string
          enum:
            - server_tool_use
        id:
          type: string
        name:
          type: string
        input:
          type: object
          additionalProperties: true
    WebSearchResultBlock:
      type: object
      required:
        - type
        - tool_use_id
        - content
      properties:
        type:
          type: string
          enum:
            - web_search_tool_result
        tool_use_id:
          type: string
        content:
          oneOf:
            - type: array
              items:
                type: object
                additionalProperties: true
            - type: object
              additionalProperties: true
              description: Objet d’erreur de recherche, type=web_search_tool_result_error.
  responses:
    BadRequest:
      description: Paramètres de requête invalides
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: La clé API est absente ou invalide
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimited:
      description: Limite de débit dépassée ou quota insuffisant
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Erreur interne du service
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  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

        ```

````

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