1. Base URL 2. Autentikasi 3. Model 4. Chat 5. Stream Python Node.js Error Codes

Dokumentasi API IOI AI

Integrasikan model AI mutakhir (Grok, DeepSeek, Gemini, dll) ke dalam aplikasi atau IDE Anda dengan format yang 100% kompatibel dengan OpenAI API.

1. Mulai Cepat & Base URL

Gunakan endpoint produksi di bawah ini sebagai pengganti https://api.openai.com/v1 di aplikasi atau library SDK Anda.

Base URL Produksi
https://ai.ioi.my.id/v1

2. Autentikasi

Setiap request ke endpoint gateway memerlukan API key yang diawali dengan ioi_live_. Anda dapat menyalin API key Anda langsung dari Dashboard Pengguna.

Sertakan key dalam header HTTP salah satu bentuk berikut:

Header Bearer
Authorization: Bearer ioi_live_YOUR_API_KEY

Atau menggunakan header alternatif:

Header X-API-Key
X-API-Key: ioi_live_YOUR_API_KEY

3. Daftar Model GET /v1/models

Mengambil daftar model AI aktif yang siap digunakan oleh akun Anda.

cURL
curl https://ai.ioi.my.id/v1/models \
  -H "Authorization: Bearer ioi_live_YOUR_API_KEY"

Contoh Model Populer Aktif:

  • deepseek-v4.1 — Model penalaran dan coding dengan context 1 juta token.
  • gcli/grok-4.7 — Model penalaran mutakhir dari xAI.
  • gcli/grok-4.6 — Model performa tinggi dengan context 500k token.
  • ag/gemini-3.8-flash-high — Model multimodal ultra-cepat dari Google.
  • hy4-preview — Model preview efisien untuk tugas umum.

Daftar lengkap dan tombol salin 1-klik tersedia di Dashboard.

4. Chat Completions POST /v1/chat/completions

Kirim pesan obrolan dan dapatkan jawaban dari model AI pilihan Anda.

cURL
curl https://ai.ioi.my.id/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ioi_live_YOUR_API_KEY" \
  -d '{
    "model": "deepseek-v4.1",
    "messages": [
      {"role": "user", "content": "Halo, tolong jelaskan apa itu REST API secara singkat."}
    ],
    "temperature": 0.7
  }'

5. Streaming Respons (Server-Sent Events)

Tambahkan parameter "stream": true untuk menerima output secara bertahap (karakter per karakter) seperti ChatGPT.

cURL Streaming
curl https://ai.ioi.my.id/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ioi_live_YOUR_API_KEY" \
  -N \
  -d '{
    "model": "gcli/grok-4.7",
    "messages": [{"role": "user", "content": "Tuliskan 1 pantun jenaka."}],
    "stream": true
  }'

6. Contoh Kode Siap Pakai

Python (OpenAI SDK)

Instal library resmi: pip install openai

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://ai.ioi.my.id/v1",
    api_key="ioi_live_YOUR_API_KEY"
)

response = client.chat.completions.create(
    model="deepseek-v4.1",
    messages=[
        {"role": "system", "content": "Anda adalah asisten AI yang ramah dan cerdas."},
        {"role": "user", "content": "Halo! Buatkan contoh fungsi async di Python."}
    ]
)

print(response.choices[0].message.content)

Node.js / TypeScript (OpenAI SDK)

Instal library resmi: npm install openai

Node.js
import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://ai.ioi.my.id/v1',
  apiKey: 'ioi_live_YOUR_API_KEY',
});

async function main() {
  const completion = await client.chat.completions.create({
    model: 'gcli/grok-4.7',
    messages: [{ role: 'user', content: 'Halo dunia!' }],
  });

  console.log(completion.choices[0].message.content);
}

main();

Integrasi Editor AI (Cursor / Continue / Cline / OpenWebUI)

IOI AI dapat langsung dipasang ke editor coding favorit Anda:

  • Provider / API: OpenAI Compatible
  • Base URL: https://ai.ioi.my.id/v1
  • API Key: ioi_live_... (dari Dashboard)
  • Model: deepseek-v4.1 atau gcli/grok-4.7

7. Status Code & Penanganan Error

StatusArtiPenanganan
200 OKSuksesPermintaan berhasil diproses.
400 Bad RequestParameter tidak validPeriksa nama model atau format JSON body.
401 UnauthorizedAPI key salah / tidak adaPastikan header Authorization: Bearer ... terisi benar.
402 Payment RequiredSaldo token habisLakukan isi ulang token kredit Anda di halaman pembelian.
429 Rate LimitedTerlalu banyak permintaanKurangi frekuensi pemanggilan request per menit.
503 Service UnavailableUpstream sibukCoba kembali beberapa saat lagi.