Dokumentasi API
Mulai cepat
Base URL
https://heraxles.dev/v1
Autentikasi
Authorization: Bearer YOUR_API_KEYFormat
application/jsonPasang otomatis
Claude Code
curl -fsSL https://heraxles.dev/setup/claude-code.sh | sh
Codex CLI
curl -fsSL https://heraxles.dev/setup/codex.sh | sh
OpenCode
curl -fsSL https://heraxles.dev/setup/opencode.sh | sh
Hermes
curl -fsSL https://heraxles.dev/setup/hermes.sh | sh
Autentikasi
Authorization: Bearer hx_xxxxxxxxxxxxxxxxxxxx
x-api-key: hx_xxxxxxxxxxxxxxxxxxxx # alternatif
Daftar model
curl https://heraxles.dev/v1/models \ -H "Authorization: Bearer YOUR_API_KEY"
Chat completions
POST /v1/chat/completions
| Parameter | Tipe | Keterangan |
|---|---|---|
model | string | |
messages | array | |
stream | boolean | |
max_tokens | integer | |
temperature | number | |
tools | array |
Contoh request
curl https://heraxles.dev/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-astra",
"messages": [
{"role": "system", "content": "Jawab singkat dalam Bahasa Indonesia."},
{"role": "user", "content": "Jelaskan apa itu API dalam 2 kalimat."}
],
"max_tokens": 300,
"stream": true
}'
Bentuk jawaban
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "gpt-6-astra",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 42, "completion_tokens": 128, "total_tokens": 170}
}
Streaming
data: {"choices":[{"delta":{"content":"Se"}}]}
data: {"choices":[{"delta":{"content":"buah"}}]}
data: {"choices":[{"delta":{},"finish_reason":"stop"}],
"usage":{"total_tokens":170}}
data: [DONE]
Function calling
{
"model": "gpt-6-astra",
"messages": [{"role": "user", "content": "Cuaca Jakarta?"}],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Ambil cuaca sebuah kota",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
}
/v1/responses
curl https://heraxles.dev/v1/responses \
-H "Authorization: Bearer ***" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-astra","input":"Halo","stream":true}'
Endpoint dashboard & bridge
| Endpoint | Method | Kegunaan |
|---|---|---|
/v1/messages | POST | |
/v1/usage | GET | |
/v1/usage/detail | GET | |
/v1/health-test | POST |
Setelan per alat
Cek kuota & masa aktif
Batas & header
| Header | Arti |
|---|---|
X-RateLimit-Limit |
|
X-RateLimit-Remaining |
|
X-RateLimit-Reset |
|
Retry-After |
Batas kecepatan, paralel & paket
- Perpanjangan tier yang sama otomatis menambah akumulasi sisa masa aktif key. Pergantian ke tier berbeda langsung memakai durasi paket baru pilihan.
- Booster berlaku 24 jam per pembelian untuk menaikkan slot paralel dan RPM; perpanjangan booster tier yang sama menambah sisa jam; booster hanya aktif selama paket dasar berlaku.
- Pembelian paket lewat dasbor member langsung aktif otomatis pada API key; voucher dari luar dasbor diklaim manual melalui menu Klaim Voucher.
Slot langganan (kapasitas paket)
Slot adalah kapasitas langganan berbayar yang aktif. Satu slot berarti satu langganan aktif, bukan satu request — ini berbeda dari slot paralel (request bersamaan) di atas.
Jumlah langganan aktif dibatasi agar kapasitas server terbagi rata dan kualitas setiap paket tetap stabil.
Kalau slot penuh, pembeli baru belum bisa melanjutkan pembelian sampai ada slot yang lepas. Tidak ada daftar tunggu; halaman otomatis membuka lagi begitu slot tersedia. Member yang sudah aktif tetap berjalan normal dan tetap dapat memperpanjang paketnya.
Slot sebuah langganan kembali tersedia begitu masa aktifnya berakhir.
Kode error
| HTTP | code | Penyebab & tindakan |
|---|---|---|
| 400 | request_invalid |
|
| 400 | model_unavailable |
|
| 401 | invalid_api_key |
|
| 402 | plan_expired |
|
| 402 | insufficient_quota |
|
| 402 | service_limited |
|
| 403 | model_not_allowed |
|
| 403 | model_disabled |
|
| 429 | rate_limit |
|
| 429 | parallel_limit |
|
| 429 | busy |
|
| 502 | service_auth |
|
| 502 | request_failed |
|
| 503 | chat_capacity |
|
| 503 | model_unavailable |
|
| 503 | unavailable |
|
| 504 | timeout |
|
| 200 | stream error event |
|
| 200 | safety_refusal |