MenuReferensi API

Referensi API

API mengikuti format OpenAI di https://ai.geraikita.com/v1 dan format Anthropic di https://ai.geraikita.com. Semua body permintaan dan respons berformat JSON (UTF-8).

EndpointFungsi
POST /v1/chat/completionsChat format OpenAI (stream & non-stream)
POST /v1/messagesMessages format Anthropic (stream & non-stream)
POST /v1/messages/count_tokensHitung token prompt format Anthropic — gratis
GET /v1/modelsDaftar model yang bisa dipakai
POST /v1/images/generationsMembuat gambar dari prompt teks, ditagih per gambar — lihat Membuat gambar
Saat ini hanya endpoint di atas yang tersedia. Endpoint lain milik OpenAI (mis. /v1/responses, /v1/embeddings) belum didukung.

Chat completions (OpenAI)

POSThttps://ai.geraikita.com/v1/chat/completions

Membuat jawaban dari daftar pesan. Header: Authorization: Bearer gk-… dan Content-Type: application/json.

Body permintaan

ParameterTipeKeterangan
modelstringWajib. Id model persis seperti di daftar model, tanpa prefix.
messagesarrayWajib. Array pesan berurutan; tiap pesan berisi role dan content. Minimal satu pesan.
streambooleantrue untuk menerima jawaban bertahap lewat Server-Sent Events.
max_tokensintegerBatas token jawaban. Bila saldo tidak cukup untuk nilai yang diminta, server bisa menurunkannya otomatis.
temperature, top_p, stop—Diteruskan ke model apa adanya. Dukungan dan rentang nilainya bergantung model.
tools, tool_choicearray / objectPemanggilan fungsi (tool calling) format OpenAI, diteruskan ke model yang mendukungnya.

Contoh permintaan

curl https://ai.geraikita.com/v1/chat/completions \
  -H "Authorization: Bearer gk-xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Halo!"}]
  }'

Contoh respons

200 OK · application/json
{
  "id": "chatcmpl-…",
  "object": "chat.completion",
  "model": "claude-sonnet-5",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "…" },
      "finish_reason": "stop"
    }
  ],
  "usage": { "prompt_tokens": 12, "completion_tokens": 9, "total_tokens": 21 }
}

Objek usage berisi jumlah token yang menjadi dasar tagihan — lihat Harga & penagihan.

Messages (Anthropic)

POSThttps://ai.geraikita.com/v1/messages

Endpoint native Anthropic untuk SDK Anthropic dan Claude Code CLI. Base URL di klien = https://ai.geraikita.com (tanpa /v1).

Header

HeaderNilaiKeterangan
x-api-keygk-…API key gk- kamu (Authorization: Bearer juga diterima).
anthropic-version2023-06-01Versi API Anthropic; dikirim otomatis oleh SDK.
content-typeapplication/json—

Body permintaan

ParameterTipeKeterangan
modelstringWajib. Id model persis seperti di daftar model, tanpa prefix.
messagesarrayWajib. Array pesan format Anthropic, minimal satu pesan.
max_tokensintegerBatas token jawaban (wajib di format Anthropic).
systemstring / arrayInstruksi sistem (opsional).
streambooleantrue untuk menerima jawaban bertahap lewat Server-Sent Events.

Contoh permintaan

curl https://ai.geraikita.com/v1/messages \
  -H "x-api-key: gk-xxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Halo!"}]
  }'

Perlu menghitung token sebelum mengirim? POST https://ai.geraikita.com/v1/messages/count_tokens menerima body yang sama dan tidak ditagih.

Daftar model

GEThttps://ai.geraikita.com/v1/models

Mengembalikan daftar id model yang bisa dikirim di kolom model. Bila dipanggil dengan key yang dibatasi allowlist, hanya model yang diizinkan yang tampil. Dengan header x-api-key atau anthropic-version, bentuk respons mengikuti format Anthropic.

curl https://ai.geraikita.com/v1/models \
  -H "Authorization: Bearer gk-xxxxxxxx"

Streaming (SSE)

Dengan "stream": true, jawaban dikirim sebagai text/event-stream. Server langsung mengirim header, lalu baris komentar keepalive : ka tiap 10 detik selama menunggu, sehingga koneksi tidak dianggap mati. Setel timeout total aplikasi minimal 300 detik.

text/event-stream
data: {"choices":[{"index":0,"delta":{"content":"Ha"}}]}

: ka

data: {"choices":[{"index":0,"delta":{"content":"lo!"}}]}

data: [DONE]
  • Format OpenAI: setiap potongan berupa baris data: berisi JSON dengan choices[].delta, diakhiri data: [DONE].
  • Format Anthropic: event message_start, content_block_delta, …, message_stop seperti API Anthropic.
  • Abaikan baris yang diawali titik dua (:) — itu keepalive, bukan data. Panduan per tool ada di Setelan tool agentic.