inference-providers

Kimi K3

by moonshot · family kimi

Facts

Release date2026-07-22
Retired date
Knowledge cutoff
Context (max)1,048,576
Max output65,535
Modalitiestext, image → text
Aliasesk3
Open weightsno
DescriptionFlagship 2.8T-param MoE (16/896 active) with vision; always-on reasoning; weights open-sourcing promised 2026-07-27.

Unknown values are shown as —.

Intelligence Index v4.1.1: 60 · max effort · Source: Artificial Analysis (accessed 2026-08-20)

Offerings

ProviderWire IDVariantEndpointProtocolStatusPrice (USD / Mtok)Reasoning
Basetenmoonshotai/Kimi-K3chat-completionsopenai-chatga3.00 / 15.00effort · default on · returns reasoning_content · round-trips reasoning_content
IO Intelligence (io.net)moonshotai/Kimi-K3chatopenai-chatga3.00 / 15.00effort · default on · returns reasoning_content
Kimi for Codingk3-256kcoding-anthropicanthropic-messagesgaalways_on · default on · mandatory · returns reasoning_content · round-trips reasoning_content
Kimi for Codingk3coding-openaiopenai-chatgaeffort · default on · mandatory · returns reasoning_content · round-trips reasoning_content
Moonshot Kimikimi-k3chat-completionsopenai-chatga3.00 / 15.00effort · default on · mandatory · returns reasoning_content · round-trips reasoning_content
NEAR AI Cloudmoonshotai/kimi-k3chatopenai-chatga3.30 / 16.50toggle · default on · returns reasoning_content
NVIDIA NIM APImoonshotai/kimi-k3v1-chat-completionsopenai-chatgatoggle · default on · returns reasoning_content
Ollama Cloudkimi-k3v1-chat-completionsopenai-chatgaeffort · default on · returns hidden
OpenCode Gokimi-k3go-chat-completionsopenai-chatgatoggle · default on · returns reasoning_content · round-trips reasoning_content
OpenCode Zenkimi-k3chat-completionsopenai-chatga3.00 / 15.00toggle · default on · returns reasoning_content · round-trips reasoning_content
OpenRoutermoonshotai/kimi-k3chat-completionsopenai-chatga3.00 / 15.00effort · default on · mandatory · returns reasoning_content · round-trips reasoning_content
Synthetichf:moonshotai/Kimi-K3openai-chatopenai-chatgaadaptive · default on · returns hidden
Syntheticsyn:large:visionopenai-chatopenai-chatgaeffort · default on · returns reasoning_content

Reasoning controls

Baseten· moonshotai/Kimi-K3· chat-completions effort

reasoning_effort nonelowhighmax● none disables reasoning.

effort · default on · returns reasoning_content · round-trips reasoning_content

IO Intelligence (io.net)· moonshotai/Kimi-K3· chat effort

reasoning.effort nonelowmediumhigh● Default not documented — verify.

effort · default on · returns reasoning_content

Kimi for Coding· k3-256k· coding-anthropic always_on

always_on · default on · mandatory · returns reasoning_content · round-trips reasoning_content

Kimi for Coding· k3· coding-openai effort

reasoning_effort lowhighmax●

effort · default on · mandatory · returns reasoning_content · round-trips reasoning_content

Moonshot Kimi· kimi-k3· chat-completions effort

reasoning_effort lowhighmax●

effort · default on · mandatory · returns reasoning_content · round-trips reasoning_content

Incompatible with: temperature, top_p, n, presence_penalty, frequency_penalty

NEAR AI Cloud· moonshotai/kimi-k3· chat toggle

chat_template_kwargs.thinking on true · off false

toggle · default on · returns reasoning_content

NVIDIA NIM API· moonshotai/kimi-k3· v1-chat-completions toggle

chat_template_kwargs.thinking on true · off false

toggle · default on · returns reasoning_content

Ollama Cloud· kimi-k3· v1-chat-completions effort

reasoning_effort nonelowmediumhigh●max Default level not documented; verify.

effort · default on · returns hidden

OpenCode Go· kimi-k3· go-chat-completions toggle

thinking.type on enabled · off disabled

toggle · default on · returns reasoning_content · round-trips reasoning_content

Incompatible with: temperature, top_p, n, presence_penalty, frequency_penalty

OpenCode Zen· kimi-k3· chat-completions toggle

thinking.type on enabled · off disabled

toggle · default on · returns reasoning_content · round-trips reasoning_content

Incompatible with: temperature, top_p, n, presence_penalty, frequency_penalty

OpenRouter· moonshotai/kimi-k3· chat-completions effort

