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

# GLM Schnittstelle für alle Modelle - Schnellstart Messages

> - GLM-Modelle über das Anthropic-Messages-Protokoll aufrufen, das konkrete Modell wird über den Parameter `model` gewählt
- Es genügen die drei Parameter `model`, `max_tokens` und `messages` (`max_tokens` ist im Anthropic-Protokoll Pflicht)
- Kontextfenster von 1M Token in der gesamten Serie, bis zu 131.072 Ausgabe-Token
- In der gesamten Serie ist **das Denken standardmäßig aktiv**; die Antwort enthält in `content` einen `type="thinking"`-Block, der zu den Ausgabe-Token zählt
- Für Streaming, Werkzeugaufrufe, Bildeingabe und weitere Funktionen siehe die Seite „Vollständige Parameter“

<Note>
  **BaseURL**: Die Standard-BaseURL ist `https://direct.evolink.ai`, die Textmodelle und langlebige Verbindungen besser unterstützt. `https://api.evolink.ai` ist der primäre Endpunkt für multimodale Dienste und dient als Ausweichadresse für Textmodelle.
</Note>

<Note>
  **Bei der GLM-Serie ist das Denken standardmäßig aktiv** — das `content`-Array der Antwort enthält einen `type="thinking"`-Block, der zu den Ausgabe-Token zählt. `max_tokens` sollte daher nicht zu klein gewählt werden; empfohlen werden mindestens 1024, sonst wird die Antwort möglicherweise abgeschnitten, bevor das Denken abgeschlossen ist, und Sie erhalten keinen Antworttext.
</Note>


## OpenAPI

````yaml de/api-manual/language-series/glm/messages/messages-quickstart.json POST /v1/messages
openapi: 3.1.0
info:
  title: GLM Schnittstelle für alle Modelle - Schnellstart Messages
  description: >-
    Schnelleinstiegsbeispiel für den Aufruf von Zhipu-GLM-Textmodellen über das
    Anthropic-Messages-Protokoll. `model`, `max_tokens` und `messages` genügen,
    um ein Gespräch zu starten; den vollständigen Parametersatz finden Sie auf
    der Seite „Vollständige Parameter“.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Produktion (empfohlen, bessere Unterstützung für Textmodelle)
  - url: https://api.evolink.ai
    description: Alternative URL
security:
  - bearerAuth: []
tags:
  - name: Messages
    description: Schnittstelle des Anthropic Messages-Protokolls
