MenúReferencia de la API

Referencia de la API

La API sigue el formato OpenAI en https://ai.geraikita.com/v1 y el formato Anthropic en https://ai.geraikita.com. Todos los cuerpos de solicitud y de respuesta están en JSON (UTF-8).

EndpointFunción
POST /v1/chat/completionsChat en formato OpenAI (con y sin stream)
POST /v1/messagesMessages en formato Anthropic (con y sin stream)
POST /v1/messages/count_tokensContar los tokens del prompt en formato Anthropic — gratis
GET /v1/modelsLista de modelos disponibles
POST /v1/images/generationsGenera imágenes a partir de un prompt de texto, se cobra por imagen — ver Generación de imágenes
Por ahora solo están disponibles los endpoints anteriores. Otros endpoints de OpenAI (p. ej. /v1/responses, /v1/embeddings) aún no son compatibles.

Chat completions (OpenAI)

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

Genera una respuesta a partir de una lista de mensajes. Cabeceras: Authorization: Bearer gk-… y Content-Type: application/json.

Cuerpo de la solicitud

ParámetroTipoDescripción
modelstringObligatorio. Id del modelo exactamente como aparece en la lista de modelos, sin prefijo.
messagesarrayObligatorio. Array ordenado de mensajes; cada mensaje contiene role y content. Al menos un mensaje.
streambooleantrue para recibir la respuesta por partes mediante Server-Sent Events.
max_tokensintegerLímite de tokens de la respuesta. Si el saldo no alcanza para el valor solicitado, el servidor puede reducirlo automáticamente.
temperature, top_p, stop—Se pasa al modelo tal cual. La compatibilidad y el rango de valores dependen del modelo.
tools, tool_choicearray / objectLlamada a funciones (tool calling) en formato OpenAI, que se pasa a los modelos que la admiten.

Ejemplo de solicitud

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": "¡Hola!"}]
  }'

Ejemplo de respuesta

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 }
}

El objeto usage contiene el número de tokens en que se basa la factura — consulta Precios y facturación.

Messages (Anthropic)

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

Endpoint nativo de Anthropic para el SDK de Anthropic y Claude Code CLI. URL base en el cliente = https://ai.geraikita.com (sin /v1).

Cabeceras

CabeceraValorDescripción
x-api-keygk-…Tu clave API gk- (también se acepta Authorization: Bearer).
anthropic-version2023-06-01Versión de la API de Anthropic; el SDK la envía automáticamente.
content-typeapplication/json—

Cuerpo de la solicitud

ParámetroTipoDescripción
modelstringObligatorio. Id del modelo exactamente como aparece en la lista de modelos, sin prefijo.
messagesarrayObligatorio. Array de mensajes en formato Anthropic, con al menos un mensaje.
max_tokensintegerLímite de tokens de la respuesta (obligatorio en el formato Anthropic).
systemstring / arrayInstrucciones del sistema (opcional).
streambooleantrue para recibir la respuesta por partes mediante Server-Sent Events.

Ejemplo de solicitud

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": "¡Hola!"}]
  }'

¿Necesitas contar los tokens antes de enviar? POST https://ai.geraikita.com/v1/messages/count_tokens acepta el mismo cuerpo y no se factura.

Lista de modelos

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

Devuelve la lista de id de modelo que se pueden enviar en el campo model. Si se llama con una clave restringida por allowlist, solo aparecen los modelos permitidos. Con la cabecera x-api-key o anthropic-version, la respuesta sigue el formato Anthropic.

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

Streaming (SSE)

Con "stream": true, la respuesta se envía como text/event-stream. El servidor envía las cabeceras de inmediato y luego una línea de comentario keepalive : ka cada 10 segundos mientras espera, para que la conexión no se dé por muerta. Configura el timeout total de tu app en al menos 300 segundos.

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

: ka

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

data: [DONE]
  • Formato OpenAI: cada fragmento es una línea data: con un JSON que contiene choices[].delta, y el flujo termina con data: [DONE].
  • Formato Anthropic: eventos message_start, content_block_delta, …, message_stop, igual que en la API de Anthropic.
  • Ignora las líneas que empiezan por dos puntos (:): son keepalive, no datos. Las guías por herramienta están en Configuración de herramientas agénticas.