API Reference
Referensi ringkas satu halaman — rate limit, Anthropic Messages API, OpenAI Chat Completions, kode error, dan daftar model
Base URL: https://api.hostlinku.com. Semua endpoint gateway berada di bawah /v1 dan menerima
API key Hostlinku (sk-…) lewat header Authorization: Bearer atau x-api-key.
Rate Limiting
Untuk menjaga kualitas layanan bagi semua pengguna, gateway memberlakukan batas berikut per API key:
Detail rate limit:
- Jendela 60 detik per API key; request dari semua model dihitung bersama.
- Request yang ditolak limiter tidak menyentuh saldo (tidak ada reservasi kredit).
- Endpoint konsol & publik (
/api/*) dibatasi 120 req/min per IP; endpoint autentikasi 30 percobaan / 15 menit per IP.
Saat terkena limit:
- Mengembalikan HTTP
429 Too Many Requests. - Header
Retry-Afterberisi jumlah detik yang disarankan sebelum mencoba lagi. - Header
RateLimit-Limit/RateLimit-Remaining/RateLimit-Reset(format IETF) menunjukkan kuota RPM saat ini.
Anthropic Messages API Format
POST /v1/messages
Panggil model dengan format native Anthropic. Header request harus memuat x-api-key: YOUR_API_KEY
(atau Authorization: Bearer). Cocok untuk Anthropic SDK, Claude Code, Cursor, dan Cline — cukup
set ANTHROPIC_BASE_URL=https://api.hostlinku.com. Dokumentasi lengkap: Anthropic Messages.
Request Body Parameters
Example Request
curl --request POST \
--url https://api.hostlinku.com/v1/messages \
--header 'content-type: application/json' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'anthropic-version: 2023-06-01' \
--data '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": "You are a professional coding assistant",
"messages": [
{ "role": "user", "content": "Write a quicksort in Python" }
]
}'Response Example
{
"id": "msg_mv5ujf05qf6ayfbx",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{ "type": "text", "text": "def quicksort(arr):\n if len(arr) <= 1:\n return arr\n ..." }
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 14,
"output_tokens": 86,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"cache_creation": { "ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0 }
},
"hostlinku": { "cost": 0.0013, "currency": "🪙", "serviceMode": "performance", "latencyMs": 2410 }
}Streaming Output
curl -N --request POST \
--url https://api.hostlinku.com/v1/messages \
--header 'content-type: application/json' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'accept: text/event-stream' \
--data '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": [{ "type": "text", "text": "Hello" }] }],
"stream": true
}'Respons dikirim per potongan dalam format SSE:
event: message_start
data: {"type":"message_start","message":{"id":"msg_…","type":"message","role":"assistant","model":"claude-sonnet-4-6","content":[],"stop_reason":null,"usage":{"input_tokens":10,"output_tokens":1}}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Hello"}}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":10,"output_tokens":5}}
event: message_stop
data: {"type":"message_stop"}OpenAI Protocol (Chat Completions API)
POST /v1/chat/completions
Panggil model apa pun dengan format OpenAI Chat Completions. Header request harus memuat
Authorization: Bearer YOUR_API_KEY. SDK OpenAI cukup diarahkan ke base_url="https://api.hostlinku.com/v1".
Dokumentasi lengkap: Chat Completions.
Request Body Parameters
Example Request
curl https://api.hostlinku.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-d '{
"model": "gpt-5-5",
"messages": [
{ "role": "user", "content": "Write a quicksort in Python" }
],
"stream": false
}'Example Response
{
"id": "cmpl_mv5strfqh3zktr",
"object": "chat.completion",
"created": 1770000000,
"model": "gpt-5-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "def quicksort(arr):\n if len(arr) <= 1:\n return arr\n ..." },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 12, "completion_tokens": 86, "total_tokens": 98 },
"hostlinku": { "cost": 0.0009, "currency": "🪙", "serviceMode": "performance", "latencyMs": 1890 }
}Streaming Output
curl -N https://api.hostlinku.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-d '{
"model": "gpt-5-5",
"messages": [{ "role": "user", "content": "Hello" }],
"stream": true
}'data: {"id":"cmpl_…","object":"chat.completion.chunk","model":"gpt-5-5","choices":[{"index":0,"delta":{"role":"assistant","content":""}}]}
data: {"id":"cmpl_…","object":"chat.completion.chunk","model":"gpt-5-5","choices":[{"index":0,"delta":{"content":"Hello"}}]}
data: {"id":"cmpl_…","object":"chat.completion.chunk","model":"gpt-5-5","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":5,"completion_tokens":12,"total_tokens":17}}
data: [DONE]Error Codes
Envelope error mengikuti protokol endpoint yang dipanggil:
/v1/chat/completions → { "status": "error", "error": { "code", "message" } };
/v1/messages → { "type": "error", "error": { "type", "message" } }.
Pesan error tidak pernah memuat identitas atau teks mentah provider upstream. Daftar kode lengkap format OpenAI ada di Error.
429 Response Headers
Query Available Models
GET /v1/models
Mengembalikan model yang tersedia untuk Service Mode API key yang dipakai, beserta harga 🪙 per 1M token pada mode tersebut.
Example Request
curl --request GET \
--url https://api.hostlinku.com/v1/models \
--header 'Authorization: Bearer YOUR_API_KEY'Response Example
{
"object": "list",
"service_mode": "performance",
"data": [
{
"id": "claude-haiku-4-5",
"object": "model",
"created": 1760000000,
"owned_by": "hostlinku",
"context_window": 200000,
"capabilities": ["chat", "tools", "vision"],
"service_mode": "performance",
"pricing": { "input": 0.8, "output": 4, "cache_read": 0.08, "cache_write": 1, "unit": "1M_tokens", "currency": "🪙" }
},
{
"id": "claude-sonnet-4-6",
"object": "model",
"created": 1760000000,
"owned_by": "hostlinku",
"context_window": 200000,
"capabilities": ["chat", "tools", "vision"],
"service_mode": "performance",
"pricing": { "input": 2.4, "output": 12, "cache_read": 0.24, "cache_write": 3, "unit": "1M_tokens", "currency": "🪙" }
}
]
}