Dokumentasi

Panduan integrasi

Tiga endpoint, tiga format. Pilih yang sudah dipakai aplikasimu — tidak perlu mengubah kode selain base URL dan API key.

Base URL

Semua request lewat domain kita — bukan domain provider. Beberapa bentuk base URL diterima sekaligus, pakai yang paling cocok dengan aplikasimu; hasilnya sama.

GayaBase URL yang bisa dipakai
OpenAIhttps://api.advance.my.id/v1
OpenAI (lengkap)https://api.advance.my.id/api/openai/v1
Claudehttps://api.advance.my.id
Geminihttps://api.advance.my.id/v1beta
Gemini (lengkap)https://api.advance.my.id/api/gemini/v1beta

Base URL apa pun yang berakhiran /v1 otomatis diarahkan ke gateway yang sama.

Endpoint yang didukung

EndpointDipakai olehStatus
POST /v1/chat/completionsOpenAI SDK, Cursor, Cline, Roo, Continue, LibreChatpenuh
POST /v1/responsesCodex CLI, OpenAI Agents SDKpenuh
POST /v1/completionstool lama (legacy text completion)penuh
POST /v1/embeddingsRAG, vector DBditeruskan
POST /v1/tokenizehitung token & biaya tanpa memotong kuotapenuh
GET /v1/modelssemua agent (deteksi model)penuh
GET /v1/mecek sisa kuota, masa aktif, batas laju dari skrippenuh
POST /v1/messagesClaude Code, Anthropic SDKpenuh
POST /v1/messages/count_tokensClaude Codepenuh
POST /v1beta/models/{model}:generateContentGoogle SDK, Gemini toolingpenuh

Cek kuota dari dalam skrip

GET /v1/me menjawab tiga hal yang biasanya harus dibuka dashboard dulu: sisa kuota, masa aktif, dan batas laju key yang sedang dipakai. Berguna untuk cron atau agent yang ingin berhenti sendiri sebelum kena penolakan.

curl https://api.advance.my.id/v1/me \ -H "Authorization: Bearer $ADVANCE_API_KEY"

Balasan memuat quota.limit, quota.left, validity.days_left, limits.requests_per_minute, usage_24h, dan usable (false kalau kuota habis atau masa aktif berakhir). Endpoint ini tidak memotong kuota.

Hitung biaya sebelum kirim

POST /v1/tokenize mengembalikan jumlah token dan kuota yang akan dipotong — tanpa benar-benar memanggil model dan tanpa memotong kuota. Cocok untuk membuat pagar anggaran di aplikasimu: tolak request sebelum terkirim kalau enough bernilai false.

curl https://api.advance.my.id/v1/tokenize \ -H "Authorization: Bearer sk-adv-xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-claude-opus-5.5", "messages": [{"role":"user","content":"Ringkas artikel ini: ..."}], "max_tokens": 400 }'

Balasan berisi tokens_input, tokens_output, quota_units, quota_left, enough, dan est_idr (perkiraan rupiah memakai tarif paket termurah). Angkanya perkiraan ±5% — angka inilah yang dipakai gateway untuk memotong kuota, jadi selalu sama dengan tagihan asli.

Autentikasi

Kirim API key lewat header. Tiga bentuk header diterima agar cocok dengan SDK masing-masing.

# Semua endpoint menerima salah satu header berikut Authorization: Bearer sk-adv-xxxxxxxx x-api-key: sk-adv-xxxxxxxx x-goog-api-key: sk-adv-xxxxxxxx # khusus Gemini

OpenAI compatible

Mendukung stream, tools, response_format, dan /v1/models.

