Dokumentasi

Mulai Cepat

JoinGonka Gateway mendukung OpenAI dan Anthropic API untuk mengakses model Gonka. Ganti base_url di klien Anda — dan semuanya berfungsi.

URL Dasar: https://gate.joingonka.ai/v1

Model: MiniMaxAI/MiniMax-M2.7

Otorisasi: Bearer YOUR_API_KEY

Python (SDK OpenAI)

python
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 (SDK OpenAI)

typescript
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

bash
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 secara native mendukung Anthropic Messages API (/v1/messages). Claude Code, Anthropic SDK, dan alat apa pun yang menggunakan format Anthropic berfungsi langsung — tanpa proxy.

Claude Code

Recommended — set it up with one command (also configures OpenClaw and Cline):

bash
npx @joingonka/setup

Or configure it manually:

bash
export ANTHROPIC_BASE_URL=https://gate.joingonka.ai
export ANTHROPIC_API_KEY=YOUR_API_KEY
claude

Python (Anthropic SDK)

python
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)

bash
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)

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)

Penggunaan Alat (cURL)

bash
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?"}]
  }'

Kedua format (OpenAI dan Anthropic) menggunakan satu kunci API dan satu saldo.

Titik Akhir API

Inference

POST/v1/chat/completions

Generasi respons — format OpenAI (streaming didukung)

json
{
  "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"
  }
}
POST/v1/messages

Generasi respons — format Anthropic (streaming, tool_use)

json
{
  "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}
}
GET/v1/models

Daftar model yang tersedia

json
{
  "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
    }
  }]
}

Plugin

Plugin memperluas kemampuan API. Berikan array plugin dalam permintaan untuk aktivasi.

GET/v1/plugins

Daftar plugin yang tersedia

json
{
  "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"}
  ]
}

Penggunaan dalam permintaan

json
{
  "model": "MiniMaxAI/MiniMax-M2.7",
  "messages": [{"role": "user", "content": "..."}],
  "plugins": ["response-healing", "privacy-sanitization"]
}

web

Pencarian web langsung di dalam model Gonka. Model itu sendiri (Kimi, MiniMax, DeepSeek) tidak memiliki fitur pencarian; gateway menyisipkan hasil terbaru dari internet ke dalam konteks dan mengembalikan kutipan sumber. Berfungsi dalam mode stream dan non-stream. Backend bersifat self-hosted: permintaan tidak dikirim ke API pencarian pihak ketiga menggunakan akun Anda.

Metode 1 — objek web dalam array plugin (injeksi hasil dengan opsi):

json
{
  "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:"
  }]
}

Metode 2 — Mode Agen (mode: "agent"): model itu sendiri memanggil web_search hanya ketika pencarian diperlukan:

json
{
  "model": "MiniMaxAI/MiniMax-M2.7",
  "messages": [{"role": "user", "content": "What's new in the Gonka network?"}],
  "plugins": [{ "id": "web", "mode": "agent", "max_searches": 3 }]
}

Opsi: max_results — jumlah hasil (bawaan 5, batas maksimal 10); search_prompt — prompt grounding kustom Anda sebelum hasil pencarian dimuat.

Respons diperkaya dengan annotations[].url_citation (url, title) — standar OpenRouter:

json
{
  "choices": [{
    "message": {
      "role": "assistant",
      "content": "...",
      "annotations": [{
        "type": "url_citation",
        "url_citation": {
          "url": "https://gonka.ai/...",
          "title": "Gonka Network"
        }
      }]
    }
  }]
}

Penetapan harga: mode plugins:[{ "id": "web" }] — hanya berdasarkan token (hasil yang digabungkan dihitung sebagai prompt-tokens reguler). Mode agen (mode: "agent") — token dari semua langkah siklus ditambah biaya tambahan 1000 nGNK untuk setiap panggilan web_search (≈ $0.0001 per 1000 pencarian dengan kurs ~$0.15 per GNK).

Tidak kompatibel dengan privacy-sanitization: permintaan gabungan akan mengembalikan 400.

response-healing

Pemulihan otomatis JSON/output terstruktur yang terpotong. Hanya berfungsi untuk permintaan non-streaming dengan konten JSON.

privacy-sanitization

Masking data sensitif (kunci API, alamat email, alamat IP, JWT, nomor kartu) dalam pesan sebelum dikirim ke model.

Mode: redact (ganti dengan [REDACTED]) atau tokenize (ganti dengan [TOKEN_001]). Berikan privacy_mode dalam body.

file-parser

Ekstraksi teks dari dokumen PDF. Mendukung data:application/pdf;base64,... dan base64 mentah.

Kunci Manajemen

Kunci API hierarkis untuk integrasi SaaS. Kunci manajemen (gm-) membuat kunci anak (gc-) dengan batas dan TTL.

POST/api/management/keys

Buat kunci manajemen (awalan gm-). Hanya digunakan untuk mengelola kunci anak.

POST/api/management/keys/:id/children

Buat kunci anak (awalan gc-) dengan batas opsional. Biaya ditagih dari saldo pemilik kunci manajemen.

json
{
  "name": "Client A",
  "limit_daily_ngonka": "1000000000",
  "limit_monthly_ngonka": "10000000000",
  "expires_at": "2026-04-01T00:00:00Z",
  "rate_limit_rpm": 30
}
GET/api/management/keys/:id/children

