Kompatibel dengan OpenAI Chat Completions dan Anthropic Messages. Ganti base URL, sisanya tetap sama.
https://api.velgrind.my.id/v1
Semua request butuh header Authorization: Bearer vg-....
Key dibuat di dashboard, ditampilkan sekali.
curl https://api.velgrind.my.id/v1/chat/completions \
-H "Authorization: Bearer vg-..." \
-H "Content-Type: application/json" \
-d '{
"model": "cb/deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Halo"}]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.velgrind.my.id/v1",
api_key="vg-...",
)
r = client.chat.completions.create(
model="cb/deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Jelaskan rekursi dalam 2 kalimat"}],
)
print(r.choices[0].message.content)
print(r.usage.velgrind) # {"charge_idr": ..., "balance_idr": ...}
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.velgrind.my.id/v1",
apiKey: process.env.VELGRIND_KEY,
});
const r = await client.chat.completions.create({
model: "cb/deepseek-v4.1-flash",
messages: [{ role: "user", content: "Halo" }],
});
console.log(r.choices[0].message.content);
stream = client.chat.completions.create(
model="cb/deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Tulis puisi pendek"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
| ID | Nama | Input /1M | Output /1M |
|---|---|---|---|
| vel/deepseek-4.1-flash | DeepSeek 4.1 Flash | Rp15.00 | Rp60.00 |
| vel/deepseek-4.1-flash-alt | DeepSeek 4.1 Flash (alt) | Rp15.00 | Rp60.00 |
| vel/glm-5.3-flash-zai | GLM 5.3 Flash (zai) | Rp15.00 | Rp50.00 |
| vel/deepseek-4-flash-0731 | DeepSeek 4 Flash 0731 | Rp18.00 | Rp53.00 |
| vel/hy3 | HY3 | Rp78.00 | Rp330.00 |
| vel/glm-5.3-flash | GLM 5.3 Flash | Rp84.00 | Rp280.00 |
| vel/minimax-m3.1-flash | MiniMax M3.1 Flash | Rp170.00 | Rp670.00 |
| vel/deepseek-4.1-flash-cn | DeepSeek 4.1 Flash (cn) | Rp330.00 | Rp1,290.00 |
| vel/kimi-k2.5 | Kimi K2.5 | Rp340.00 | Rp1,670.00 |
| vel/hy4-preview | HY4 Preview | Rp470.00 | Rp1,390.00 |
| vel/glm-5.3 | GLM 5.3 | Rp670.00 | Rp2,090.00 |
| vel/gpt-5.3-codex | GPT 5.3 Codex | Rp840.00 | Rp6,650.00 |
| vel/gemini-3.1-pro | Gemini 3.1 Pro | Rp950.00 | Rp5,700.00 |
| vel/kimi-k3 | Kimi K3 | Rp1,430.00 | Rp7,120.00 |
| vel/claude-opus-4.6 | Claude Opus 4.6 | Rp2,380.00 | Rp11,870.00 |
| vel/claude-sonnet-4.6 | Claude Sonnet 4.6 | Rp10,330.00 | Rp51,620.00 |
| vel/claude-opus-4.6-alt | Claude Opus 4.6 (alt) | Rp20,180.00 | Rp100,860.00 |
Tagihan dihitung dari prompt_tokens + completion_tokens
yang dilaporkan upstream. Cache read dihitung 10% dari harga input.
Tagihan minimum Rp0.36 per request — request sekecil
apa pun tetap kena angka ini. Ini menutup biaya tetap di sisi kami.
Saldo dipotong setelah response selesai. Kalau saldo tidak cukup untuk estimasi
awal, request ditolak dengan 402 sebelum dikirim ke model.
| Kode | Arti |
|---|---|
| 401 | Key salah, dicabut, atau masa aktif habis |
| 402 | Saldo tidak cukup |
| 404 | Model tidak tersedia |
| 502 | Upstream gagal di semua channel |
Setiap top-up memperpanjang masa aktif 30 hari. Kalau masa aktif habis, key berhenti bekerja — tapi saldo tidak hangus. Top up lagi dan saldo lama tetap bisa dipakai.