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

# Interfaz de todos los modelos GLM - Inicio rápido de Messages

> - Llama a los modelos de la serie GLM mediante el protocolo Anthropic Messages, eligiendo el modelo concreto con el parámetro `model`
- Bastan los tres parámetros `model`, `max_tokens` y `messages` (`max_tokens` es obligatorio en el protocolo Anthropic)
- Ventana de contexto de 1M tokens en toda la serie, con hasta 131.072 tokens de salida
- **El pensamiento viene activado por defecto** en toda la serie: el `content` de la respuesta incluye un bloque `type="thinking"`, que cuenta como tokens de salida
- Para streaming, llamadas a herramientas, entrada de imagen y demás capacidades, consulta la página «Referencia completa»

<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.
</Note>

<Note>
  **La serie GLM tiene el pensamiento activado por defecto**: la matriz `content` de la respuesta incluye un bloque `type="thinking"`, que cuenta como tokens de salida. Por eso `max_tokens` no debe ser demasiado bajo; se recomienda 1024 o más, ya que en caso contrario la respuesta puede truncarse antes de terminar de pensar y no obtendrás el texto de la respuesta.
</Note>


## OpenAPI

````yaml es/api-manual/language-series/glm/messages/messages-quickstart.json POST /v1/messages
openapi: 3.1.0
info:
  title: Interfaz de todos los modelos GLM - Inicio rápido de Messages
  description: >-
    Ejemplo de inicio rápido para llamar a los modelos de texto Zhipu GLM
    mediante el protocolo Anthropic Messages. Basta con `model`, `max_tokens` y
    `messages` para iniciar una conversación; para el conjunto completo de
    parámetros, consulta la página «Referencia completa».
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Producción (recomendado, mejor compatibilidad con modelos de texto)
  - url: https://api.evolink.ai
    description: URL alternativa
security:
  - bearerAuth: []
tags:
  - name: Messages
    description: Interfaz del protocolo Anthropic Messages