curl https://api.advance.my.id/v1/chat/completions \ -H "Authorization: Bearer sk-adv-xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-claude-opus-5.5", "messages": [{"role":"user","content":"Halo!"}], "stream": true }'
from openai import OpenAI client = OpenAI( base_url="https://api.advance.my.id/v1", api_key="sk-adv-xxxxxxxx", ) stream = client.chat.completions.create( model="gpt-claude-opus-5.5", messages=[{"role": "user", "content": "Halo!"}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="")

Claude compatible

Format /v1/messages termasuk system, max_tokens, tool use, dan event SSE content_block_delta.

curl https://api.advance.my.id/v1/messages \ -H "x-api-key: sk-adv-xxxxxxxx" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-opus-5-5", "max_tokens": 1024, "messages": [{"role":"user","content":"Halo!"}] }'
import anthropic client = anthropic.Anthropic( base_url="https://api.advance.my.id", api_key="sk-adv-xxxxxxxx", ) msg = client.messages.create( model="claude-opus-5-5", max_tokens=1024, messages=[{"role": "user", "content": "Halo!"}], ) print(msg.content[0].text)

Gemini compatible

Gunakan :generateContent atau :streamGenerateContent. Nama model ditulis di path.

curl "https://api.advance.my.id/v1beta/models/gpt-kimi-k2.8:generateContent" \ -H "x-goog-api-key: sk-adv-xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "contents": [{"parts":[{"text":"Halo!"}]}] }'

Alias model

Nama asli selalu menang. Untuk model non-gpt-, tersedia alias berawalan gpt- — berguna untuk aplikasi yang hanya menerima nama model GPT.

DimintaDiarahkan kePengali
gpt-claude-opus-5.5claude-opus-5-532×
gpt-claude-opus-5claude-opus-520×
gpt-kimi-k2.8kimi-k2.82×
gpt-5.6gpt-5.6 (asli, tidak diubah)5×

Nama model di respons dikembalikan sesuai yang kamu minta, jadi aplikasi tidak akan melihat nama internal.

Kuota & pembatasan

TPD · TPM · RPM UNLIMITED
Kuota dipotong = (prompt + completion) × pengali model, dibulatkan ke atas.
Panjang output dibatasi otomatis agar tidak pernah melewati sisa kuota.
Permintaan yang tidak cukup kuota ditolak dengan 402 sebelum dikirim ke model.
TPD · TPM · RPM UNLIMITED: tidak ada batas harian, per menit, atau per detik. Satu-satunya batas adalah sisa token di akunmu dan stok sistem — selama keduanya ada, request dilayani.
Setiap potongan tercatat di ledger dan bisa diaudit.

Masa aktif & perpanjangan

TOKEN TIDAK HANGUS. Saat masa aktif habis, key hanya berhenti melayani: sisa kuota tetap tersimpan apa adanya dan langsung bisa dipakai lagi setelah diperpanjang.
Perpanjangan dijual terpisah dari token — 10 hari Rp 3.000, tanpa membeli token. Tombolnya ada di Dashboard → API Key.
Masa aktif maksimal 28 hari ke depan, jadi perpanjangan baru terbuka saat sisa masa aktif ≤ 18 hari (28 − 10).
Permintaan dari key yang masa aktifnya habis ditolak 403 key_expired, dan pesannya menyebutkan sisa kuotamu.
Gangguan di sisi kami tidak pernah ditagih. Kalau permintaanmu gagal karena galat 5xx, kuota pengganti masuk otomatis: setiap 3 kegagalan dalam 24 jam = 4.500 kuota, maksimal 45.000 per key per hari.

Webhook

Satu URL per akun, diatur di Dashboard → Pengaturan. Kami mengirim POST dengan JSON { event, at, data } untuk kejadian pesanan.lunas, perpanjangan.lunas, kuota.menipis (sisa ≤ 20%), dan key.kedaluwarsa.

# header yang dikirim x-advance-event: pesanan.lunas x-advance-signature: sha256=<hmac sha256 dari body mentah memakai secret-mu> # verifikasi di server-mu (node) const sig = "sha256=" + crypto.createHmac("sha256", SECRET).update(rawBody).digest("hex"); if (sig !== req.headers["x-advance-signature"]) return res.status(401).end(); # balas 2xx dalam < 8 detik. Gagal: diulang 3x (0,5 dtk, 1,5 dtk, 4 dtk) # untuk galat jaringan dan 5xx. Balasan 4xx tidak diulang.

API key lengkap TIDAK pernah dikirim lewat webhook — payload hanya memuat id dan prefix key. Ambil key-nya di dashboard.

Kode error

401 invalid_api_key Key salah atau tidak dikirim 403 key_revoked Key dicabut admin 403 key_expired Masa aktif habis 402 insufficient_quota Sisa kuota tidak cukup 404 model_not_found Model/alias tidak dikenal 429 rate_limit_exceeded Melebihi batas request/menit atau token/menit key 503 service_unavailable Maintenance (mode tolak request)

Model tersedia

auto · 1.31×deepseek-v4-flash · 2.31×deepseek-v4-flash-0731 · 2.31×deepseek-v4-flash-vision-exp · 2.81×deepseek-v4-mod · 3.31×deepseek-v4.1-flash · 2.87×deepseek-v4.1-flash-1017 · 3.31×deepseek-v4.1-flash-1017-mod · 3.81×deepseek-v4.1-flash-mod · 3.51×deepseek-v4.1-uncensored · 5.4×gemini-3.7-flash · 6.2×gemini-3.8-flash · 7.8×lihat semua →

Belum punya key?

Mulai dari Rp 1.000, aktif otomatis setelah bayar.

Beli paket