Kimi K2.5 API
Img2Vid exposes Kimi K2.5 through the public chat model API as moonshot/kimi-k2.5.
Model identity
| Field | Value |
|---|---|
| Img2Vid model key | moonshot/kimi-k2.5 |
| Runtime model id | kimi-k2.5 |
| Provider | MoonShot |
| Public capabilities | Reasoning, image attachments, tool calling |
Pricing
| Unit | Credits |
|---|---|
| Input | 6 credits per 1,000,000 tokens |
| Output | 30 credits per 1,000,000 tokens |
| Cached input | 3 credits per 1,000,000 tokens |
Model options
No additional public model options are currently configured for moonshot/kimi-k2.5. Set reasoning: true when you want Img2Vid to request the configured thinking mode.
OpenAI-compatible example
curl https://img2vid.net/api/v1/chat/completions \
-H "Authorization: Bearer $BUBLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "moonshot/kimi-k2.5",
"messages": [
{
"role": "system",
"content": "You are a precise research and coding assistant."
},
{
"role": "user",
"content": "Analyze this product requirement and identify the implementation risks."
}
],
"reasoning": true,
"max_completion_tokens": 800
}'
Anthropic Messages-compatible example
curl https://img2vid.net/api/v1/messages \
-H "Authorization: Bearer $BUBLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "moonshot/kimi-k2.5",
"system": "You are a precise research and coding assistant.",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Analyze this product requirement and identify the implementation risks."
}
]
}
],
"thinking": true,
"max_tokens": 800
}'
Gemini-compatible example
curl https://img2vid.net/api/v1beta/models/moonshot/kimi-k2.5:generateContent \
-H "Authorization: Bearer $BUBLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"systemInstruction": {
"parts": [
{
"text": "You are a precise research and coding assistant."
}
]
},
"contents": [
{
"role": "user",
"parts": [
{
"text": "Analyze this product requirement and identify the implementation risks."
}
]
}
],
"reasoning": true,
"generationConfig": {
"maxOutputTokens": 800
}
}'
For Gemini-compatible streaming, use /api/v1beta/models/moonshot/kimi-k2.5:streamGenerateContent.
SDK examples
The examples below use this page's Img2Vid chat model key through the OpenAI-compatible Chat Completions SDK method. They assume you have already initialized the SDK client as shown in the Quickstart and imported the required language SDK types. Anthropic Messages and Gemini-compatible calls use the same model key; Gemini streaming must use the SDK's streamGenerateContent / stream_generate_content method.
JavaScript / TypeScript
const completion = await buble.chat.completions.create({
model: 'moonshot/kimi-k2.5',
messages: [
{
role: 'system',
content: 'You are a precise research and coding assistant.',
},
{
role: 'user',
content:
'Analyze this product requirement and identify the implementation risks.',
},
],
reasoning: true,
max_completion_tokens: 800,
});
console.log(completion.choices?.[0]?.message?.content);
Python
completion = client.chat.completions.create(
model="moonshot/kimi-k2.5",
messages=[
{"role": "system", "content": "You are a precise research and coding assistant."},
{"role": "user", "content": "Analyze this product requirement and identify the implementation risks."},
],
reasoning=True,
max_completion_tokens=800,
)
print(completion["choices"][0]["message"]["content"])
Go
completion, err := client.Chat.Completions.Create(ctx, buble.ChatRequest{
"model": "moonshot/kimi-k2.5",
"messages": []any{
map[string]any{"role": "system", "content": "You are a precise research and coding assistant."},
map[string]any{"role": "user", "content": "Analyze this product requirement and identify the implementation risks."},
},
"reasoning": true,
"max_completion_tokens": 800,
})
if err != nil {
return err
}
fmt.Println(completion)
Rust
let completion = client.chat().completions().create(serde_json::json!({
"model": "moonshot/kimi-k2.5",
"messages": [
{ "role": "system", "content": "You are a precise research and coding assistant." },
{ "role": "user", "content": "Analyze this product requirement and identify the implementation risks." }
],
"reasoning": true,
"max_completion_tokens": 800
})).await?;
Swift
let completion = try await client.chat.completions.create([
"model": "moonshot/kimi-k2.5",
"messages": [
["role": "system", "content": "You are a precise research and coding assistant."],
["role": "user", "content": "Analyze this product requirement and identify the implementation risks."]
],
"reasoning": true,
"max_completion_tokens": 800
])
Dart / Flutter
final completion = await client.chat.completions.create({
'model': 'moonshot/kimi-k2.5',
'messages': [
{'role': 'system', 'content': 'You are a precise research and coding assistant.'},
{'role': 'user', 'content': 'Analyze this product requirement and identify the implementation risks.'},
],
'reasoning': true,
'max_completion_tokens': 800,
});
Elixir
{:ok, completion} =
Buble.Chat.Completions.create(client, %{
model: "moonshot/kimi-k2.5",
messages: [
%{role: "system", content: "You are a precise research and coding assistant."},
%{role: "user", content: "Analyze this product requirement and identify the implementation risks."}
],
reasoning: true,
max_completion_tokens: 800
})
Java
var completion = client.chat().completions().create(Map.of(
"model", "moonshot/kimi-k2.5",
"messages", List.of(
Map.of("role", "system", "content", "You are a precise research and coding assistant."),
Map.of("role", "user", "content", "Analyze this product requirement and identify the implementation risks.")),
"reasoning", true,
"max_completion_tokens", 800));
.NET
var completion = await client.Chat.Completions.CreateAsync(new Dictionary<string, object?>
{
["model"] = "moonshot/kimi-k2.5",
["messages"] = new[]
{
new Dictionary<string, object?> { ["role"] = "system", ["content"] = "You are a precise research and coding assistant." },
new Dictionary<string, object?> { ["role"] = "user", ["content"] = "Analyze this product requirement and identify the implementation risks." }
},
["reasoning"] = true,
["max_completion_tokens"] = 800
});
PHP
$completion = $client->chat()->completions()->create([
'model' => 'moonshot/kimi-k2.5',
'messages' => [
['role' => 'system', 'content' => 'You are a precise research and coding assistant.'],
['role' => 'user', 'content' => 'Analyze this product requirement and identify the implementation risks.'],
],
'reasoning' => true,
'max_completion_tokens' => 800,
]);
Ruby
completion = client.chat.completions.create(
model: "moonshot/kimi-k2.5",
messages: [
{ role: "system", content: "You are a precise research and coding assistant." },
{ role: "user", content: "Analyze this product requirement and identify the implementation risks." }
],
reasoning: true,
max_completion_tokens: 800
)