01 // API SPECIFICATION & QUICKSTART

Dokumentasi Teknis TokenFajri AI API Gateway

TokenFajri menyediakan antarmuka REST & Server-Sent Events (SSE) yang 100% kompatibel dengan spesifikasi OpenAI API v1. Anda dapat memanggil model Anthropic Claude, OpenAI GPT, DeepSeek, Google Gemini, Meta Llama, dan Qwen cukup dengan mengganti parameter baseURL dan apiKey pada kode atau IDE yang sudah ada.

Panduan Integrasi Spesifik per Platform

Pilih panduan langkah demi langkah sesuai lingkungan pengembangan atau bahasa pemrograman yang Anda gunakan:

1. Konfigurasi Dasar Endpoint & Autentikasi

Seluruh permintaan API dikirim melalui HTTPS menggunakan header standar Authorization: Bearer sk-tok-.... Kunci API dapat dibuat dan dibatasi batas pengeluarannya (*spending limit*) melalui halaman Developer Console.

ParameterNilai StandarKeterangan
Base URLhttps://token.fajriag.ai.id/v1Gunakan sebagai pengganti https://api.openai.com/v1
Chat CompletionsPOST https://token.fajriag.ai.id/v1/chat/completionsMendukung JSON penuh & streaming SSE (stream: true)
Daftar ModelGET https://token.fajriag.ai.id/v1/modelsMengembalikan daftar model publik yang aktif & terverifikasi
Header AuthAuthorization: Bearer sk-tok-xxxxKunci disimpan dengan hash SHA-256 di database

2. Contoh Permintaan Langsung (cURL)

Anda dapat menguji koneksi gateway langsung dari terminal menggunakan perintah curl berikut:

curl -X POST "https://token.fajriag.ai.id/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-tok-API_KEY_ANDA" \
  -d '{
    "model": "deepseek-v4.1-flash-1017",
    "messages": [
      { "role": "system", "content": "Anda adalah asisten software engineer senior." },
      { "role": "user", "content": "Jelaskan perbedaan proses dan thread secara singkat." }
    ],
    "temperature": 0.2,
    "stream": false
  }'

3. Mekanisme Pemotongan Kuota, Saldo IDR & Kode Status HTTP

Setiap panggilan ke POST /v1/chat/completions melewati lapisan verifikasi atomik PostgreSQL (SELECT ... FOR UPDATE) dengan urutan prioritas penagihan berikut:

PRIORITAS 01
Model Free Tier (Rp 0)

Jika model berstatus Free Tier, panggilan tidak memotong kuota paket maupun saldo Rupiah.

PRIORITAS 02
Kuota Paket Bergulir / Eceran

Jika akun memiliki kuota request aktif, sistem memotong 1 request per panggilan tanpa menyentuh saldo IDR.

PRIORITAS 03
Saldo Pay-As-You-Go IDR

Jika tidak ada paket kuota aktif, biaya dihitung berdasarkan jumlah token input dan output dikalikan tarif model dalam Rupiah.

Kode HTTPKode ErrorPenyebab & Solusi
200 OK-Permintaan berhasil diproses (JSON atau stream SSE).
401 Unauthorizedinvalid_api_keyHeader Authorization kosong atau API Key tidak terdaftar.
402 Payment Requiredinsufficient_quotaKuota request habis dan saldo IDR di bawah batas minimum reservasi (Rp 500).
404 Not Foundmodel_not_foundString ID model tidak terdaftar di katalog. Cek daftar model aktif di /v1/models.
429 Too Many Requestsconcurrency_limit_exceededBatas permintaan paralel (in-flight) tercapai (maksimal 8 slot bersamaan untuk akun berpaket/saldo sehat).
Dokumentasi API Gateway OpenAI-Compatible (Cursor, Cline, Python, Next.js) | TokenFajri