เอกสารประกอบ
เริ่มต้นอย่างรวดเร็ว
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)
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 รองรับ Anthropic Messages API (/v1/messages) โดยกำเนิด Claude Code, Anthropic SDK และเครื่องมือใดๆ ที่ใช้รูปแบบ Anthropic ทำงานโดยตรงโดยไม่ต้องใช้พร็อกซี
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?"}
]
}'สตรีมมิ่ง (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)
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
/v1/chat/completionsการสร้างการตอบกลับ - รูปแบบ OpenAI (รองรับการสตรีมมิ่ง)
{
"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/messagesการสร้างการตอบกลับ - รูปแบบ Anthropic (การสตรีมมิ่ง, 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/modelsรายการโมเดลที่มีอยู่
{
"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 ส่งอาร์เรย์ปลั๊กอินในคำขอเพื่อเปิดใช้งาน
/v1/pluginsรายการปลั๊กอินที่มีอยู่
{
"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"}
]
}การใช้งานในการร้องขอ
{
"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 (การฉีดผลลัพธ์พร้อมตัวเลือก):
{
"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 เมื่อจำเป็นต้องค้นหาเท่านั้น:
{
"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:
{
"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
/api/management/keysสร้าง Management key (คำนำหน้า gm-) ใช้สำหรับจัดการคีย์ย่อยเท่านั้น
/api/management/keys/:id/childrenสร้างคีย์ย่อย (คำนำหน้า gc-) พร้อมขีดจำกัดเสริม การเรียกเก็บเงินจะถูกหักออกจากยอดคงเหลือของเจ้าของ Management key
{
"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/childrenรายการคีย์ย่อยพร้อมสถิติการใช้งาน
/api/management/keys/:id/children/:childIdอัปเดตขีดจำกัด, RPM หรือสถานะของคีย์ย่อย
/api/management/keys/:id/children/:childIdปิดใช้งานคีย์ย่อย (ลบแบบซอฟต์)
Account
/api/balanceยอดคงเหลือปัจจุบัน
{
"balance_ngonka": "11999976",
"balance_usd": 0.008,
"cost_per_token_ngonka": 1,
"tokens_remaining": 11999976
}/api/keysรายการคีย์ API
/api/keysสร้างคีย์ API
/api/keys/:idลบคีย์ API
Billing
/api/usageสถิติการใช้งาน
Query: period=day|week|month&tz=-180
{
"period": "month",
"usage": [{
"date": "2026-03-20",
"requests": 42,
"tokens": 18500,
"costNgonka": "22200"
}]
}/api/depositsประวัติการฝาก
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/transactionsประวัติการทำธุรกรรม
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/pricingอัตราค่าบริการและค่าธรรมเนียม (สาธารณะ, ไม่ต้องตรวจสอบสิทธิ์)
{
"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)
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"}ข้อผิดพลาด
// 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.7 | MiniMax | 195K | 8K | 320 GB | พร้อมใช้งาน |
| Kimi K2.6 | Moonshot AI | 195K | 8K | 720 GB | พร้อมใช้งาน |
| DeepSeek V4 Flash | DeepSeek | 371K | 32K | 280 GB | พร้อมใช้งาน |
ตามค่าเริ่มต้น (หากไม่ได้ระบุ model) จะใช้โมเดลเรือธงของเครือข่าย รายการปัจจุบันพร้อมข้อมูลเมตา — GET /v1/models.
รายการโมเดลปัจจุบันพร้อมข้อมูลเมตาทั้งหมด - GET /v1/models. Vision และอินพุตแบบมัลติโมดอล (image_url) ยังไม่รองรับโดยเครือข่าย Gonka อัปสตรีม
อัตราค่าบริการและค่าธรรมเนียม
ความโปร่งใสอย่างสมบูรณ์: ด้านล่างนี้คือค่าธรรมเนียมเกตเวย์ทั้งหมด ค่าปัจจุบันจะถูกดึงแบบเรียลไทม์จาก API โดยเอ็นด์พอยต์สาธารณะ GET /api/pricing สามารถเข้าถึงได้โดยไม่ต้องยืนยันตัวตน
| การดำเนินการ | ค่าธรรมเนียม | หมายเหตุ |
|---|---|---|
| ค่าบริการส่วนเพิ่มสำหรับการเรียกใช้งาน (Inference) | 10% | ค่าบริการส่วนเพิ่มของแพลตฟอร์มที่บวกเพิ่มจากราคาเครือข่าย Gonka ซึ่งเป็นรายได้หลักของเกตเวย์ โดยจะถูกหักออกจากแต่ละคำขอพร้อมกับราคาของโทเคน |
| เติมเงินผ่าน USDT | 5% | หักโดยผู้ให้บริการชำระเงินเมื่อชำระด้วยคริปโต (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