TokenomixAI API
Endpoint TokenomixAI mengikuti format OpenAI. Kode dan tool yang sudah mendukung OpenAI bisa langsung dipakai dengan mengganti base URL dan API key.
Quickstart
- Beli paket di halaman pricing. Setelah pembayaran masuk, kamu menerima API key
sk-tkx-…dan hashtag akun#TKX-XXXXXX. - Set base URL ke
https://api.tokenomixai.com/v1. - Kirim request seperti ke OpenAI.
curl https://api.tokenomixai.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID",
"stream": true,
"messages": [{"role": "user", "content": "Halo!"}]
}'Belum punya tool? Install dengan 1 command
Kalau kamu belum punya coding agent, command di bawah menginstall OpenCode atau Claude Code sekaligus mengisi base URL dan API key. Script mengecek key dulu, lalu mem-backup config lama sebelum mengisi bagian TokenomixAI. Setting lain di config kamu (MCP, plugin, provider lain) tetap dipertahankan; config yang berisi komentar ditulis ulang (backup tetap ada). Untuk balik ke config semula, jalankan command yang sama dengan tambahan --restore (Linux/macOS) atau $env:RESTORE="1" (Windows), lalu /logout dan /login di dalam tool. Isi script bisa kamu baca sebelum dijalankan: opencode.sh, opencode.ps1, claude.sh, claude.ps1.
Quickstart: install tool + pasang key, 1 command
bash <(curl -fsSL https://tokenomixai.com/install/opencode.sh)- 1. Buka Terminal, paste command di atas, tekan Enter.
- 2. Saat diminta, paste API key kamu (sk-tkx-...). Key tidak tampil saat diketik, itu normal. Jangan dibagikan ke orang lain.
- 3. Buka terminal baru, lalu jalankan
opencode.
Config lama (kalau ada) otomatis di-backup sebelum diganti.
Mau balik ke config semula?bash <(curl -fsSL https://tokenomixai.com/install/opencode.sh) --restore
Model baru belum muncul di /models?bash <(curl -fsSL https://tokenomixai.com/install/opencode.sh) --update-models
Key hanya dipakai di browser ini untuk mengganti contoh sk-tkx-…. Tidak disimpan dan tidak dikirim ke mana pun.
Pakai di aplikasi desktop
Tidak ada command terpisah. Jalankan command di atas sekali di Terminal atau PowerShell. Aplikasi desktop membaca config yang sama:
- OpenCode Desktop: pakai command OpenCode. Tutup lalu buka lagi aplikasinya, provider TokenomixAI dan model default langsung terpilih.
- Claude Code di VS Code: pakai command Claude Code. Tutup lalu buka lagi VS Code, buka panel Claude Code, lalu langsung chat. Tidak perlu login akun Claude.
Aplikasi Claude Desktop belum bisa dipakai, baik tab Chat maupun tab Code. Tab Code di aplikasi itu selalu memakai akun Claude yang sedang login, jadi setting dari command di atas tidak terbaca. Pakai Claude Code di Terminal atau VS Code.
Autentikasi
Kirim key di header Authorization: Bearer sk-tkx-…. Key hanya ditampilkan sekali saat diterbitkan. TokenomixAI menyimpan key dalam bentuk hash, jadi key yang hilang tidak bisa ditampilkan ulang, hanya bisa di-rotate.
Endpoint
| Method | Path | Keterangan |
|---|---|---|
GET | /v1/models | Daftar model aktif |
POST | /v1/chat/completions | Chat completion, mendukung stream: true (SSE) |
POST | /v1/messages | Format Anthropic Messages, untuk Claude Code |
POST | /v1/responses | Format OpenAI Responses API, misalnya node OpenAI Chat Model di n8n |
GET | /v1/quota | Sisa kuota key ini, lihat Cek sisa kuota |
Endpoint lain di luar daftar ini mengembalikan 404.
Tool use (function calling)
Tool use bisa dipakai di kedua endpoint dengan format standar masing-masing. Definisi tool, tool call dari model, dan hasil tool diteruskan apa adanya, juga saat stream: true. Claude Code, OpenCode, dan agent di Setup tool memakai fitur ini di balik layar.
Pilih model yang mendukung tool calling. Kalau model membalas teks biasa tanpa tool call, coba model lain dari katalog.
Chat Completions (format OpenAI)
Kirim daftar tool di field tools. tool_choice opsional ("auto", "none", "required", atau nama function tertentu).
curl https://api.tokenomixai.com/v1/chat/completions \
-H "Authorization: Bearer sk-tkx-…" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID",
"messages": [{ "role": "user", "content": "What is the weather in Jakarta right now?" }],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city",
"parameters": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}
}],
"tool_choice": "auto"
}'
Kalau model memanggil tool, jawabannya berisi choices[0].message.tool_calls dengan finish_reason: "tool_calls". arguments berupa string JSON. Jalankan tool di sisi kamu, lalu kirim ulang percakapan: pesan assistant tadi apa adanya, ditambah satu pesan role: "tool" per tool call.
"messages": [
{ "role": "user", "content": "What is the weather in Jakarta right now?" },
{ "role": "assistant", "content": null, "tool_calls": [{
"id": "call_1", "type": "function",
"function": { "name": "get_weather", "arguments": "{\"city\":\"Jakarta\"}" }
}] },
{ "role": "tool", "tool_call_id": "call_1", "content": "{\"temp_c\":31,\"condition\":\"sunny\"}" }
]
Messages (format Anthropic)
Field tools berisi name, description, dan input_schema. max_tokens wajib di format ini.
curl https://api.tokenomixai.com/v1/messages \
-H "Authorization: Bearer sk-tkx-…" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "What is the weather in Jakarta right now?" }],
"tools": [{
"name": "get_weather",
"description": "Get the current weather for a city",
"input_schema": {
"type": "object",
"properties": { "city": { "type": "string" } },
"required": ["city"]
}
}]
}'
Model membalas block tool_use di content dengan stop_reason: "tool_use". Kirim hasilnya sebagai block tool_result di pesan user berikutnya, dengan tool_use_id yang sama.
"messages": [
{ "role": "user", "content": "What is the weather in Jakarta right now?" },
{ "role": "assistant", "content": [
{ "type": "tool_use", "id": "toolu_1", "name": "get_weather", "input": { "city": "Jakarta" } }
] },
{ "role": "user", "content": [
{ "type": "tool_result", "tool_use_id": "toolu_1", "content": "{\"temp_c\":31,\"condition\":\"sunny\"}" }
] }
]Setup tool
Cursor
- Buka Settings → Models.
- Isi OpenAI API Key dengan key
sk-tkx-…, aktifkan Override OpenAI Base URL dan isihttps://api.tokenomixai.com/v1. - Tambahkan nama model dari katalog (misalnya
MODEL_ID) sebagai custom model.
Cline / Roo Code
Pilih API Provider OpenAI Compatible, isi Base URL https://api.tokenomixai.com/v1, API Key, dan Model ID dari katalog.
Zed
// ~/.config/zed/settings.json
{
"language_models": {
"openai": {
"api_url": "https://api.tokenomixai.com/v1",
"available_models": [
// max_tokens: sesuaikan dengan konteks model
{ "name": "MODEL_ID", "display_name": "MODEL_ID (TokenomixAI)", "max_tokens": 128000 }
]
}
}
}
// API key diisi lewat Agent Panel → Settings → OpenAI.
OpenCode
Cara tercepat: install 1 command. Manual:
- Install:
curl -fsSL https://opencode.ai/install | bash(Windows:npm install -g opencode-ai). - Buat config di
~/.config/opencode/opencode.json:
// opencode.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"tokenomixai": {
"npm": "@ai-sdk/openai-compatible",
"name": "TokenomixAI",
"options": {
"baseURL": "https://api.tokenomixai.com/v1",
"apiKey": "{env:TOKENOMIXAI_API_KEY}"
},
"models": {
"MODEL_ID": { "name": "MODEL_ID" },
"MODEL_ALT": { "name": "MODEL_ALT" }
}
}
}
}
- Set
TOKENOMIXAI_API_KEYdi environment kamu, lalu jalankanopencode.
Muncul error upstream request failed: invalid credential atau 401? Key tidak terbaca atau salah: cek key tersalin utuh (diawali sk-tkx-, tanpa spasi), pastikan TOKENOMIXAI_API_KEY ada di terminal yang menjalankan OpenCode, atau jalankan ulang install 1 command untuk mengisi key lagi. Key yang sudah di-rotate tidak berlaku lagi.
Claude Code
Cara tercepat: install 1 command. Panduan lengkap per sistem operasi ada di Cara install Claude Code. Manual:
- Install (butuh Node.js):
npm install -g @anthropic-ai/claude-code. - Isi
~/.claude/settings.json. Base URL tanpa/v1, karena Claude Code menambahkan/v1/messagessendiri:
// ~/.claude/settings.json
{
"env": {
"ANTHROPIC_BASE_URL": "https://api.tokenomixai.com",
"ANTHROPIC_AUTH_TOKEN": "sk-tkx-…",
"ANTHROPIC_MODEL": "MODEL_ID",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "MODEL_FAST",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "MODEL_ID",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "MODEL_ID",
"CLAUDE_CODE_AUTO_COMPACT_WINDOW": "200000"
}
}
- Jalankan
claude. Ganti model dengan/model haiku,sonnet, atauopus(dipetakan ke model di atas, bukan model Claude asli). Model lain dari katalog, termasuk Claude, dipilih dengan/model <model-id>. - Peringatan Model "…" isn't recognized · context assumed … itu normal: Claude Code belum mengenal nama model di katalog, modelnya tetap jalan. Baris
CLAUDE_CODE_AUTO_COMPACT_WINDOWmembuat percakapan diringkas otomatis di 200rb token, jadi model dengan context lebih kecil tidak error dan chat panjang tidak menghabiskan kuota sebesar seluruh context di tiap pesan.
9router
- Install dan jalankan:
npm install -g 9routerlalu9router. Dashboard ada dihttp://localhost:20128/dashboard. - Buka Providers, lalu Add OpenAI Compatible.
- Isi Prefix dengan
tknx(bebas, dipakai sebagai awalan ID model) dan API Type denganChat Completions. - Isi Base URL dengan
https://api.tokenomixai.com/v1dan API Key dengansk-tkx-…. - Isi Model ID dengan model dari katalog (misalnya
MODEL_ID), klik Check sampai muncul Valid, lalu Create.
Model dipanggil dengan ID tknx/<model-id>, dan bisa dimasukkan ke combo atau routing 9router seperti provider lain.
Hermes
Hermes bisa langsung ke TokenomixAI sebagai provider custom, tanpa perantara. Install: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash, lalu isi dua file berikut dan jalankan hermes.
# ~/.hermes/config.yaml
model:
provider: custom
base_url: https://api.tokenomixai.com/v1
default: MODEL_ID # model ID dari katalog, jangan auto
key_env: ROUTER_API_KEY
# ~/.hermes/.env
ROUTER_API_KEY=sk-tkx-…
Nama variabel di key_env bebas, asal sama dengan yang kamu isi di .env. Kalau kamu sudah memakai 9router, Hermes juga bisa diarahkan ke 9router yang punya provider TokenomixAI di atas.
n8n
Pakai node AI Agent versi 3 ke atas, lalu pilih salah satu chat model:
- Anthropic Chat Model (paling mudah): buat credential Anthropic, isi API Key
sk-tkx-…dan Base URLhttps://api.tokenomixai.com(tanpa/v1). - OpenAI Chat Model: buat credential OpenAI, isi API Key
sk-tkx-…dan Base URLhttps://api.tokenomixai.com/v1, tanpa garis miring di akhir. Node ini memakai Responses API secara default; kalau workflow kamu dapat404, buka Options lalu matikan Use Responses API.
Tulis ID model dari katalog secara langsung (misalnya model GLM), jangan auto: auto menambah banyak input token di tiap request. Node chat, AI Agent dan tool calling bisa dipakai. Embeddings belum tersedia, jadi node Embeddings dan vector store belum bisa memakai key ini.
OpenClaw & agent lain
Pilih provider custom / OpenAI-compatible (API chat/completions), isi Base URL https://api.tokenomixai.com/v1, API Key sk-tkx-…, dan Model ID dari katalog. Agent memakai tool calling, jadi pilih model yang mendukungnya.
Stuck pas setup? Tanya di grup Telegram, terbuka untuk umum.
Model baru
Begitu model baru muncul di katalog, model itu langsung bisa dipakai dengan key yang sama. Panggil dengan ID persis seperti di katalog. Yang perlu disesuaikan hanya tool yang menyimpan daftar model sendiri:
| Tool | Cara memakai model baru |
|---|---|
| OpenCode | Jalankan command update di bawah, buka ulang opencode, lalu pilih lewat /models. |
| Claude Code | Di dalam claude, ketik /model <model-id>. Pilihan haiku, sonnet, dan opus dari installer diarahkan ke model di config, bukan ke model Claude asli. |
| Cursor | Tambahkan ID model sebagai custom model di Settings → Models. |
| Cline / Roo Code, Hermes, OpenClaw | Ganti Model ID di setting provider. |
| Zed | Tambahkan entri baru di available_models. |
| 9router | Tambahkan Model ID di provider TokenomixAI, lalu panggil tknx/<model-id>. |
| Kode sendiri | Isi field model. Daftar live ada di GET /v1/models. |
Command update OpenCode memakai key yang sudah tersimpan di config, mem-backup config dulu, lalu hanya mengganti daftar model TokenomixAI. Model default, provider lain, dan setting lain tidak disentuh. Butuh python3 (Linux/macOS) atau Node.js (Windows).
Linux / macOS:
bash <(curl -fsSL https://tokenomixai.com/install/opencode.sh) --update-models
Windows (PowerShell):
$env:UPDATE_MODELS="1"; irm https://tokenomixai.com/install/opencode.ps1 | iexModel & multiplier
Token yang terpotong dihitung dengan:
token_terpakai = (prompt_tokens + completion_tokens) × multiplier
Contoh: model dengan multiplier 2× memotong 2.000 token untuk task 1.000 token. Daftar model dan multiplier di bawah ini live dari server, sama isinya dengan katalog model di homepage.
Harga /1M token = harga normal per token × multiplier, belum termasuk promo. Angka kecil untuk paket terbesar, angka besar untuk paket terkecil: makin besar paketnya, makin murah per token. 1 perintah di tool coding bisa jadi puluhan panggilan API, dan tiap panggilan mengirim ulang seluruh konteks percakapan.
Ketersediaan: GLM, DeepSeek dan Kimi stoknya stabil. GPT dan Claude tersedia saat ada stok, statusnya tampil live di tabel ini.
Kendala? Hubungi admin lewat WhatsApp atau Telegram, sebutkan issue-nya. Kami bantu sampai beres.
Rate limit
Batasnya 600 request per menit per akun (dibagi semua key kamu, termasuk key tambahan), dihitung dengan algoritma token bucket (burst sampai 600 request). Batas ini berlaku untuk semua model sekaligus, bukan per model. Gateway tidak membatasi jumlah request concurrent. Saat batas terlampaui, gateway mengembalikan 429 dengan header Retry-After (detik).
Saat sebuah model sedang ramai, request ke model itu sesekali juga bisa dibalas 429 walaupun key kamu masih di bawah batas. Untuk agent atau trafik async, pasang retry dengan backoff. Ada kendala soal limit? Hubungi kami.
Kode error
Error mengikuti format OpenAI: {"error": {"message", "type", "code"}}.
| HTTP | code | Arti |
|---|---|---|
400 | invalid_request | Body bukan JSON object, atau ada field yang rusak (misalnya messages kosong, temperature di luar 0-2). Nama field ada di error.message. |
400 | invalid_model | Field model kosong atau formatnya salah. ID model berisi 1-64 karakter huruf, angka, dan . _ : / -. |
401 | invalid_api_key | Key salah, sudah di-rotate, atau tidak dikirim. |
402 | quota_exhausted | Kuota habis atau masa aktif lewat. Tidak reset dengan menunggu: top-up lalu ulangi dengan key yang sama. |
403 | key_disabled | Key dinonaktifkan. Hubungi support. |
404 | not_found | Endpoint tidak didukung gateway. |
404 | model_not_available | Model tidak tersedia di TokenomixAI. Cek ID di katalog model. |
404 | model_not_found | Model tidak ada di katalog. Pakai ID persis dari GET /v1/models. |
429 | rate_limit_exceeded | Terlalu banyak request untuk key ini. Tunggu sesuai header Retry-After. |
502 | upstream_unavailable | Upstream tidak bisa dihubungi. Aman untuk di-retry. |
502 | upstream_auth | Masalah kredensial di sisi gateway. Hubungi support. |
502 | upstream_empty_response | Stream selesai tanpa isi jawaban. Aman untuk di-retry. |
503 | stream_paused | Stream ke model ini beberapa kali kosong berturut-turut, jadi request stream ke model itu dijeda sebentar untuk melindungi kuota kamu. Tunggu sesuai Retry-After, ganti model, atau kirim stream: false. |
503 | quota_unavailable | Data kuota sementara tidak bisa diambil (hanya di /v1/quota). Coba lagi sebentar. |
4xx/5xx | upstream_error | Request ditolak di sisi model (misalnya prompt terlalu panjang). Pesan detail ada di error.message. |
Cek sisa kuota
Sisa kuota selalu bisa dilihat di Portal. Supaya tidak perlu bolak-balik ke Portal, sisa kuota juga bisa tampil langsung di tool kamu:
| Tool | Tampilan |
|---|---|
| Claude Code (terminal dan VS Code) | Satu baris di bawah kotak input, diperbarui tiap menit, dengan peringatan saat sisa 10% atau kurang dan saat habis atau expired. Terpasang otomatis lewat install 1 command sebagai plugin tokenomixai. Claude Code versi lama mendapat status line di terminal saja; status line yang sudah kamu pasang sendiri tidak ditimpa. |
| OpenCode | Notifikasi kecil setelah AI selesai menjawab: sekali di awal, lalu hanya saat sisa 10% atau kurang (paling sering 10 menit sekali). Terpasang otomatis lewat install 1 command. File-nya (plugins/tokenomix-quota.js) adalah plugin, bukan MCP server. Kalau muncul tokenomix-quota.js failed di daftar MCP, berarti file itu sempat didaftarkan di bagian mcp config: jalankan ulang install 1 command, entry itu dibersihkan otomatis. |
| Tool lain dan script sendiri | Panggil GET /v1/quota dengan key yang sama, contoh di bawah. |
Baris di VS Code butuh Claude Code versi terbaru. Kalau installer memberi tahu versimu belum mendukung, update Claude Code lalu jalankan ulang command install. Sudah install sebelum fitur ini ada? Jalankan ulang command install untuk memasangnya. Tanpa installer: ketik /plugin install tokenomixai --marketplace sagarasea/tokenomixai-claude di dalam Claude Code.
curl https://api.tokenomixai.com/v1/quota -H "Authorization: Bearer sk-tkx-…"
{
"object": "quota",
"hashtag": "#TKX-XXXXXX",
"status": "active",
"remainingTokens": 3800000000,
"maxTokens": 5000000000,
"usagePercent": 24,
"expiresAt": "2026-12-12T00:00:00.000Z",
"low": false,
"checkedAt": "2026-11-08T07:00:00.000Z",
"stale": false
}
low bernilai true saat sisa 10% atau kurang. status berisi exhausted saat kuota habis atau masa aktif lewat. Angka disimpan sementara 60 detik (stale: true = angka terakhir yang tersimpan karena data terbaru sedang tidak bisa diambil). Batasnya 60 request per menit per IP, dan endpoint ini tidak memotong kuota.
Hemat kuota untuk request kecil
Setiap request dipotong minimal sekitar 1.000 token (sebelum multiplier), sekecil apa pun isinya. Untuk tugas kecil yang banyak, misalnya satu item di n8n, satu sel spreadsheet, atau satu pesan bot, gabungkan beberapa item dalam satu request daripada mengirimnya satu per satu.
Tulis ID model langsung dari katalog, jangan auto. Model auto menambah sekitar 17 ribu input token di tiap request, jadi paling boros untuk request kecil.
Portal & top-up
Masuk ke Portal dengan API key untuk melihat sisa kuota, masa aktif, riwayat request, rotate key, serta membuat dan mencabut key tambahan (satu per tool atau perangkat, maks 5, kuota tetap sama). Untuk menambah kuota, beli paket dengan pilihan Top-up dan isi hashtag akun kamu (format #TKX-XXXXXX). Key tidak berubah saat top-up.
Data yang dicatat
Untuk setiap request, gateway mencatat: waktu, endpoint, model, status HTTP, latensi, dan jumlah token prompt/completion. Isi prompt dan jawaban tidak disimpan oleh gateway TokenomixAI. Request tetap diproses oleh penyedia model upstream untuk menghasilkan jawaban. Detail di Kebijakan Privasi.