> ## 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 (todos los modelos) - Messages: Referencia completa

> Endpoint público: POST /v1/messages. Configura el esfuerzo de razonamiento con output_config.effort. cache_control de nivel superior controla las escrituras de caché de 5m/1h (solo serie K3.1). Conserva todos los bloques thinking, signature, tool_use y los resultados de búsqueda del servidor.

> [!NOTE]
>
> **BaseURL**: La BaseURL predeterminada es `https://direct.evolink.ai`, que ofrece mejor compatibilidad con los modelos de texto y las conexiones de larga duración. `https://api.evolink.ai` es el endpoint principal para los servicios multimodales y sirve como dirección de respaldo para los modelos de texto.


## OpenAPI

````yaml es/api-manual/language-series/kimi/messages/messages-reference.json POST /v1/messages
openapi: 3.1.0
info:
  title: 'API Kimi (todos los modelos) - Messages: Referencia completa'
  description: >-
    Llama a los modelos de texto Kimi mediante el protocolo Anthropic Messages.
    Usa `model` para seleccionar `kimi-k3.1-pro`, `kimi-k3.1-pro-highspeed` o
    `kimi-k3`. Todos tienen una ventana de contexto de 1.048.576 tokens y
    admiten conversaciones de varios turnos, streaming, llamadas a herramientas,
    búsqueda web e imágenes de entrada.


    El razonamiento siempre está activado en los tres modelos; ajusta su
    intensidad con `output_config.effort`. La salida estructurada, las
    secuencias de detención y el TTL de escritura de caché solo son compatibles
    con la serie K3.1; consulta el campo `model`. En conversaciones de varios
    turnos, reenvía sin cambios todos los bloques de contenido assistant,
    incluidos thinking, signature y tool_use.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Producción (Recomendado)
  - url: https://api.evolink.ai
    description: URL alternativa
security:
  - bearerAuth: []
tags:
  - name: Messages
    description: API compatible con Anthropic Messages
