Documentación
Inicio rápido
JoinGonka Gateway es compatible con la API de OpenAI y Anthropic para acceder a los modelos de Gonka. Reemplace base_url en su cliente, y todo funciona.
URL base: https://gate.joingonka.ai/v1
Modelo: MiniMaxAI/MiniMax-M2.7
Autenticación: Bearer YOUR_API_KEY
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://gate.joingonka.ai/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Gonka?"},
],
temperature=0.7,
max_tokens=1024,
)
print(response.choices[0].message.content)TypeScript (OpenAI SDK)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://gate.joingonka.ai/v1",
apiKey: "YOUR_API_KEY",
});
const response = await client.chat.completions.create({
model: "MiniMaxAI/MiniMax-M2.7",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "What is Gonka?" },
],
temperature: 0.7,
max_tokens: 1024,
});
console.log(response.choices[0].message.content);cURL
curl https://gate.joingonka.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is Gonka?"}
],
"temperature": 0.7,
"max_tokens": 1024
}'Anthropic API (Claude Code)
JoinGonka Gateway es compatible de forma nativa con la API de mensajes de Anthropic (/v1/messages). Claude Code, Anthropic SDK y cualquier herramienta que use el formato Anthropic funciona directamente, sin proxy.
Claude Code
Recommended — set it up with one command (also configures OpenClaw and Cline):
npx @joingonka/setup
Or configure it manually:
export ANTHROPIC_BASE_URL=https://gate.joingonka.ai export ANTHROPIC_API_KEY=YOUR_API_KEY claude
Python (Anthropic SDK)
import anthropic
client = anthropic.Anthropic(
base_url="https://gate.joingonka.ai",
api_key="YOUR_API_KEY",
)
message = client.messages.create(
model="MiniMaxAI/MiniMax-M2.7",
max_tokens=1024,
messages=[
{"role": "user", "content": "What is Gonka?"},
],
)
print(message.content[0].text)cURL (Anthropic format)
curl https://gate.joingonka.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What is Gonka?"}
]
}'Streaming (Python)
import anthropic
client = anthropic.Anthropic(
base_url="https://gate.joingonka.ai",
api_key="YOUR_API_KEY",
)
with client.messages.stream(
model="MiniMaxAI/MiniMax-M2.7",
max_tokens=1024,
messages=[{"role": "user", "content": "Explain Gonka"}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)Uso de herramientas (cURL)
curl https://gate.joingonka.ai/v1/messages \
-H "x-api-key: YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMaxAI/MiniMax-M2.7",
"max_tokens": 1024,
"tools": [{
"name": "get_weather",
"description": "Get current weather",
"input_schema": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}],
"messages": [{"role": "user", "content": "Weather in Moscow?"}]
}'Ambos formatos (OpenAI y Anthropic) utilizan una única clave API y un único saldo.
Endpoints de la API
Inference
/v1/chat/completionsGeneración de respuesta - formato OpenAI (streaming compatible)
{
"id": "chatcmpl-abc123...",
"object": "chat.completion",
"model": "MiniMaxAI/MiniMax-M2.7",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?",
"tool_calls": []
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 8,
"total_tokens": 20
},
"x_joingonka": {
"cost_ngonka": "24",
"balance_ngonka": "11999976"
}
}/v1/messagesGeneración de respuesta - formato Anthropic (streaming, tool_use)
{
"id": "msg_abc123...",
"type": "message",
"role": "assistant",
"content": [{"type": "text", "text": "Hello!"}],
"model": "MiniMaxAI/MiniMax-M2.7",
"stop_reason": "end_turn",
"usage": {"input_tokens": 12, "output_tokens": 8}
}/v1/modelsLista de modelos disponibles
{
"object": "list",
"data": [{
"id": "MiniMaxAI/MiniMax-M2.7",
"object": "model",
"owned_by": "gonka-network",
"context_length": 200000,
"pricing": {
"prompt": "0.00000007",
"completion": "0.0000001"
},
"architecture": {
"modality": "text->text"
},
"top_provider": {
"context_length": 200000,
"max_completion_tokens": 8192,
"is_moderated": false
},
"supported_parameters": [
"temperature", "top_p", "tools",
"tool_choice", "max_tokens", "stop"
],
"x_gonka": {
"v_ram": 320,
"context_window": 200000,
"max_output": 8192,
"actual_cost_ngonka": 1.2
}
}]
}Plugins
Los plugins amplían las capacidades de la API. Pase una matriz de plugins en la solicitud para activarlos.
/v1/pluginsLista de plugins disponibles
{
"plugins": [
{"id": "web", "description": "Web search — inject fresh results with citations"},
{"id": "response-healing", "description": "Auto-fix truncated JSON"},
{"id": "privacy-sanitization", "description": "Mask sensitive data"},
{"id": "file-parser", "description": "Extract text from PDF"}
]
}Uso en la solicitud
{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [{"role": "user", "content": "..."}],
"plugins": ["response-healing", "privacy-sanitization"]
}web
Búsqueda web directamente en los modelos Gonka. Los modelos en sí (Kimi, MiniMax, DeepSeek) no tienen búsqueda; el gateway inyecta resultados frescos de Internet en el contexto y devuelve citas de fuentes. Funciona en modo stream y non-stream. El backend es self-hosted: las solicitudes no se envían a APIs de búsqueda de terceros bajo su cuenta.
Método 1 — objeto web en el array de plugins (inyección de resultados con opciones):
{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [{"role": "user", "content": "What's new in the Gonka network?"}],
"plugins": [{
"id": "web",
"max_results": 5,
"search_prompt": "Relevant web search results:"
}]
}Método 2 — Modo Agente (mode: "agent"): el modelo mismo llama a web_search solo cuando se necesita búsqueda:
{
"model": "MiniMaxAI/MiniMax-M2.7",
"messages": [{"role": "user", "content": "What's new in the Gonka network?"}],
"plugins": [{ "id": "web", "mode": "agent", "max_searches": 3 }]
}Opciones: max_results — número de resultados (por defecto 5, máximo 10); search_prompt — su propio prompt de grounding que precede a los resultados.
La respuesta se enriquece con annotations[].url_citation (url, title) — estándar de OpenRouter:
{
"choices": [{
"message": {
"role": "assistant",
"content": "...",
"annotations": [{
"type": "url_citation",
"url_citation": {
"url": "https://gonka.ai/...",
"title": "Gonka Network"
}
}]
}
}]
}Tarifas: modo plugins:[{ "id": "web" }] — solo por tokens (los resultados mezclados cuentan como prompt-tokens normales). Modo agente (mode: "agent") — tokens de todos los pasos del ciclo más un recargo de 1000 nGNK por cada llamada a web_search (≈ $0.0001 por 1000 búsquedas a una tasa de ~$0.15 por GNK).
Incompatible con privacy-sanitization: una solicitud conjunta devolverá 400.
response-healing
Reparación automática de la salida JSON/estructurada truncada. Solo funciona para solicitudes que no son de streaming con contenido JSON.
privacy-sanitization
Enmascaramiento de datos confidenciales (claves API, direcciones de correo electrónico, direcciones IP, JWT, números de tarjeta) en mensajes antes de enviarlos al modelo.
Modos: redact (reemplazar con [REDACTED]) o tokenize (reemplazar con [TOKEN_001]). Pase privacy_mode en el cuerpo.
file-parser
Extracción de texto de documentos PDF. Soporte para data:application/pdf;base64,... y base64 sin procesar.
Claves de Gestión
Claves API jerárquicas para integraciones SaaS. La clave de gestión (gm-) crea claves secundarias (gc-) con límites y TTL.
/api/management/keysCree una clave de gestión (prefijo gm-). Solo se utiliza para gestionar claves secundarias.
/api/management/keys/:id/childrenCree una clave secundaria (prefijo gc-) con límites opcionales. La facturación se carga al saldo del propietario de la clave de gestión.
{
"name": "Client A",
"limit_daily_ngonka": "1000000000",
"limit_monthly_ngonka": "10000000000",
"expires_at": "2026-04-01T00:00:00Z",
"rate_limit_rpm": 30
}/api/management/keys/:id/childrenLista de claves secundarias con estadísticas de uso.
/api/management/keys/:id/children/:childIdActualice los límites, RPM o el estado de una clave secundaria.
/api/management/keys/:id/children/:childIdDesactive una clave secundaria (eliminación suave).
Account
/api/balanceSaldo actual
{
"balance_ngonka": "11999976",
"balance_usd": 0.008,
"cost_per_token_ngonka": 1,
"tokens_remaining": 11999976
}/api/keysLista de claves API
/api/keysCrear clave API
/api/keys/:idEliminar clave API
Billing
/api/usageEstadísticas de uso
Query: period=day|week|month&tz=-180
{
"period": "month",
"usage": [{
"date": "2026-03-20",
"requests": 42,
"tokens": 18500,
"costNgonka": "22200"
}]
}/api/depositsHistorial de depósitos
Query: limit=50&offset=0&from=2026-03-01&to=2026-03-21
{
"deposits": [{
"id": "abc-123",
"type": "DEPOSIT_GNK",
"amountNgonka": "10000000",
"description": "GNK deposit via memo",
"createdAt": "2026-03-20T12:00:00Z"
}],
"total": 3
}/api/transactionsHistorial de transacciones
Query: limit=50&offset=0&type=INFERENCE&from=2026-03-01&to=2026-03-21
{
"transactions": [{
"id": "def-456",
"type": "INFERENCE",
"amountNgonka": "-1200",
"feeNgonka": "120",
"description": null,
"createdAt": "2026-03-20T14:30:00Z"
}],
"total": 128
}/api/pricingTarifas y comisiones (público, sin autorización)
{
"deposit_usdt_fee_percent": 5,
"deposit_gnk_fee_percent": 0,
"usage_fee_percent": 10,
"withdrawal_fee_percent": 5,
"gnk_usd_price": 0.3465
}Streaming & Errors
Con stream: true, la respuesta llega en fragmentos a través de SSE (Server-Sent Events).
OpenAI (stream: true)
data: {"choices":[{"delta":{"content":"Hello"}}]}
data: {"choices":[{"delta":{"content":"!"}}]}
data: {"choices":[],"x_joingonka":{"cost_ngonka":"24"}}
data: [DONE]Anthropic (stream: true)
event: message_start
data: {"type":"message_start","message":{...}}
event: content_block_delta
data: {"type":"content_block_delta","delta":{"type":"text_delta","text":"Hello"}}
event: message_stop
data: {"type":"message_stop"}Errores
// 400 — неверный запрос
{"error": {"message": "...", "type": "invalid_request_error"}}
// 401 — не авторизован
{"error": {"message": "...", "type": "authentication_error"}}
// 402 — недостаточный баланс
{"error": {"message": "...", "type": "insufficient_funds", "balance_ngonka": "0"}}
// 429 — rate limit
{"error": {"message": "...", "type": "rate_limit_error"}}
// 502 — ошибка сети Gonka
{"error": {"message": "...", "type": "api_error"}}Modelos
La red Gonka admite múltiples modelos a través de una API única; la lista actual siempre se puede obtener mediante una solicitud GET /v1/models. Para seleccionar un modelo, pase su ID en el campo model del cuerpo de la solicitud.
| Modelo | Proveedor | Contexto | Salida máxima | VRAM | Estado |
|---|---|---|---|---|---|
| MiniMax M2.7 | MiniMax | 195K | 8K | 320 GB | Disponible |
| Kimi K2.6 | Moonshot AI | 195K | 8K | 720 GB | Disponible |
| DeepSeek V4 Flash | DeepSeek | 371K | 32K | 280 GB | Disponible |
Por defecto (si no se especifica el modelo) se utiliza el modelo insignia de la red. La lista actual con metadatos — GET /v1/models.
La lista actual de modelos con todos los metadatos - GET /v1/models. La visión y la entrada multimodal (image_url) aún no son compatibles con la red Gonka ascendente.
Tarifas y comisiones
Transparencia total: a continuación se detallan todas las comisiones del gateway. Los valores actuales se cargan en vivo desde la API; el endpoint público GET /api/pricing está disponible sin autorización.
| Operación | Comisión | Nota |
|---|---|---|
| Margen de inferencia | 10% | Margen de la plataforma por encima del precio de la red Gonka: la principal fuente de ingresos del gateway. Se cobra con cada solicitud junto con el costo de los tokens. |
| Depósito mediante USDT | 5% | Cobrado por el proveedor de pagos al pagar con criptomonedas (USDT). |
| Depósito mediante GNK | gratis | La transferencia directa de GNK on-chain se acredita sin comisiones de gateway. |
| Retiro de fondos | 5% | Se retiene al retirar GNK a una dirección externa. El retiro se procesa manualmente en un plazo de 24 a 48 horas. |
| Precio actual de GNK | $0.147 | La tasa GNK/USD utilizada para calcular los depósitos y el saldo. Se actualiza automáticamente. |
GET /api/pricing
Límites
Modelos: Todos los modelos de la red Gonka (arquitectura multi-modelo DevShards)
Límite de solicitudes: con clave API el número de solicitudes no está estrictamente limitado (lo limita la concurrencia de la red); sin clave — 20/día por IP (anti-spam)
Máx. tokens: hasta 32.768 tokens por solicitud para DeepSeek V4 Flash y hasta 8.192 para otros modelos (los valores que excedan el límite son recortados por el gateway). Para respuestas largas, utilice stream:true para evitar tiempos de espera.
Streaming: compatible (SSE, stream: true)
Tiempo de espera de red: Si la red Gonka aceptó la solicitud pero no respondió en 300 segundos, la solicitud termina con un error 504 y el procesamiento del prompt se descuenta según la estimación: una solicitud aceptada por la red no se puede cancelar, el nodo la procesa de todos modos. Completion no se factura en caso de tiempo de espera. Para generaciones largas, use stream:true.