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

# Kimi K3.1 Pro / Highspeed – OpenAI-kompatible API

> Beide Modelle im OpenAI-Chat-Completions-Format mit JSON- oder SSE-Antworten aufrufen. reasoning_content und tool_calls der Assistant-Nachricht in weiteren Gesprächsrunden vollständig erhalten.

Wenn die Websuche tool_calls zurückgibt, function.arguments jedes Aufrufs als Inhalt einer tool-Nachricht mit passender tool_call_id zurückgeben und die endgültige Antwort anfordern.

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


## OpenAPI

````yaml de/api-manual/language-series/kimi-k3.1-pro/kimi-k3.1-pro-chat.json POST /v1/chat/completions
openapi: 3.1.0
info:
  title: Kimi K3.1 Pro / Highspeed – OpenAI-kompatible API
  description: >-
    Kimi K3.1 Pro / Highspeed über OpenAI Chat Completions mit `kimi-k3.1-pro` /
    `kimi-k3.1-pro-highspeed` aufrufen. Beide Modelle bieten 1.048.576 Token
    Kontext und unterstützen mehrstufige Gespräche, Streaming, Werkzeugaufrufe,
    Websuche, strukturierte Ausgabe und Kontext-Caching.


    Schlussfolgerungen sind immer aktiv. `reasoning_effort` unterstützt `low` /
    `high` / `max`, Standard ist `max`. Den vollständigen Denk- und
    Werkzeugverlauf in weiteren Gesprächsrunden erhalten.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://direct.evolink.ai
    description: Produktion (empfohlen)
  - url: https://api.evolink.ai
    description: Alternative URL
security:
  - bearerAuth: []
tags:
  - name: Chat Completions
    description: OpenAI-Chat-Completions-kompatible API
