> ## Documentation Index
> Fetch the complete documentation index at: https://mixroute.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Kimi K3.1 Pro

> Moonshot reasoning model with a 1M-token context and native visual understanding for coding and agent workflows.

Kimi K3.1 Pro builds on Kimi K3 with improvements in coding, 3D-development workflows, and research. Use the exact model ID below with MixRoute Chat Completions.

## Model Information

| Field | Value |
| - | - |
| Model ID | `kimi-k3.1-pro` |
| API | `POST /v1/chat/completions` |
| Context window | 1M tokens (provider specification) |

> [!NOTE]
>
> Model capabilities and limits below follow the provider specification. Effective availability, request limits, and pricing depend on the MixRoute route and Model Marketplace.

## Request Examples

Set `MIXROUTE_API_KEY` to your MixRoute API key. The examples select `low` reasoning effort.

**cURL**

```bash theme={null}
curl "https://api.mixroute.ai/v1/chat/completions" \
  -H "Authorization: Bearer $MIXROUTE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kimi-k3.1-pro",
    "messages": [{"role": "user", "content": "Suggest three ways to simplify this application architecture."}],
    "reasoning_effort": "low"
  }'
```

**Python**

```python theme={null}
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MIXROUTE_API_KEY"],
    base_url="https://api.mixroute.ai/v1",
)
response = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[{"role": "user", "content": "Suggest three ways to simplify this application architecture."}],
    reasoning_effort="low",
)
print(response.choices[0].message.content)
```

**Streaming**

```python theme={null}
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MIXROUTE_API_KEY"],
    base_url="https://api.mixroute.ai/v1",
)
stream = client.chat.completions.create(
    model="kimi-k3.1-pro",
    messages=[{"role": "user", "content": "Suggest three ways to simplify this application architecture."}],
    reasoning_effort="low",
    stream=True,
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="", flush=True)
```

## Request Fields

| Parameter | Type | Required | Description |
| - | - | - | - |
| `model` | string | Yes | Use `kimi-k3.1-pro`. |
| `messages` | array | Yes | Messages containing `role` and `content`. |
| `reasoning_effort` | string | No | `low`, `high`, or `max`; default: `max`. Thinking is always enabled. |
| `max_completion_tokens` | integer | No | Output-token budget; provider default 131072, maximum 1048576, subject to context and route limits. |
| `stream` | boolean | No | Set `true` for SSE streaming. |
| `tools` | array | No | OpenAI-format function definitions. |
| `tool_choice` | string | No | `auto`, `none`, or `required`. |

## Usage Notes

* Omit the fixed sampling settings: `temperature=1.0`, `top_p=0.95`, `n=1`, `presence_penalty=0`, and `frequency_penalty=0`. Do not pass the K2.x `thinking` parameter.
* For follow-up turns and tool calls, preserve the complete assistant message, including `reasoning_content` and `tool_calls`; do not keep only `content`.
* For image input, send `content` as an array with an `image_url` part containing a base64 data URL. The provider does not accept public image URLs. Upstream file IDs are not interchangeable with MixRoute files.
* Streaming separates `reasoning_content` from final-answer `content`. The streaming example prints only the final answer.

[Chat Completions request format](https://mixroute.ai/docs/api-reference/endpoint/chat-openai.md)


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