เอกสารประกอบ

เริ่มต้นอย่างรวดเร็ว

JoinGonka Gateway รองรับ OpenAI และ Anthropic API เพื่อเข้าถึงโมเดล Gonka แทนที่ base_url ในไคลเอ็นต์ของคุณ - และทุกอย่างก็ใช้งานได้

URL พื้นฐาน: https://gate.joingonka.ai/v1

โมเดล: MiniMaxAI/MiniMax-M2.7

การอนุญาต: Bearer YOUR_API_KEY

Python (OpenAI SDK)

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

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 รองรับ Anthropic Messages API (/v1/messages) โดยกำเนิด Claude Code, Anthropic SDK และเครื่องมือใดๆ ที่ใช้รูปแบบ Anthropic ทำงานโดยตรงโดยไม่ต้องใช้พร็อกซี

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

สตรีมมิ่ง (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)

Tool Use (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?"}]
  }'

ทั้งสองรูปแบบ (OpenAI และ Anthropic) ใช้คีย์ API และยอดคงเหลือเดียวกัน

ปลายทาง API

Inference

POST/v1/chat/completions

การสร้างการตอบกลับ - รูปแบบ OpenAI (รองรับการสตรีมมิ่ง)

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

การสร้างการตอบกลับ - รูปแบบ Anthropic (การสตรีมมิ่ง, 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

รายการโมเดลที่มีอยู่

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

ปลั๊กอิน

ปลั๊กอินขยายขีดความสามารถของ API ส่งอาร์เรย์ปลั๊กอินในคำขอเพื่อเปิดใช้งาน

GET/v1/plugins

รายการปลั๊กอินที่มีอยู่

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

การใช้งานในการร้องขอ

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

web

ค้นหาเว็บโดยตรงภายในโมเดล Gonka ตัวโมเดลเอง (Kimi, MiniMax, DeepSeek) ไม่มีฟังก์ชันการค้นหา gateway จะทำการแทรกผลลัพธ์ล่าสุดจากอินเทอร์เน็ตเข้าไปในบริบทและส่งคืนการอ้างอิงแหล่งที่มา ทำงานได้ทั้งในโหมด stream และ non-stream แบ็กเอนด์เป็นแบบ self-hosted: คำขอจะไม่ถูกส่งไปยัง API การค้นหาของบุคคลที่สามโดยใช้บัญชีของคุณ

วิธีที่ 1 – ออบเจกต์ web ในอาร์เรย์ plugins (การฉีดผลลัพธ์พร้อมตัวเลือก):

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

วิธีที่ 2 – โหมดเอเจนต์ (mode: "agent"): โมเดลจะเรียกใช้ web_search เมื่อจำเป็นต้องค้นหาเท่านั้น:

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

ตัวเลือก: max_results — จำนวนผลลัพธ์ (ค่าเริ่มต้นคือ 5, สูงสุดคือ 10); search_prompt — พรอมต์คำแนะนำ (grounding prompt) ของคุณเองซึ่งแสดงก่อนผลลัพธ์

การตอบกลับจะอัปเกรดข้อมูลเพิ่มเติมใน annotations[].url_citation (url, title) — ตามมาตรฐาน OpenRouter:

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

การคิดราคา: โหมด plugins:[{ "id": "web" }] — คิดตามโทเค็นเท่านั้น (ผลลัพธ์ที่นำมาผสมจะถูกนับเป็น prompt-โทเค็นปกติ) โหมดเอเจนท์ (mode: "agent") — โทเค็นของทุกขั้นตอนในลูปบวกค่าธรรมเนียมเพิ่มเติม 1000 nGNK ต่อการเรียกใช้ web_search (≈ $0.0001 ต่อ 1000 การค้นหา ตามอัตราแลกเปลี่ยน ~$0.15 ต่อ GNK)

ไม่รองรับการทำงานร่วมกับ privacy-sanitization: จะเกิดข้อผิดพลาด 400 จากคำขอที่ทำงานร่วมกัน

response-healing

การแก้ไข JSON/เอาต์พุตโครงสร้างที่ถูกตัดทอนโดยอัตโนมัติ ใช้งานได้เฉพาะกับการร้องขอแบบ non-streaming ที่มีเนื้อหา JSON

privacy-sanitization

การปกปิดข้อมูลที่ละเอียดอ่อน (คีย์ API, อีเมล, ที่อยู่ IP, JWT, หมายเลขบัตร) ในข้อความก่อนส่งไปยังโมเดล

โหมด: redact (แทนที่ด้วย [REDACTED]) หรือ tokenize (แทนที่ด้วย [TOKEN_001]) ส่ง privacy_mode ใน body

file-parser

การดึงข้อความจากเอกสาร PDF รองรับ data:application/pdf;base64,... และ raw base64

Management Keys

คีย์ API แบบลำดับชั้นสำหรับการผสานรวม SaaS Management key (gm-) สร้างคีย์ย่อย (gc-) ที่มีขีดจำกัดและ TTL

POST/api/management/keys

สร้าง Management key (คำนำหน้า gm-) ใช้สำหรับจัดการคีย์ย่อยเท่านั้น

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

สร้างคีย์ย่อย (คำนำหน้า gc-) พร้อมขีดจำกัดเสริม การเรียกเก็บเงินจะถูกหักออกจากยอดคงเหลือของเจ้าของ Management key

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

รายการคีย์ย่อยพร้อมสถิติการใช้งาน

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

อัปเดตขีดจำกัด, RPM หรือสถานะของคีย์ย่อย

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

ปิดใช้งานคีย์ย่อย (ลบแบบซอฟต์)

Account

GET/api/balance

ยอดคงเหลือปัจจุบัน

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

รายการคีย์ API

POST/api/keys

สร้างคีย์ API

DELETE/api/keys/:id

ลบคีย์ API

Billing

GET/api/usage

สถิติการใช้งาน

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

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

ประวัติการฝาก

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

ประวัติการทำธุรกรรม

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

อัตราค่าบริการและค่าธรรมเนียม (สาธารณะ, ไม่ต้องตรวจสอบสิทธิ์)

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

สำหรับ stream: true การตอบกลับจะมาเป็นชิ้นส่วนผ่าน 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"}

ข้อผิดพลาด

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

โมเดล

เครือข่าย Gonka ให้บริการโมเดลหลายตัวผ่าน API เดียว คุณสามารถดึงรายชื่อรุ่นล่าสุดได้ตลอดเวลาโดยใช้คำขอ GET /v1/models ในการเลือกโมเดล ให้ส่ง ID ของโมเดลนั้นในช่อง model ของเนื้อหาคำขอ

โมเดลผู้จำหน่ายบริบทเอาต์พุตสูงสุดVRAMสถานะ
MiniMax M2.7MiniMax195K8K320 GBพร้อมใช้งาน
Kimi K2.6Moonshot AI195K8K720 GBพร้อมใช้งาน
DeepSeek V4 FlashDeepSeek371K32K280 GBพร้อมใช้งาน

ตามค่าเริ่มต้น (หากไม่ได้ระบุ model) จะใช้โมเดลเรือธงของเครือข่าย รายการปัจจุบันพร้อมข้อมูลเมตา — GET /v1/models.

รายการโมเดลปัจจุบันพร้อมข้อมูลเมตาทั้งหมด - GET /v1/models. Vision และอินพุตแบบมัลติโมดอล (image_url) ยังไม่รองรับโดยเครือข่าย Gonka อัปสตรีม

อัตราค่าบริการและค่าธรรมเนียม

ความโปร่งใสอย่างสมบูรณ์: ด้านล่างนี้คือค่าธรรมเนียมเกตเวย์ทั้งหมด ค่าปัจจุบันจะถูกดึงแบบเรียลไทม์จาก API โดยเอ็นด์พอยต์สาธารณะ GET /api/pricing สามารถเข้าถึงได้โดยไม่ต้องยืนยันตัวตน

การดำเนินการค่าธรรมเนียมหมายเหตุ
ค่าบริการส่วนเพิ่มสำหรับการเรียกใช้งาน (Inference)10%ค่าบริการส่วนเพิ่มของแพลตฟอร์มที่บวกเพิ่มจากราคาเครือข่าย Gonka ซึ่งเป็นรายได้หลักของเกตเวย์ โดยจะถูกหักออกจากแต่ละคำขอพร้อมกับราคาของโทเคน
เติมเงินผ่าน USDT5%หักโดยผู้ให้บริการชำระเงินเมื่อชำระด้วยคริปโต (USDT)
เติมเงินผ่าน GNKฟรีการโอน GNK แบบ on-chain โดยตรงจะไม่มีค่าธรรมเนียมเกตเวย์
การถอนเงิน5%หักเมื่อถอน GNK ไปยังที่อยู่ภายนอก การถอนเงินจะดำเนินการด้วยตนเองภายใน 24–48 ชั่วโมง
ราคา GNK ปัจจุบัน$0.147อัตราแลกเปลี่ยน GNK/USD ที่ใช้คำนวณยอดเงินฝากและยอดคงเหลือ อัปเดตโดยอัตโนมัติ

GET /api/pricing

ขีดจำกัด

โมเดล: โมเดลเครือข่าย Gonka ทั้งหมด (โครงสร้างหลายโมเดล DevShards)

ขีดจำกัดคำขอ: เมื่อใช้ API key จะไม่มีการจำกัดจำนวนคำขอแบบคงที่ (จำกัดตามการทำงานพร้อมกันของเครือข่าย); หากไม่มีคีย์ — จำกัดที่ 20 ครั้ง/วัน ต่อ IP (ป้องกันสแปม)

โทเค็นสูงสุด: สูงสุด 32,768 token ต่อหนึ่งคำขอสำหรับ DeepSeek V4 Flash และสูงสุด 8,192 สำหรับรุ่นอื่นๆ (ค่าที่เกินขีดจำกัดจะถูกตัดโดย gateway) สำหรับคำตอบที่ยาว ให้ใช้ stream:true เพื่อหลีกเลี่ยงการหมดเวลา (timeout)

การสตรีมมิ่ง: รองรับ (SSE, stream: true)

หมดเวลาเครือข่าย: หากเครือข่าย Gonka ยอมรับคำขอแล้วแต่ไม่ตอบกลับภายใน 300 วินาที คำขอจะสิ้นสุดลงด้วยข้อผิดพลาด 504 และการประมวลผลพรอมต์จะถูกตัดยอดตามที่ประมาณไว้: คำขอที่เครือข่ายยอมรับแล้วไม่สามารถยกเลิกได้ โหนดจะดำเนินการประมวลผลให้ในทุกกรณี Completion จะไม่ถูกเรียกเก็บเงินหากเกิดหมดเวลา สำหรับการสร้างที่ยาวให้ใช้ stream:true