MenuRiferimento API

Riferimento API

L’API segue il formato OpenAI su https://ai.geraikita.com/v1 e il formato Anthropic su https://ai.geraikita.com. Tutti i body di richiesta e risposta sono in JSON (UTF-8).

EndpointFunzione
POST /v1/chat/completionsChat in formato OpenAI (stream e non stream)
POST /v1/messagesMessages in formato Anthropic (stream e non stream)
POST /v1/messages/count_tokensConteggio dei token del prompt in formato Anthropic — gratuito
GET /v1/modelsElenco dei modelli utilizzabili
POST /v1/images/generationsGenera immagini da un prompt testuale, addebito per immagine — vedi Generazione di immagini
Al momento sono disponibili solo gli endpoint qui sopra. Altri endpoint OpenAI (ad es. /v1/responses, /v1/embeddings) non sono ancora supportati.

Chat completions (OpenAI)

POSThttps://ai.geraikita.com/v1/chat/completions

Genera una risposta a partire da un elenco di messaggi. Header: Authorization: Bearer gk-… e Content-Type: application/json.

Body della richiesta

ParametroTipoDescrizione
modelstringObbligatorio. Id del modello esattamente come nell’elenco dei modelli, senza prefisso.
messagesarrayObbligatorio. Array ordinato di messaggi; ogni messaggio contiene role e content. Almeno un messaggio.
streambooleantrue per ricevere la risposta a blocchi tramite Server-Sent Events.
max_tokensintegerLimite di token della risposta. Se il saldo non basta per il valore richiesto, il server può ridurlo automaticamente.
temperature, top_p, stop—Passato al modello così com’è. Supporto e intervallo di valori dipendono dal modello.
tools, tool_choicearray / objectChiamata di funzioni (tool calling) in formato OpenAI, passata ai modelli che la supportano.

Esempio di richiesta

curl https://ai.geraikita.com/v1/chat/completions \
  -H "Authorization: Bearer gk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Ciao!"}]
  }'

Esempio di risposta

200 OK · application/json
{
  "id": "chatcmpl-…",
  "object": "chat.completion",
  "model": "claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "…" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 12, "completion_tokens": 9, "total_tokens": 21 }
}

L’oggetto usage contiene il numero di token su cui si basa la fatturazione — vedi Prezzi e fatturazione.

Messages (Anthropic)

POSThttps://ai.geraikita.com/v1/messages

Endpoint nativo Anthropic per l’SDK Anthropic e Claude Code CLI. Base URL nel client = https://ai.geraikita.com (senza /v1).

Header

HeaderValoreDescrizione
x-api-keygk-…La tua chiave API gk- (è accettato anche Authorization: Bearer).
anthropic-version2023-06-01Versione dell’API Anthropic; inviata automaticamente dall’SDK.
content-typeapplication/json—

Body della richiesta

ParametroTipoDescrizione
modelstringObbligatorio. Id del modello esattamente come nell’elenco dei modelli, senza prefisso.
messagesarrayObbligatorio. Array di messaggi in formato Anthropic, almeno un messaggio.
max_tokensintegerLimite di token della risposta (obbligatorio nel formato Anthropic).
systemstring / arrayIstruzioni di sistema (facoltative).
streambooleantrue per ricevere la risposta a blocchi tramite Server-Sent Events.

Esempio di richiesta

curl https://ai.geraikita.com/v1/messages \
  -H "x-api-key: gk-xxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Ciao!"}]
  }'

Devi contare i token prima dell’invio? POST https://ai.geraikita.com/v1/messages/count_tokens accetta lo stesso body e non viene fatturato.

Elenco dei modelli

GEThttps://ai.geraikita.com/v1/models

Restituisce l’elenco degli id dei modelli che puoi inviare nel campo model. Se chiamato con una chiave limitata da allowlist, compaiono solo i modelli consentiti. Con l’header x-api-key o anthropic-version, la risposta segue il formato Anthropic.

curl https://ai.geraikita.com/v1/models \
  -H "Authorization: Bearer gk-xxxxxxxx"

Streaming (SSE)

Con "stream": true, la risposta viene inviata come text/event-stream. Il server invia subito gli header, poi una riga di commento keepalive : ka ogni 10 secondi durante l’attesa, così la connessione non viene considerata morta. Imposta il timeout totale della tua app ad almeno 300 secondi.

text/event-stream
data: {"choices":[{"index":0,"delta":{"content":"Ha"}}]}

: ka

data: {"choices":[{"index":0,"delta":{"content":"lo!"}}]}

data: [DONE]
  • Formato OpenAI: ogni blocco è una riga data: con un JSON contenente choices[].delta, e si chiude con data: [DONE].
  • Formato Anthropic: eventi message_start, content_block_delta, …, message_stop come nell’API Anthropic.
  • Ignora le righe che iniziano con i due punti (:): sono keepalive, non dati. Le guide per i singoli strumenti sono in Impostazioni degli strumenti agentici.