Dokumentasi API

Kompatibel dengan OpenAI Chat Completions dan Anthropic Messages. Ganti base URL, sisanya tetap sama.

Base URL

https://api.velgrind.my.id/v1

Autentikasi

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

Python

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

Node / TypeScript

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

Streaming

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="")

Model tersedia

IDNamaInput /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

Penagihan

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.

Error

KodeArti
401Key salah, dicabut, atau masa aktif habis
402Saldo tidak cukup
404Model tidak tersedia
502Upstream gagal di semua channel

Masa aktif & saldo

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.