paths:
  /v1/messages:
    post:
      tags:
        - Messages
      summary: Conversación rápida GLM (todos los modelos, compatible con Anthropic)
      description: >-
        - Llama a los modelos de la serie GLM mediante el protocolo Anthropic
        Messages, eligiendo el modelo concreto con el parámetro `model`

        - Bastan los tres parámetros `model`, `max_tokens` y `messages`
        (`max_tokens` es obligatorio en el protocolo Anthropic)

        - Ventana de contexto de 1M tokens en toda la serie, con hasta 131.072
        tokens de salida

        - **El pensamiento viene activado por defecto** en toda la serie: el
        `content` de la respuesta incluye un bloque `type="thinking"`, que
        cuenta como tokens de salida

        - Para streaming, llamadas a herramientas, entrada de imagen y demás
        capacidades, consulta la página «Referencia completa»
      operationId: glmMessagesQuick
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMessageQuickRequest'
            examples:
              simple:
                summary: Llamada mínima
                value:
                  model: glm-5.3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Hola, preséntate en una frase
              flash:
                summary: Cambiar al modelo ligero
                description: >-
                  `glm-5.3-flash` cuesta mucho menos que `glm-5.3` y resulta
                  adecuado para llamadas de alta frecuencia.
                value:
                  model: glm-5.3-flash
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Explica en una frase qué es HTTP
              multi_turn:
                summary: Conversación de varios turnos
                value:
                  model: glm-5.3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: >-
                        Recomiéndame un lenguaje de programación adecuado para
                        principiantes
                    - role: assistant
                      content: >-
                        Recomiendo Python: sintaxis concisa y un ecosistema
                        rico.
                    - role: user
                      content: ¿Cuánto tiempo se tarda aproximadamente en aprenderlo?
      responses:
        '200':
          description: Objeto de mensaje
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              examples:
                with_thinking:
                  summary: >-
                    Bloque de contenido thinking incluido de forma
                    predeterminada
                  value:
                    id: msg_0842a705-9d0b-4eaa-b12d-09a4106326c5
                    type: message
                    role: assistant
                    model: glm-5.3
                    content:
                      - type: thinking
                        thinking: >-
                          El usuario pide saludar con una sola palabra, basta
                          con responder "Hi".
                        signature: ''
                      - type: text
                        text: Hi.
                    stop_reason: end_turn
                    usage:
                      input_tokens: 18
                      output_tokens: 101
                      cache_creation_input_tokens: 0
                      cache_read_input_tokens: 0
                      prompt_tokens_details:
                        cached_tokens: 0
                tool_use:
                  summary: Se activa la llamada a herramientas (stop_reason=tool_use)
                  value:
                    id: msg_067e85db-53df-43a1-bd38-09c53375f2f0
                    type: message
                    role: assistant
                    model: glm-5.3
                    content:
                      - type: tool_use
                        id: toolu_36b8a98e284c426799f08612
                        name: get_weather
                        input:
                          city: Tokyo
                    stop_reason: tool_use
                    usage:
                      input_tokens: 161
                      output_tokens: 11
                      cache_creation_input_tokens: 0
                      cache_read_input_tokens: 0
                      prompt_tokens_details:
                        cached_tokens: 0
        '400':
          description: Parámetros de solicitud no válidos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                request_id: req_xxx
                error:
                  type: invalid_request_error
                  message: Invalid request
        '401':
          description: Error de autenticación
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: authentication_error
                  message: Authentication error
        '402':
          description: Cuota insuficiente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: billing_error
                  message: Insufficient quota
        '403':
          description: Error de permisos
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: permission_error
                  message: Permission denied
        '404':
          description: Modelo o recurso no encontrado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: not_found_error
                  message: Model not found
        '429':
          description: Límite de frecuencia
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: rate_limit_error
                  message: Rate limited
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Error del servicio upstream
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Servicio temporalmente no disponible
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CreateMessageQuickRequest:
      title: Create Message Quick Request
      type: object
      required:
        - model
        - max_tokens
        - messages
      properties:
        model:
          type: string
          description: >
            Modelo a invocar:


            | ID del modelo | Posicionamiento |

            |---|---|

            | `glm-5.3` | Modelo insignia, con avances generalizados en
            ingeniería de software compleja y tareas de agente; contexto de 1M |

            | `glm-5.3-flash` | Modelo multimodal ligero, coste muy bajo,
            entrada de imagen nativa; contexto de 1M |

            | `glm-5.2` | Insignia de la generación anterior, razonamiento
            complejo y contexto muy largo; contexto de 1M |
          enum:
            - glm-5.3
            - glm-5.3-flash
            - glm-5.2
          default: glm-5.3
          example: glm-5.3
        max_tokens:
          type: integer
          description: >-
            Número máximo de tokens generados en esta solicitud; **obligatorio**
            en el protocolo Anthropic.


            Nota: la serie GLM tiene el pensamiento activado de forma
            predeterminada y su contenido también consume tokens de salida, por
            lo que este valor no debe ser demasiado pequeño — se recomienda no
            bajar de 1024.
          minimum: 1
          maximum: 131072
          default: 1024
          example: 1024
        messages:
          type: array
          description: >-
            Lista de mensajes de la conversación, en orden cronológico. Se
            requiere al menos un mensaje.
          minItems: 1
          items:
            $ref: '#/components/schemas/MessageSimple'
    MessageResponse:
      type: object
      description: Respuesta de mensaje al estilo de Anthropic
      properties:
        id:
          type: string
          description: 'ID único del mensaje (formato: `msg_<uuid>`)'
        type:
          type: string
          enum:
            - message
          description: Tipo de objeto de respuesta
        role:
          type: string
          enum:
            - assistant
        model:
          type: string
          description: Modelo realmente utilizado
          example: glm-5.3
        content:
          type: array
          description: >-
            Lista de bloques de contenido de la respuesta


            **Posibles block type**:

            - `thinking`: proceso de razonamiento (cuando el pensamiento está
            activado, activado de forma predeterminada)

            - `text`: texto de la respuesta final

            - `tool_use`: llamada a herramienta iniciada por el modelo
          items:
            $ref: '#/components/schemas/OutputContentBlock'
        stop_reason:
          type: string
          description: >-
            Motivo de la parada


            - `end_turn`: finalización natural (también devuelve este valor al
            encontrar stop_sequences)

            - `max_tokens`: se alcanzó el límite de max_tokens

            - `tool_use`: el modelo activó una llamada a herramienta
          enum:
            - end_turn
            - max_tokens
            - tool_use
        usage:
          $ref: '#/components/schemas/AnthropicUsage'
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          enum:
            - error
        error:
          type: object
          properties:
            type:
              type: string
              description: >-
                Tipo de error (p. ej. invalid_request_error /
                authentication_error / billing_error, etc.)
            message:
              type: string
              description: Descripción del error
        request_id:
          type: string
          description: ID de seguimiento de la solicitud
    MessageSimple:
      title: Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
            - assistant
          description: >-
            Rol del mensaje


            - `user`: entrada del usuario

            - `assistant`: respuesta del modelo (incluida en conversaciones de
            varios turnos)


            Envía la indicación del sistema mediante el campo `system` de nivel
            superior, no dentro de `messages`.
          example: user
        content:
          type: string
          description: Contenido del mensaje (texto plano)
          example: Hola, preséntate en una frase
    OutputContentBlock:
      type: object
      description: Bloque de contenido en la respuesta
      properties:
        type:
          type: string
          enum:
            - text
            - thinking
            - tool_use
        text:
          type: string
          description: Texto cuando type=`text`
        thinking:
          type: string
          description: Texto del proceso de razonamiento cuando type=`thinking`
        signature:
          type: string
          description: Firma cuando type=`thinking` (puede ser una cadena vacía)
        id:
          type: string
          description: ID de la llamada a la herramienta cuando type=`tool_use`
        name:
          type: string
          description: Nombre de la herramienta cuando type=`tool_use`
        input:
          type: object
          description: >-
            Argumentos de entrada JSON generados por el modelo cuando
            type=`tool_use`
    AnthropicUsage:
      type: object
      description: Estadísticas de uso de tokens (especificación de Anthropic)
      properties:
        input_tokens:
          type: integer
          description: Número de tokens de entrada (parte que no acertó en caché)
          example: 18
        output_tokens:
          type: integer
          description: Número de tokens de salida (incluye thinking)
          example: 101
        cache_creation_input_tokens:
          type: integer
          description: >-
            Número de tokens de entrada de creación de caché (siempre 0 en la
            serie GLM)
          example: 0
        cache_read_input_tokens:
          type: integer
          description: >-
            Número de tokens de entrada con acierto de caché (con acierto de
            caché implícita, aproximadamente la longitud del prefijo idéntico)
          example: 0
        prompt_tokens_details:
          type: object
          description: >-
            Desglose de tokens de entrada (campos de acierto de caché, también
            devueltos por la serie GLM)
          properties:
            cached_tokens:
              type: integer
              description: Número de tokens de entrada que acertaron en caché
              example: 0
  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 al usarla**:

        ```

        Authorization: Bearer YOUR_API_KEY

        ```


        **Nota**: EvoLink usa de forma unificada la autenticación con Bearer
        Token para `/v1/messages`.

````