paths:
  /v1/chat/completions:
    post:
      tags:
        - Chat Completions
      summary: Kimi K3.1 Pro / Highspeed Chat-API (OpenAI-kompatibel)
      description: >-
        Beide Modelle im OpenAI-Chat-Completions-Format mit JSON- oder
        SSE-Antworten aufrufen. reasoning_content und tool_calls der
        Assistant-Nachricht in weiteren Gesprächsrunden vollständig erhalten.


        Wenn die Websuche tool_calls zurückgibt, function.arguments jedes
        Aufrufs als Inhalt einer tool-Nachricht mit passender tool_call_id
        zurückgeben und die endgültige Antwort anfordern.
      operationId: createChatCompletionKimiK31Pro
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
            examples:
              simple:
                summary: Minimale Pro-Anfrage
                value:
                  model: kimi-k3.1-pro
                  messages:
                    - role: user
                      content: Reply with OK.
                  reasoning_effort: low
                  max_completion_tokens: 1024
              highspeed:
                summary: Minimale Highspeed-Anfrage
                value:
                  model: kimi-k3.1-pro-highspeed
                  messages:
                    - role: user
                      content: Reply with OK.
                  reasoning_effort: low
                  max_completion_tokens: 1024
              streaming:
                summary: SSE-Streaming
                value:
                  model: kimi-k3.1-pro
                  messages:
                    - role: user
                      content: Reply with OK.
                  reasoning_effort: low
                  max_completion_tokens: 1024
                  stream: true
              cache_1h:
                summary: Automatisches Schreiben in den 1h-Cache
                value:
                  model: kimi-k3.1-pro
                  messages:
                    - role: user
                      content: Reply with OK.
                  reasoning_effort: low
                  max_completion_tokens: 1024
                  prompt_cache_options:
                    mode: implicit
                    ttl: 1h
              web_search:
                summary: Websuche (einheitliche Syntax)
                value:
                  model: kimi-k3.1-pro
                  messages:
                    - role: user
                      content: Use web search to find the official Kimi homepage URL.
                  reasoning_effort: low
                  max_completion_tokens: 1024
                  tools:
                    - type: web_search
              structured_output:
                summary: Striktes JSON Schema
                value:
                  model: kimi-k3.1-pro
                  messages:
                    - role: user
                      content: Return a JSON object with result equal to OK.
                  reasoning_effort: low
                  max_completion_tokens: 1024
                  response_format:
                    type: json_schema
                    json_schema:
                      name: result
                      strict: true
                      schema:
                        type: object
                        properties:
                          result:
                            type: string
                        required:
                          - result
                        additionalProperties: false
              function_calling:
                summary: Function Calling
                value:
                  model: kimi-k3.1-pro
                  messages:
                    - role: user
                      content: Prüfe das heutige Wetter in Peking.
                  tools:
                    - type: function
                      function:
                        name: get_weather
                        description: Wetter für eine bestimmte Stadt abfragen
                        parameters:
                          type: object
                          properties:
                            city:
                              type: string
                              description: Name der Stadt
                          required:
                            - city
                  tool_choice: auto
      responses:
        '200':
          description: >-
            Chat-Completion-Antwort; Streaming-Anfragen liefern einen
            SSE-Ereignisstrom
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
            text/event-stream:
              schema:
                type: string
                description: >-
                  SSE-Daten im OpenAI-Chat-Completions-Format, abgeschlossen mit
                  `data: [DONE]`.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    ChatCompletionRequest:
      type: object
      required:
        - model
        - messages
      properties:
        model:
          type: string
          enum:
            - kimi-k3.1-pro
            - kimi-k3.1-pro-highspeed
          default: kimi-k3.1-pro
          description: >-
            `kimi-k3.1-pro` oder `kimi-k3.1-pro-highspeed` verwenden; Highspeed
            generiert schneller.
        messages:
          type: array
          minItems: 1
          description: >-
            Gesprächsnachrichten. Bei mehrstufigen Gesprächen müssen
            vollständige historische Assistant-Nachrichten aufgenommen werden.
          items:
            $ref: '#/components/schemas/ChatMessage'
        max_completion_tokens:
          type: integer
          minimum: 1
          maximum: 1048576
          default: 131072
          description: >-
            Maximale Anzahl generierter Token einschließlich Schlussfolgerungen
            und endgültiger Antwort. Standard: 131072; Maximum: 1048576,
            zusätzlich durch den verbleibenden Kontext begrenzt.
        reasoning_effort:
          type: string
          enum:
            - low
            - high
            - max
            - medium
            - xhigh
            - minimal
            - none
          default: max
          description: >-
            Denkaufwand: low / high / max empfohlen, Standard: max.
            Schlussfolgerungen sind immer aktiv. Client-Aliase: medium wird
            high, xhigh wird max, minimal / none wird low. none deaktiviert das
            Denken nicht. Höhere Stufen erhöhen meist Denk-Token und Latenz.
            Denk-Token zählen zur Ausgabe.
        stream:
          type: boolean
          default: false
          description: Ob die Antwort als SSE-Strom zurückgegeben wird.
        tools:
          type: array
          maxItems: 128
          description: >-
            Funktionswerkzeuge oder Websuche. Suche mit {"type":"web_search"}
            deklarieren.
          items:
            oneOf:
              - $ref: '#/components/schemas/FunctionTool'
              - $ref: '#/components/schemas/WebSearchTool'
        tool_choice:
          oneOf:
            - type: string
              enum:
                - auto
                - none
                - required
            - $ref: '#/components/schemas/NamedToolChoice'
          description: >-
            Steuert, ob das Modell Werkzeuge aufruft oder eine bestimmte
            Funktion erzwingt.
        prompt_cache_options:
          type: object
          description: >-
            Optionen für das Kontext-Cache-Schreiben. Ohne Angabe wird
            automatisch der 5m-Cache verwendet. Schreiben und Lesen werden
            getrennt abgerechnet.
          properties:
            mode:
              type: string
              enum:
                - implicit
              default: implicit
            ttl:
              type: string
              enum:
                - 5m
                - 1h
              default: 5m
              description: 'Cache-TTL: 5m oder 1h; Standard: 5m.'
        response_format:
          type: object
          description: >-
            Ausgabeformat: text für Klartext, json_object für ein JSON-Objekt
            oder json_schema für strukturierte Ausgabe gemäß JSON Schema.
          properties:
            type:
              type: string
              enum:
                - text
                - json_object
                - json_schema
              description: >-
                Ausgabeformat: text (Standard) für Klartext; json_object für ein
                gültiges JSON-Objekt; json_schema für Schema-konforme Ausgabe
                (empfohlen; json_schema angeben).
            json_schema:
              type: object
              description: JSON Schema für die Ausgabe bei type=json_schema.
              properties:
                name:
                  type: string
                  description: Schema-Name zur Identifikation.
                strict:
                  type: boolean
                  default: true
                  description: >-
                    Ob das angegebene JSON Schema strikt eingehalten wird;
                    Standard: true.
                schema:
                  type: object
                  description: JSON Schema zur Definition der Ausgabestruktur.
                  additionalProperties: true
              required:
                - name
                - schema
        max_tokens:
          type: integer
          minimum: 1
          maximum: 1048576
          deprecated: true
          description: >-
            Veralteter Alias für das Ausgabelimit. Für neue Anfragen
            max_completion_tokens verwenden; nicht beide setzen.
    ChatCompletionResponse:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
          example: chat.completion
        created:
          type: integer
        model:
          type: string
          example: kimi-k3.1-pro
        choices:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
              message:
                $ref: '#/components/schemas/ChatMessage'
              finish_reason:
                type: string
                enum:
                  - stop
                  - length
                  - tool_calls
        usage:
          $ref: '#/components/schemas/ChatUsage'
    ChatMessage:
      type: object
      required:
        - role
      properties:
        role:
          type: string
          description: 'Nachrichtenrolle: system, user, assistant oder tool.'
          enum:
            - system
            - user
            - assistant
            - tool
        content:
          description: >-
            Nachrichtentext. Bei Klartext einen String übergeben; bei
            multimodaler Eingabe ein Array von Inhaltsblöcken (Text + Bild +
            Video). Bei einem Werkzeugaufruf darf der Assistant-Inhalt null
            sein.
          oneOf:
            - type: string
              description: Nachrichtentext als Klartext.
            - type: array
              description: Array multimodaler Inhaltsblöcke.
              items:
                $ref: '#/components/schemas/ContentPart'
            - type: 'null'
        reasoning_content:
          type: string
          description: >-
            Schlussfolgerungsinhalt des Assistant. Bei mehrstufigen Gesprächen
            als Teil der vollständigen Assistant-Nachricht unverändert
            zurücksenden.
        tool_calls:
          type: array
          description: >-
            Vom Assistant zurückgegebene Werkzeugaufrufe. In nachfolgenden
            Werkzeugrunden unverändert zurücksenden.
          items:
            $ref: '#/components/schemas/ToolCall'
        tool_call_id:
          type: string
          description: ID des zugehörigen Werkzeugaufrufs bei `role=tool`.
    FunctionTool:
      type: object
      required:
        - type
        - function
      properties:
        type:
          type: string
          description: Werkzeugtyp. Derzeit fest auf function eingestellt.
          enum:
            - function
        function:
          type: object
          description: Für das Modell verfügbare Funktionsdefinition.
          required:
            - name
            - parameters
          properties:
            name:
              type: string
              description: Funktionsname.
            description:
              type: string
              description: >-
                Beschreibung, anhand derer das Modell entscheidet, wann die
                Funktion aufgerufen wird.
            parameters:
              type: object
              additionalProperties: true
              description: Definition der Funktionsparameter im JSON-Schema-Format.
            strict:
              type: boolean
              description: >-
                Ob Funktionsargumente strikt dem JSON Schema in parameters
                entsprechen müssen.
    WebSearchTool:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - web_search
          description: Websuchwerkzeug.
    NamedToolChoice:
      type: object
      required:
        - type
        - function
      properties:
        type:
          type: string
          description: Typ der benannten Werkzeugauswahl. Fest auf function eingestellt.
          enum:
            - function
        function:
          type: object
          description: Funktion, die das Modell aufrufen muss.
          required:
            - name
          properties:
            name:
              type: string
              description: Name der Funktion, die das Modell aufrufen muss.
    ChatUsage:
      type: object
      properties:
        prompt_tokens:
          type: integer
          description: >-
            Gesamte Eingabe-Token einschließlich normaler Eingabe, Cache-Lesen
            und Cache-Schreiben. Normale Eingabe = prompt_tokens - cached_tokens
            - cache_write_tokens.
        completion_tokens:
          type: integer
          description: Enthält Schlussfolgerungs-Token.
        total_tokens:
          type: integer
          description: Gesamtzahl der Eingabe- und Ausgabe-Token.
        prompt_tokens_details:
          type: object
          properties:
            cached_tokens:
              type: integer
              description: Aus dem Cache gelieferte Eingabe-Token.
            cache_write_tokens:
              type: integer
              minimum: 0
              description: >-
                Gesamte in den Cache geschriebene Token einschließlich 5m / 1h.
                Nicht erneut als normale Eingabe abrechnen.
        completion_tokens_details:
          type: object
          properties:
            reasoning_tokens:
              type: integer
              description: Schlussfolgerungs-Token, bereits in completion_tokens enthalten.
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            type:
              type: string
            code:
              type:
                - string
                - 'null'
    ContentPart:
      description: Multimodaler Inhaltsblock. `type` bestimmt, welches Feld verwendet wird.
      oneOf:
        - type: object
          required:
            - type
            - text
          properties:
            type:
              type: string
              enum:
                - text
            text:
              type: string
              description: Textinhalt, wenn `type=text`.
        - type: object
          required:
            - type
            - image_url
          properties:
            type:
              type: string
              enum:
                - image_url
            image_url:
              description: >-
                Bild, wenn `type=image_url`; kann auch direkt als URL-String
                übergeben werden.
              oneOf:
                - type: string
                - type: object
                  required:
                    - url
                  properties:
                    url:
                      type: string
                      description: >-
                        Bildinhalt als Base64-data-URL
                        (data:image/png;base64,...).
        - type: object
          required:
            - type
            - video_url
          properties:
            type:
              type: string
              enum:
                - video_url
            video_url:
              description: >-
                Video, wenn `type=video_url`; kann auch direkt als URL-String
                übergeben werden.
              oneOf:
                - type: string
                - type: object
                  required:
                    - url
                  properties:
                    url:
                      type: string
                      description: >-
                        Videoinhalt als Base64-data-URL
                        (data:video/mp4;base64,...).
    ToolCall:
      type: object
      required:
        - id
        - type
        - function
      properties:
        id:
          type: string
          description: >-
            Werkzeugaufruf-ID, über die eine nachfolgende tool-Nachricht mit
            tool_call_id verknüpft wird.
        type:
          type: string
          description: >-
            Typ des Tool-Aufrufs: `function` für clientseitige Funktionen;
            `builtin_function` für das integrierte Tool `$web_search`.
          enum:
            - function
            - builtin_function
        function:
          type: object
          description: Vom Modell angeforderte Funktion und Argumente.
          properties:
            name:
              type: string
              description: Funktionsname.
            arguments:
              type: string
              description: Als JSON-Zeichenfolge codierte Funktionsargumente.
      description: >-
        Werkzeugaufrufe in weiteren Gesprächsrunden vollständig erhalten,
        einschließlich IDs, Typen, Funktionsnamen, Argumenten und
        Schlussfolgerungen.
  responses:
    BadRequest:
      description: Ungültige Anfrageparameter
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: API-Schlüssel fehlt oder ist ungültig
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimited:
      description: Ratenlimit überschritten oder Kontingent nicht ausreichend
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Interner Dienstfehler
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Alle APIs erfordern Bearer-Token-Authentifizierung##


        **API-Schlüssel erhalten**:


        Besuchen Sie die
        [API-Schlüsselverwaltungsseite](https://evolink.ai/dashboard/keys), um
        Ihren API-Schlüssel zu erhalten


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

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

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