Documentazione
Guida rapida
Kunavo è compatibile con il protocollo OpenAI. Se usi già l'SDK OpenAI, devi modificare solo l'URL di base. In cinque minuti, da zero alla tua prima chiamata a un modello frontier.
Kunavo è un gateway API AI indipendente e compatibile con OpenAI: con un’unica chiave API e un saldo a consumo puoi accedere ai modelli Claude, GPT e di immagini, video e audio, senza bisogno di un account per ciascun fornitore. L'intera procedura di onboarding prevede quattro passaggi. I primi tre si eseguono una sola volta. Il quarto — effettuare una chiamata — richiede solo di sostituire base_url.
1. Crea un account
Registrati su kunavo.com/app/login con Google o tramite link magico inviato via email. Paghi a consumo, a partire da una ricarica di $10: il saldo non scade mai e le richieste non riuscite non vengono mai addebitate.
2. Crea una chiave API
Apri /app/keys nella dashboard e fai clic su Nuova chiave. Le chiavi iniziano con sk-kn- e vengono mostrate una sola volta al momento della creazione: copiale e conservale in modo sicuro.
Buone pratiche consigliate:
- Usa una chiave per ogni progetto/ambiente (sviluppo, staging, produzione).
- Ruota le chiavi in caso di incidente o ogni trimestre.
- Imposta un limite mensile di spesa per ogni chiave se esegui chiamate tramite script da CI.
3. Ricarica il portafoglio
Vai a /app/billing e ricarica tramite Stripe Checkout. Le carte sono offerte ovunque Stripe è disponibile e Apple Pay, Google Pay e Link ovunque tranne che in India; i metodi locali compaiono in base al Paese — ad esempio ACH negli Stati Uniti, Pix in Brasile, UPI in India, KakaoPay in Corea del Sud e iDEAL nei Paesi Bassi, BLIK in Polonia (l'elenco completo è nella documentazione sulla fatturazione; PayPal e addebito diretto SEPA non sono offerti). Le ricariche partono da $10 — abbastanza per provare ogni modello con una chiave reale — e il saldo non scade mai.
- Pagamento a consumo: l'utilizzo viene detratto dal portafoglio in tempo reale, senza abbonamento.
- Sono previsti bonus sul volume: $100 → +$10, $1,000 → +$200, $5,000 → +$1,250.
- Descrizione dell'addebito sull'estratto conto della carta:
KUNAVO.COM* TOPUP.
4. Effettua la tua prima chiamata
Scegli un modello qualsiasi tra quelli abilitati nel catalogo. Di seguito trovi una chiamata chat claude-haiku-4-5 economica e veloce, per verificare la configurazione.
Python (SDK OpenAI)
Il pacchetto Python openai (v1+) funziona subito: basta configurare base_url per usare Kunavo.
from openai import OpenAI
client = OpenAI(
api_key=os.environ["KUNAVO_API_KEY"],
base_url="https://api.kunavo.com/v1",
)
resp = client.chat.completions.create(
model="claude-haiku-4-5",
messages=[{"role": "user", "content": "Say hi in one sentence."}],
)
print(resp.choices[0].message.content)Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.KUNAVO_API_KEY,
baseURL: "https://api.kunavo.com/v1",
});
const resp = await client.chat.completions.create({
model: "claude-haiku-4-5",
messages: [{ role: "user", content: "Say hi in one sentence." }],
});
console.log(resp.choices[0].message.content);curl
curl https://api.kunavo.com/v1/chat/completions \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-4-5",
"messages": [{"role": "user", "content": "Say hi in one sentence."}]
}'/app/usage entro pochi secondi.Altre modalità
Lo stesso SDK supporta immagini e video. Ove possibile, gli endpoint seguono la denominazione di OpenAI.
Generazione di immagini
Usa uno qualsiasi dei modelli per immagini: Nano Banana, Nano Banana 2, Nano Banana Pro e GPT-Image-2. Consulta la documentazione sulle immagini.
img = client.images.generate(
model="nano-banana",
prompt="a tiny red origami crane on a white desk",
size="1024x1024",
)
print(img.data[0].url)Chat in streaming
Imposta stream=True. Lo streaming è disponibile su tutti i modelli di chat, incluse tutte le famiglie Claude e GPT. La risposta viene inviata come eventi server-sent nel formato standard di OpenAI.
stream = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Tell me a 2-line haiku about CI/CD."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)Prossimi passi
- Autenticazione — riferimento completo per le chiavi API e l'URL di base.
- Completamenti chat — parametri, streaming, chiamate agli strumenti e visione.
- Fatturazione — funzionamento della formula del ricarico e del registro dei crediti.
- Errori — codici HTTP e strategia di nuovi tentativi.