paths:
  /v1/messages:
    post:
      tags:
        - Messages
      summary: API Kimi Messages (todos los modelos, compatible con Anthropic)
      description: >-
        Endpoint público: POST /v1/messages. Configura el esfuerzo de
        razonamiento con output_config.effort. cache_control de nivel superior
        controla las escrituras de caché de 5m/1h (solo serie K3.1). Conserva
        todos los bloques thinking, signature, tool_use y los resultados de
        búsqueda del servidor.
      operationId: createMessageKimi
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMessageRequest'
            examples:
              simple:
                summary: Solicitud mínima de Pro
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Reply with OK.
              highspeed:
                summary: Solicitud mínima de Highspeed
                value:
                  model: kimi-k3.1-pro-highspeed
                  max_tokens: 1024
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Reply with OK.
              k3:
                summary: Solicitud mínima de Kimi K3
                value:
                  model: kimi-k3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Reply with OK.
              system_prompt:
                summary: Prompt de sistema
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 2048
                  output_config:
                    effort: low
                  system: Eres un editor técnico preciso.
                  messages:
                    - role: user
                      content: Explica el almacenamiento en caché del contexto.
              streaming:
                summary: Streaming SSE de 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: Imagen de entrada
                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: Describe esta imagen.
              tool_use:
                summary: Uso de herramientas
                value:
                  model: kimi-k3.1-pro
                  max_tokens: 2048
                  output_config:
                    effort: low
                  messages:
                    - role: user
                      content: Consulta el tiempo de hoy en Pekín.
                  tools:
                    - name: get_weather
                      description: Consultar el tiempo de una ciudad determinada
                      input_schema:
                        type: object
                        properties:
                          city:
                            type: string
                            description: Nombre de la ciudad
                        required:
                          - city
                  tool_choice:
                    type: auto
              web_search:
                summary: Búsqueda web del lado del servidor
                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: Salida estructurada estricta (solo serie K3.1)
                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: Caché de 1h de nivel superior (solo serie K3.1)
                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: >-
            Respuesta Message; las solicitudes en streaming devuelven un flujo
            de eventos Anthropic SSE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
            text/event-stream:
              schema:
                type: string
                description: >-
                  La secuencia de eventos suele incluir message_start,
                  content_block_*, message_delta y 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: >-
            Modelo que se va a llamar:


            | ID del modelo | Características | Esfuerzo de razonamiento |

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

            | `kimi-k3.1-pro` | Última generación (recomendado) | `low` / `high`
            / `max`, `max` de forma predeterminada |

            | `kimi-k3.1-pro-highspeed` | Mismos parámetros que Pro, generación
            más rápida | Igual que `kimi-k3.1-pro` |

            | `kimi-k3` | Generación anterior | Solo `max` |


            Los tres modelos tienen una ventana de contexto de 1.048.576 tokens
            y el razonamiento siempre activado.


            La salida estructurada (`output_config.format`), las secuencias de
            detención (`stop_sequences`) y el TTL de escritura de caché
            (`cache_control`) solo son compatibles con la serie K3.1, no con
            `kimi-k3`. Las respuestas de `kimi-k3` pueden contener únicamente
            bloques `text`, sin bloques `thinking`.
        max_tokens:
          type: integer
          minimum: 1
          description: >-
            Número máximo de tokens permitidos para esta generación, incluidos
            thinking y el texto final.
          maximum: 1048576
        messages:
          type: array
          minItems: 1
          description: >-
            Lista de mensajes de Anthropic Messages. En conversaciones de varios
            turnos, devuelve sin cambios los bloques de contenido completos del
            assistant.
          items:
            $ref: '#/components/schemas/Message'
        system:
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/MessagesTextBlockParam'
          description: Prompt de sistema como cadena o array de bloques text.
        stream:
          type: boolean
          default: false
          description: Indica si se devuelve un flujo de eventos Anthropic SSE.
        tools:
          type: array
          description: >-
            Funciones personalizadas o búsqueda web del servidor. La búsqueda
            integrada usa type=web_search_20250305 y name=web_search; se cobra
            por llamada realizada.
          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: >-
            Secuencias de detención. Una coincidencia exacta detiene la salida y
            la secuencia coincidente no se emite. Hasta 5 secuencias de un
            máximo de 32 bytes cada una. Al coincidir, `stop_reason` es
            `end_turn` y `stop_sequence` es `null`.


            Solo son compatibles con `kimi-k3.1-pro` /
            `kimi-k3.1-pro-highspeed`, no con `kimi-k3`.
        cache_control:
          type: object
          description: >-
            Opciones de escritura de caché de nivel superior, compatibles solo
            con `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed`; `kimi-k3` no admite
            este parámetro. Solo cache_control de nivel superior controla el TTL
            de escritura; los marcadores de caché de los bloques de mensajes no
            sustituyen este campo. El valor predeterminado si se omite es 5m.
          properties:
            type:
              type: string
              enum:
                - ephemeral
              description: Tipo de caché, siempre ephemeral.
            ttl:
              type: string
              enum:
                - 5m
                - 1h
              default: 5m
              description: 'TTL de caché: 5m o 1h; predeterminado: 5m.'
          required:
            - type
        output_config:
          type: object
          description: >-
            Configuración de salida: esfuerzo de razonamiento y salida
            estructurada.
          properties:
            effort:
              type: string
              enum:
                - low
                - high
                - max
                - medium
                - xhigh
                - minimal
                - none
              default: max
              description: >-
                Esfuerzo de razonamiento. El razonamiento sigue activado aunque
                se envíe `thinking.type: "disabled"`.


                - `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed`: se recomiendan
                `low` / `high` / `max`; el valor predeterminado es `max`. Por
                compatibilidad con clientes genéricos, `medium` equivale a
                `high`, `xhigh` a `max` y `minimal` / `none` a `low`; `none` no
                desactiva el razonamiento.

                - `kimi-k3`: solo se admite `max` (predeterminado).


                Un esfuerzo mayor suele aumentar los tokens de razonamiento y la
                latencia. Los tokens de razonamiento se incluyen en la salida.
            format:
              type: object
              description: >-
                Salida estructurada: el modelo devuelve JSON que sigue
                estrictamente el JSON Schema especificado. Solo es compatible
                con `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed`, no con
                `kimi-k3`. Para obtener salida estructurada con `kimi-k3`, usa
                `response_format` de la API Chat Completions.
              properties:
                type:
                  type: string
                  enum:
                    - json_schema
                schema:
                  type: object
                  description: JSON Schema que debe cumplir la salida.
                  additionalProperties: true
              required:
                - type
                - schema
        temperature:
          type: number
          default: 1
          description: >-
            Temperatura de muestreo, fijada por el modelo en `1`; no es
            necesario enviar este campo. `kimi-k3.1-pro` /
            `kimi-k3.1-pro-highspeed` lo ignoran automáticamente; `kimi-k3`
            devuelve un error para valores no admitidos.
        top_p:
          type: number
          default: 0.95
          description: >-
            Umbral de muestreo nucleus, fijado por el modelo en `0.95`; no es
            necesario enviar este campo. `kimi-k3.1-pro` /
            `kimi-k3.1-pro-highspeed` lo ignoran automáticamente; `kimi-k3`
            devuelve un error para valores no admitidos.
    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: Rol del mensaje. Solo se admiten user y assistant.
          enum:
            - user
            - assistant
        content:
          description: >-
            Contenido del mensaje como texto plano o como array de bloques de
            contenido 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: Nombre de la herramienta.
        description:
          type: string
          description: >-
            Descripción que ayuda al modelo a decidir cuándo usar la
            herramienta.
        input_schema:
          type: object
          additionalProperties: true
          description: Definición de parámetros de la herramienta en formato 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: Máximo de búsquedas permitidas en esta respuesta.
    ToolChoice:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: >-
            Selección de herramientas: auto deja decidir al modelo, any exige
            una llamada y none desactiva las herramientas.
          enum:
            - auto
            - any
            - none
          default: auto
    ContentBlock:
      description: >-
        Bloque de contenido de Anthropic para texto, imagen, razonamiento, uso
        de herramientas o resultados de herramientas.
      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 de entrada normal, excluidas lecturas y escrituras de caché.
            Las tres categorías son excluyentes; no vuelva a restar los tokens
            de caché.
        cache_creation_input_tokens:
          type: integer
          description: Tokens de entrada escritos en caché.
        cache_read_input_tokens:
          type: integer
          description: Tokens de entrada servidos desde caché.
        output_tokens:
          type: integer
          description: Tokens de salida, incluidos los tokens de 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: >-
            Los dos niveles de escritura de caché dentro de
            cache_creation_input_tokens. La serie K3.1 factura cada uno según su
            TTL real.
        server_tool_use:
          type: object
          properties:
            web_search_requests:
              type: integer
              minimum: 0
          description: Uso de búsqueda de esta respuesta.
    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: 'Tipo de bloque de contenido. Valor fijo: text.'
          enum:
            - text
        text:
          type: string
          description: Contenido de texto.
    ImageBlock:
      type: object
      required:
        - type
        - source
      description: Bloque de contenido de imagen (entrada multimodal).
      properties:
        type:
          type: string
          enum:
            - image
          description: 'Tipo de bloque de contenido. Valor fijo: image.'
        source:
          type: object
          required:
            - type
          description: Origen de la imagen.
          properties:
            type:
              type: string
              enum:
                - base64
                - url
              description: >-
                Origen de imagen: base64 para datos integrados, url para una
                referencia de archivo.
            media_type:
              type: string
              enum:
                - image/jpeg
                - image/png
                - image/gif
                - image/webp
              description: Tipo MIME de la imagen cuando `type=base64`.
            data:
              type: string
              description: >-
                Datos Base64 de la imagen cuando `type=base64` (sin el prefijo
                `data:`).
            url:
              type: string
              description: Referencia de archivo de imagen, solo cuando type=url.
    ThinkingBlock:
      type: object
      required:
        - type
        - thinking
      properties:
        type:
          type: string
          description: 'Tipo de bloque de contenido. Valor fijo: thinking.'
          enum:
            - thinking
        thinking:
          type: string
          description: >-
            Contenido de razonamiento del modelo. Devuélvelo sin cambios junto
            con la firma en conversaciones de varios turnos.
        signature:
          type: string
          description: >-
            En conversaciones de varios turnos, devuélvelo sin cambios junto con
            el bloque thinking.
    ToolUseBlock:
      type: object
      required:
        - type
        - id
        - name
        - input
      properties:
        type:
          type: string
          description: 'Tipo de bloque de contenido. Valor fijo: tool_use.'
          enum:
            - tool_use
        id:
          type: string
          description: ID de tool_use referenciado al devolver el resultado.
        name:
          type: string
          description: Nombre de la herramienta solicitada por el modelo.
        input:
          type: object
          additionalProperties: true
          description: Objeto de entrada de herramienta generado por el modelo.
    ToolResultBlock:
      type: object
      required:
        - type
        - tool_use_id
        - content
      properties:
        type:
          type: string
          description: 'Tipo de bloque de contenido. Valor fijo: tool_result.'
          enum:
            - tool_result
        tool_use_id:
          type: string
          description: ID del bloque tool_use correspondiente.
        content:
          description: >-
            Resultado de herramienta como cadena o array de bloques de texto e
            imagen.
          oneOf:
            - type: string
            - type: array
              items:
                oneOf:
                  - $ref: '#/components/schemas/TextBlock'
                  - $ref: '#/components/schemas/ImageBlock'
        is_error:
          type: boolean
          default: false
          description: Indica si la ejecución de la herramienta ha fallado.
    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: >-
                Objeto de error de búsqueda con
                type=web_search_tool_result_error.
  responses:
    BadRequest:
      description: Parámetros de solicitud no válidos
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: La API Key no existe o no es válida
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimited:
      description: Límite de solicitudes superado o cuota insuficiente
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Error interno del servicio
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Todas las API requieren autenticación con Bearer Token##


        **Obtener la API Key:**


        Visita la [página de gestión de API
        Keys](https://evolink.ai/dashboard/keys) para obtener tu API Key


        **Añadir al encabezado de la solicitud:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

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