Daftar kunci anak dengan statistik penggunaan.

PUT/api/management/keys/:id/children/:childId

Perbarui batas, RPM, atau status kunci anak.

DELETE/api/management/keys/:id/children/:childId

Nonaktifkan kunci anak (penghapusan lunak).

Account

GET/api/balance

Saldo saat ini

json
{
  "balance_ngonka": "11999976",
  "balance_usd": 0.008,
  "cost_per_token_ngonka": 1,
  "tokens_remaining": 11999976
}
GET/api/keys

Daftar kunci API

POST/api/keys

Buat kunci API

DELETE/api/keys/:id

Hapus kunci API

Billing

GET/api/usage

Statistik penggunaan

Query: period=day|week|month&tz=-180

json
{
  "period": "month",
  "usage": [{
    "date": "2026-03-20",
    "requests": 42,
    "tokens": 18500,
    "costNgonka": "22200"
  }]
}
GET/api/deposits

Riwayat deposit

Query: limit=50&offset=0&from=2026-03-01&to=2026-03-21

json
{
  "deposits": [{
    "id": "abc-123",
    "type": "DEPOSIT_GNK",
    "amountNgonka": "10000000",
    "description": "GNK deposit via memo",
    "createdAt": "2026-03-20T12:00:00Z"
  }],
  "total": 3
}
GET/api/transactions

Riwayat transaksi

Query: limit=50&offset=0&type=INFERENCE&from=2026-03-01&to=2026-03-21

json
{
  "transactions": [{
    "id": "def-456",
    "type": "INFERENCE",
    "amountNgonka": "-1200",
    "feeNgonka": "120",
    "description": null,
    "createdAt": "2026-03-20T14:30:00Z"
  }],
  "total": 128
}
GET/api/pricing

Tarif dan biaya (publik, tanpa otorisasi)

json
{
  "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

Untuk stream: true, respons tiba secara berurutan melalui SSE (Server-Sent Events).

OpenAI (stream: true)

text
data: {"choices":[{"delta":{"content":"Hello"}}]}

data: {"choices":[{"delta":{"content":"!"}}]}

data: {"choices":[],"x_joingonka":{"cost_ngonka":"24"}}

data: [DONE]

Anthropic (stream: true)

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

Kesalahan

json
// 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"}}

Model

Jaringan Gonka mendukung beberapa model melalui satu API — daftar saat ini selalu dapat diambil melalui permintaan GET /v1/models. Untuk memilih model, berikan ID-nya di kolom model dalam body permintaan.

ModelVendorKonteksOutput maksimalVRAMStatus
MiniMax M2.7MiniMax195K8K320 GBTersedia
Kimi K2.6Moonshot AI195K8K720 GBTersedia
DeepSeek V4 FlashDeepSeek371K32K280 GBTersedia

Secara default (jika model tidak ditentukan), model unggulan jaringan digunakan. Daftar saat ini dengan metadata — GET /v1/models.

Daftar model saat ini dengan semua metadata - GET /v1/models. Vision dan input multimodal (image_url) belum didukung oleh jaringan Gonka upstream.

Tarif dan biaya

Transparansi penuh: di bawah ini adalah semua biaya gateway. Nilai aktual dimuat secara langsung dari API — titik akhir publik GET /api/pricing tersedia tanpa otorisasi.

OperasiBiayaCatatan
Markup untuk inference10%Markup platform di atas harga jaringan Gonka — sumber pendapatan utama gateway. Dikenakan pada setiap permintaan bersama dengan biaya token.
Isi saldo melalui USDT5%Dipotong oleh penyedia pembayaran saat membayar dengan kripto (USDT).
Isi saldo melalui GNKgratisTransfer langsung GNK on-chain dikreditkan tanpa biaya gateway.
Penarikan dana5%Dipotong saat menarik GNK ke alamat eksternal. Penarikan diproses secara manual dalam waktu 24-48 jam.
Harga GNK saat ini$0.147Nilai tukar GNK/USD yang digunakan untuk menghitung isi saldo dan saldo. Diperbarui secara otomatis.

GET /api/pricing

Batas

Model: Semua model jaringan Gonka (arsitektur multi-model DevShards)

Batas permintaan: dengan kunci API, jumlah permintaan tidak dibatasi secara tetap (dibatasi oleh konkurensi jaringan); tanpa kunci — 20/hari per IP (anti-spam)

Maks. token: hingga 32.768 token per permintaan untuk DeepSeek V4 Flash dan hingga 8.192 untuk model lainnya (nilai yang melebihi batas akan dipotong oleh gateway). Untuk respons panjang, gunakan stream:true untuk menghindari timeout.

Streaming: didukung (SSE, stream: true)

Batas waktu jaringan: Jika jaringan Gonka telah menerima permintaan tetapi tidak merespons dalam 300 detik, permintaan berakhir dengan error 504, dan pemrosesan prompt akan dipotong berdasarkan estimasi: permintaan yang diterima oleh jaringan tidak dapat dibatalkan, node akan memprosesnya dalam kondisi apa pun. Completion tidak dikenakan biaya saat timeout. Untuk generasi yang panjang, gunakan stream:true.