reasoning.effort lowmedium●highxhighmax

effort · default on · mandatory · returns reasoning_content · round-trips reasoning_content

Synthetic· hf:moonshotai/Kimi-K3· openai-chat adaptive

adaptive · default on · returns hidden

Synthetic· syn:large:vision· openai-chat effort

reasoning_effort lowmediumhigh●

effort · default on · returns reasoning_content

Example requests

Baseten · openai-chat · moonshotai/Kimi-K3

curl 'https://inference.baseten.co/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "moonshotai/Kimi-K3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "max"
}'
Python (requests)
import requests

resp = requests.post(
    "https://inference.baseten.co/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "moonshotai/Kimi-K3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "max"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://inference.baseten.co/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "moonshotai/Kimi-K3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "max"
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

IO Intelligence (io.net) · openai-chat · moonshotai/Kimi-K3

curl 'https://api.intelligence.io.solutions/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "moonshotai/Kimi-K3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "high"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.intelligence.io.solutions/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "moonshotai/Kimi-K3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "high"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.intelligence.io.solutions/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "moonshotai/Kimi-K3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "high"
    }
  }),
})
console.log(await resp.json())

Kimi for Coding · anthropic-messages · k3-256k

curl 'https://api.kimi.com/coding' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "k3-256k",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ]
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.kimi.com/coding",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "k3-256k",
      "max_tokens": 1024,
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ]
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.kimi.com/coding", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "k3-256k",
    "max_tokens": 1024,
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ]
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

Kimi for Coding · openai-chat · k3

curl 'https://api.kimi.com/coding/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "max"
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.kimi.com/coding/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "max"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.kimi.com/coding/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "max"
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

Moonshot Kimi · openai-chat · kimi-k3

curl 'https://api.moonshot.ai/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "max"
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.moonshot.ai/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "kimi-k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "max"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.moonshot.ai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "max"
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p, n, presence_penalty, frequency_penalty.

NEAR AI Cloud · openai-chat · moonshotai/kimi-k3

curl 'https://cloud-api.near.ai/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "moonshotai/kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "chat_template_kwargs": {
    "thinking": true
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://cloud-api.near.ai/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "moonshotai/kimi-k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "chat_template_kwargs": {
        "thinking": true
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://cloud-api.near.ai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "moonshotai/kimi-k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "chat_template_kwargs": {
      "thinking": true
    }
  }),
})
console.log(await resp.json())

NVIDIA NIM API · openai-chat · moonshotai/kimi-k3

curl 'https://integrate.api.nvidia.com/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "moonshotai/kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "chat_template_kwargs": {
    "thinking": true
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://integrate.api.nvidia.com/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "moonshotai/kimi-k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "chat_template_kwargs": {
        "thinking": true
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://integrate.api.nvidia.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "moonshotai/kimi-k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "chat_template_kwargs": {
      "thinking": true
    }
  }),
})
console.log(await resp.json())

Ollama Cloud · openai-chat · kimi-k3

curl 'https://ollama.com/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "high"
}'
Python (requests)
import requests

resp = requests.post(
    "https://ollama.com/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "kimi-k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "high"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://ollama.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "high"
  }),
})
console.log(await resp.json())

OpenCode Go · openai-chat · kimi-k3

curl 'https://opencode.ai/zen/go/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "type": "enabled"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/go/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "kimi-k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "type": "enabled"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/go/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "type": "enabled"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p, n, presence_penalty, frequency_penalty.

OpenCode Zen · openai-chat · kimi-k3

curl 'https://opencode.ai/zen/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "thinking": {
    "type": "enabled"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "kimi-k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "thinking": {
        "type": "enabled"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "kimi-k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "thinking": {
      "type": "enabled"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p, n, presence_penalty, frequency_penalty.

OpenRouter · openai-chat · moonshotai/kimi-k3

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "moonshotai/kimi-k3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "moonshotai/kimi-k3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "moonshotai/kimi-k3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

Synthetic · openai-chat · hf:moonshotai/Kimi-K3

curl 'https://api.synthetic.new/openai/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "hf:moonshotai/Kimi-K3",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ]
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.synthetic.new/openai/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "hf:moonshotai/Kimi-K3",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ]
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.synthetic.new/openai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "hf:moonshotai/Kimi-K3",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ]
  }),
})
console.log(await resp.json())

Synthetic · openai-chat · syn:large:vision

curl 'https://api.synthetic.new/openai/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "syn:large:vision",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "high"
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.synthetic.new/openai/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "syn:large:vision",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "high"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.synthetic.new/openai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "syn:large:vision",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "high"
  }),
})
console.log(await resp.json())