Claude Opus 5.5 è disponibile su SeedRouter

API di Kimi K3: come ottenere una chiave e fare la prima chiamata

Come accedere all'API di Kimi K3: ottieni una chiave, chiama kimi-k3 con l'SDK OpenAI, imposta lo sforzo di ragionamento, streaming, immagini ed errori comuni.

Leggi in Markdown

Per chiamare Kimi K3 ti servono una chiave API di una piattaforma che lo offre e una richiesta con model impostato su kimi-k3. Moonshot AI lo offre sulla propria Kimi API Platform, dove il modello si sblocca dopo la prima ricarica. SeedRouter lo offre con un'unica chiave, a consumo, nel formato di richiesta ufficiale: punta l'SDK OpenAI su https://api.seedrouter.ai/v1 e mantieni il tuo codice.

Questa guida usa SeedRouter; i corpi delle richieste sono gli stessi dell'API di Kimi.

Come ottenere una chiave API di Kimi K3?

  1. Accedi a SeedRouter e apri API keys.
  2. Crea una chiave e copiala; viene mostrata una sola volta.
  3. Aggiungi credito quando ti serve. I nuovi account partono con un piccolo saldo gratuito e non c'è alcun abbonamento.

Conserva la chiave in una variabile d'ambiente come SEEDROUTER_API_KEY e usala solo da codice lato server.

Come chiamare Kimi K3 da Python?

Kimi K3 usa il formato Chat Completions, quindi il pacchetto ufficiale openai funziona così com'è:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["SEEDROUTER_API_KEY"],
    base_url="https://api.seedrouter.ai/v1",
)

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Explain context caching in one sentence."}],
)
print(completion.choices[0].message.content)

La risposta è in content. Kimi K3 ragiona prima di rispondere, e quel ragionamento torna in reasoning_content nello stesso messaggio.

Come chiamarlo da Node.js o cURL?

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.SEEDROUTER_API_KEY,
  baseURL: "https://api.seedrouter.ai/v1",
});

const completion = await client.chat.completions.create({
  model: "kimi-k3",
  messages: [{ role: "user", content: "Explain context caching in one sentence." }],
});
console.log(completion.choices[0].message.content);
curl https://api.seedrouter.ai/v1/chat/completions \
  -H "Authorization: Bearer $SEEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "kimi-k3", "messages": [{"role": "user", "content": "Explain context caching in one sentence."}]}'

La stessa chiave risponde anche alla Responses API (/v1/responses) e al formato Anthropic Messages (/v1/messages) per kimi-k3.

Come impostare lo sforzo di ragionamento?

Kimi K3 ragiona sempre; non puoi disattivarlo. reasoning_effort stabilisce quanto pensa prima di rispondere:

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Find the bug: def avg(xs): return sum(xs) / len(xs)"}],
    reasoning_effort="high",
)
ValoreUsalo per
lowPassaggi rapidi e semplici
highLa maggior parte del coding e dell'analisi
max (predefinito)I problemi più difficili

I token di ragionamento sono fatturati come output e contano per max_completion_tokens, che per impostazione predefinita è 131.072 e arriva fino a 1.048.576. Nel nostro test sulla stessa domanda, low ha usato 25 token di output e max ne ha usati 146.

Come ricevere la risposta in streaming?

Aggiungi stream=True. Il ragionamento arriva prima in delta.reasoning_content, poi la risposta in delta.content. Chiedi stream_options={"include_usage": True} per ricevere il conteggio dei token nell'ultimo chunk:

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Write a haiku about latency."}],
    stream=True,
    stream_options={"include_usage": True},
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Posso inviare immagini?

Sì, come data URI in base64. Kimi K3 non accetta URL pubblici di immagini; il suo quickstart dice: "Vision input does not support public image URLs" (l'input visivo non supporta URL pubblici di immagini):

import base64

with open("chart.png", "rb") as f:
    image = base64.b64encode(f.read()).decode()

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image}"}},
            {"type": "text", "text": "What does this chart show?"},
        ],
    }],
)

Quali errori puoi incontrare?

ErroreCausaSoluzione
400 su temperature, top_p, n o una penalitàKimi K3 li fissa (1,0, 0,95, 1, 0)Omettili
400 su reasoning_effortUn valore diverso da low, high o maxUsa uno dei tre
400 su un'immagineUn URL pubblico invece di un data URIInvia l'immagine in base64
401Chiave mancante o errataControlla l'header Authorization

Gli errori restituiscono {"error": {"code": ..., "message": "..."}}, e una richiesta che fallisce non viene addebitata.

Domande frequenti

L'API di Kimi K3 è compatibile con OpenAI?

Sì. Kimi K3 accetta i formati Chat Completions e Responses, quindi l'SDK OpenAI funziona cambiando solo l'URL di base e il modello. Accetta anche il formato Anthropic Messages.

Serve un account Moonshot per usare Kimi K3?

Non su SeedRouter. Accedi a SeedRouter, crei lì una chiave e paghi con il tuo saldo SeedRouter.

Quanto costa una richiesta a Kimi K3?

Viene fatturata per token di input e di output. La guida ai prezzi di Kimi K3 riporta le tariffe live ed esempi di calcolo.

Dove trovo l'elenco completo dei parametri?

La documentazione API di Kimi K3 elenca ogni campo, e la pagina di Kimi K3 offre un playground e i prezzi live.

Guide correlate