Endpoint coverage
Exposes 1 public endpoint(s): chat_completion.
Current Kimi flagship with always-on reasoning
curl -X POST https://runapi.ai/v1/chat/completions \
-H "Authorization: Bearer $RUNAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [
{
"role": "user",
"content": "Plan and implement a small CLI tool: scaffold the project, write the commands, add tests, and run them until they pass."
}
]
}'
import { KimiClient } from "@runapi.ai/kimi";
const client = new KimiClient();
const result = await client.chatCompletion.run({
model: "kimi-k3",
messages: [{"role":"user","content":"Plan and implement a small CLI tool: scaffold the project, write the commands, add tests, and run them until they pass."}],
});
import os
import requests
response = requests.post(
"https://runapi.ai/v1/chat/completions",
headers={"Authorization": f"Bearer {os.environ['RUNAPI_API_KEY']}"},
json={"model":"kimi-k3","messages":[{"role":"user","content":"Plan and implement a small CLI tool: scaffold the project, write the commands, add tests, and run them until they pass."}]}
)
response.raise_for_status()
<?php
$client = curl_init("https://runapi.ai/v1/chat/completions");
curl_setopt_array($client, [
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("RUNAPI_API_KEY"), "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode([
'model' => 'kimi-k3',
'messages' => [['role' => 'user', 'content' => 'Plan and implement a small CLI tool: scaffold the project, write the commands, add tests, and run them until they pass.']],
])
]);
$response = curl_exec($client);
RunApi client = new RunApi(System.getenv("RUNAPI_API_KEY"));
Task task = client.chatCompletion().run({"model":"kimi-k3","messages":[{"role":"user","content":"Plan and implement a small CLI tool: scaffold the project, write the commands, add tests, and run them until they pass."}]});
task.waitForResult();
require "runapi/kimi"
client = RunApi::Kimi::Client.new
result = client.chat_completion.run(
model: "kimi-k3",
messages: [{role: "user", content: "Plan and implement a small CLI tool: scaffold the project, write the commands, add tests, and run them until they pass."}]
)
client := runapi.NewClient(os.Getenv("RUNAPI_API_KEY"))
task, err := client.chatCompletion.Run({"model":"kimi-k3","messages":[{"role":"user","content":"Plan and implement a small CLI tool: scaffold the project, write the commands, add tests, and run them until they pass."}]})
if err != nil { log.Fatal(err) }
task.Wait()
$ runapi generate \
--model kimi-k3 \
--endpoint chat_completion \
--wait
4 versions available
Pick any model and generate in seconds.
| Provider | Moonshot AI |
| Model ID | kimi-k3 |
| Modality | Text |
| Task types | Synchronous |
| API endpoint | /v1/chat/completions |
| /v1/responses |
| /v1/messages | |
| /v1beta/models/kimi-k3:generateContent | |
| /v1beta/models/kimi-k3:streamGenerateContent | |
| Billing unit | 1K tokens |
| Catalog status | Operational |
Sign up for free and create an API key for kimi-k3 from the dashboard.
POST to /v1/chat/completions with the kimi-k3 model slug and your parameters.
Read the completed kimi-k3 response directly from the endpoint.
Exposes 1 public endpoint(s): chat_completion.
Metered by 1K tokens with no subscription requirement.
No request parameters are published for this endpoint.
Answer customer questions from a private knowledge base, reducing ticket volume.
Draft contract summaries and flag key clauses for attorney review.
Auto-generate unit tests, code reviews, and refactoring suggestions in CI.
Verified customer feedback is not available for this model yet.
Pass the model ID shown in the quickstart.
Per-key rate limits scale with your usage tier. The pricing page shows current limits. If you need higher throughput, contact support to discuss tier upgrades.
Yes. Variant is a parameter in the request. Switch by changing the model ID — no code changes, no re-authentication, no separate billing setup. All variants share the same API key and request shape.
Where streaming is available, RunAPI streams end-to-end. LLM models support token-level streaming. Media models use async task polling or webhook callbacks for result delivery.
Open an issue on the public GitHub repo or email support at [email protected]. Include the task ID and model ID so the team can investigate the specific generation.
No. Your RunAPI API key is enough to access this variant and every other model in the catalog. You do not need accounts with the underlying provider.
We're here to help with enterprise setup, integrations, and technical questions.
Contact Us