paths:
  /v1/messages:
    post:
      tags:
        - Messages
      summary: GLM Schnellgespräch (alle Modelle, Anthropic-kompatibel)
      description: >-
        - GLM-Modelle über das Anthropic-Messages-Protokoll aufrufen, das
        konkrete Modell wird über den Parameter `model` gewählt

        - Es genügen die drei Parameter `model`, `max_tokens` und `messages`
        (`max_tokens` ist im Anthropic-Protokoll Pflicht)

        - Kontextfenster von 1M Token in der gesamten Serie, bis zu 131.072
        Ausgabe-Token

        - In der gesamten Serie ist **das Denken standardmäßig aktiv**; die
        Antwort enthält in `content` einen `type="thinking"`-Block, der zu den
        Ausgabe-Token zählt

        - Für Streaming, Werkzeugaufrufe, Bildeingabe und weitere Funktionen
        siehe die Seite „Vollständige Parameter“
      operationId: glmMessagesQuick
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMessageQuickRequest'
            examples:
              simple:
                summary: Minimaler Aufruf
                value:
                  model: glm-5.3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Hallo, bitte stelle dich in einem Satz vor
              flash:
                summary: Auf das leichtgewichtige Modell wechseln
                description: >-
                  `glm-5.3-flash` ist deutlich günstiger als `glm-5.3` und
                  eignet sich für häufige Aufrufe.
                value:
                  model: glm-5.3-flash
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: Erkläre in einem Satz, was HTTP ist
              multi_turn:
                summary: Mehrstufige Konversation
                value:
                  model: glm-5.3
                  max_tokens: 1024
                  messages:
                    - role: user
                      content: >-
                        Empfiehl eine Programmiersprache, die für Einsteiger
                        geeignet ist
                    - role: assistant
                      content: >-
                        Ich empfehle Python: knappe Syntax und ein reichhaltiges
                        Ökosystem.
                    - role: user
                      content: Wie lange dauert es ungefähr, das zu lernen?
      responses:
        '200':
          description: Nachrichtenobjekt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageResponse'
              examples:
                with_thinking:
                  summary: Standardmäßig mit thinking-Content-Block
                  value:
                    id: msg_0842a705-9d0b-4eaa-b12d-09a4106326c5
                    type: message
                    role: assistant
                    model: glm-5.3
                    content:
                      - type: thinking
                        thinking: >-
                          Der Benutzer bittet darum, mit einem Wort zu grüßen;
                          eine Antwort mit "Hi" genügt.
                        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: Werkzeugaufruf ausgelöst (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: Ungültige Anfrageparameter
          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: Authentifizierungsfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: authentication_error
                  message: Authentication error
        '402':
          description: Kontingent unzureichend
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: billing_error
                  message: Insufficient quota
        '403':
          description: Berechtigungsfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: permission_error
                  message: Permission denied
        '404':
          description: Modell oder Ressource nicht gefunden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: not_found_error
                  message: Model not found
        '429':
          description: Ratenbegrenzung
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                type: error
                error:
                  type: rate_limit_error
                  message: Rate limited
        '500':
          description: Interner Serverfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Upstream-Dienstfehler
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Dienst vorübergehend nicht verfügbar
          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: >
            Aufzurufendes Modell:


            | Modell-ID | Positionierung |

            |---|---|

            | `glm-5.3` | Flaggschiffmodell mit durchgängigen Fortschritten bei
            komplexer Softwareentwicklung und Agentenaufgaben; 1M Kontext |

            | `glm-5.3-flash` | Leichtgewichtiges multimodales Modell, äußerst
            günstig, native Bildeingabe; 1M Kontext |

            | `glm-5.2` | Flaggschiff der vorigen Generation, komplexes
            Reasoning und sehr langer Kontext; 1M Kontext |
          enum:
            - glm-5.3
            - glm-5.3-flash
            - glm-5.2
          default: glm-5.3
          example: glm-5.3
        max_tokens:
          type: integer
          description: >-
            Maximale Anzahl der bei dieser Anfrage erzeugten Token; im
            Anthropic-Protokoll **erforderlich**.


            Hinweis: Bei der GLM-Serie ist das Denken standardmäßig aktiv, und
            der Denkinhalt verbraucht ebenfalls Ausgabe-Token. Der Wert sollte
            daher nicht zu klein sein — empfohlen werden mindestens 1024.
          minimum: 1
          maximum: 131072
          default: 1024
          example: 1024
        messages:
          type: array
          description: >-
            Liste der Konversationsnachrichten in chronologischer Reihenfolge.
            Mindestens eine Nachricht ist erforderlich.
          minItems: 1
          items:
            $ref: '#/components/schemas/MessageSimple'
    MessageResponse:
      type: object
      description: Nachrichtenantwort im Anthropic-Stil
      properties:
        id:
          type: string
          description: 'Eindeutige Nachrichten-ID (Format: `msg_<uuid>`)'
        type:
          type: string
          enum:
            - message
          description: Typ des Antwortobjekts
        role:
          type: string
          enum:
            - assistant
        model:
          type: string
          description: Tatsächlich verwendetes Modell
          example: glm-5.3
        content:
          type: array
          description: >-
            Liste der Antwortinhaltsblöcke


            **Mögliche block type**:

            - `thinking`: Denkprozess (wenn das Nachdenken aktiviert ist,
            standardmäßig aktiviert)

            - `text`: finaler Antworttext

            - `tool_use`: vom Modell ausgelöster Werkzeugaufruf
          items:
            $ref: '#/components/schemas/OutputContentBlock'
        stop_reason:
          type: string
          description: >-
            Stoppgrund


            - `end_turn`: natürliches Ende (wird auch beim Treffen von
            stop_sequences zurückgegeben)

            - `max_tokens`: max_tokens-Obergrenze erreicht

            - `tool_use`: Das Modell löst einen Werkzeugaufruf aus
          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: >-
                Fehlertyp (z. B. invalid_request_error / authentication_error /
                billing_error usw.)
            message:
              type: string
              description: Fehlerbeschreibung
        request_id:
          type: string
          description: Anfrage-Tracking-ID
    MessageSimple:
      title: Message
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
            - assistant
          description: >-
            Rolle der Nachricht


            - `user`: Benutzereingabe

            - `assistant`: Antwort des Modells (bei mehrstufigen Konversationen
            enthalten)


            Der System-Prompt wird über das Feld `system` auf oberster Ebene
            übergeben, nicht innerhalb von `messages`.
          example: user
        content:
          type: string
          description: Nachrichteninhalt (Klartext)
          example: Hallo, bitte stelle dich in einem Satz vor
    OutputContentBlock:
      type: object
      description: Inhaltsblock in der Antwort
      properties:
        type:
          type: string
          enum:
            - text
            - thinking
            - tool_use
        text:
          type: string
          description: Text, wenn type=`text`
        thinking:
          type: string
          description: Denkprozesstext, wenn type=`thinking`
        signature:
          type: string
          description: Signatur bei type=`thinking` (kann eine leere Zeichenkette sein)
        id:
          type: string
          description: Werkzeugaufruf-ID, wenn type=`tool_use`
        name:
          type: string
          description: Werkzeugname, wenn type=`tool_use`
        input:
          type: object
          description: Vom Modell generierte JSON-Eingabeparameter, wenn type=`tool_use`
    AnthropicUsage:
      type: object
      description: Token-Nutzungsstatistik (Anthropic-Spezifikation)
      properties:
        input_tokens:
          type: integer
          description: Anzahl der Input-Tokens (nicht im Cache getroffener Anteil)
          example: 18
        output_tokens:
          type: integer
          description: Anzahl der Output-Tokens (inklusive thinking)
          example: 101
        cache_creation_input_tokens:
          type: integer
          description: >-
            Anzahl der für die Cache-Erstellung verwendeten Eingabe-Token (bei
            der GLM-Serie immer 0)
          example: 0
        cache_read_input_tokens:
          type: integer
          description: >-
            Anzahl der im Cache getroffenen Input-Tokens (bei implizitem
            Cache-Treffer etwa die Länge des identischen Präfixes)
          example: 0
        prompt_tokens_details:
          type: object
          description: >-
            Aufschlüsselung der Eingabe-Token (Cache-Treffer-Felder, werden von
            der GLM-Serie ebenfalls zurückgegeben)
          properties:
            cached_tokens:
              type: integer
              description: Anzahl der im Cache getroffenen Input-Tokens
              example: 0
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle APIs erfordern eine Bearer-Token-Authentifizierung##


        **API-Key erhalten**:


        Besuchen Sie die
        [API-Key-Verwaltungsseite](https://evolink.ai/dashboard/keys), um Ihren
        API-Key zu erhalten


        **Zum Anfrage-Header hinzufügen**:

        ```

        Authorization: Bearer YOUR_API_KEY

        ```


        **Anmerkung**: EvoLink verwendet für `/v1/messages` einheitlich die
        Bearer-Token-Authentifizierung.

````