Baru: GLM-4.6 & Kimi K2 sudah tersedia di katalog. Lihat model
CosmosIn

Dokumentasi

Satu endpoint kompatibel OpenAI & Anthropic — dari request pertama sampai pulih dari error, semuanya ada di halaman ini.

Mulai dalam tiga langkah

01

Buat API key

Daftar, lalu buat key dari dashboard. Key diawali sk-cos. Simpan baik-baik karena key hanya ditampilkan sekali.

02

Arahkan base URL

Ganti base URL di SDK atau tool-mu. Autentikasi memakai header Authorization: Bearer <key>.

03

Kirim request pertama

Pilih model dari katalog dan kirim request seperti biasa. Biaya langsung tercatat di log.

~/request_pertama
from openai import OpenAI
client = OpenAI(
base_url="https://api.cosmosin.io/v1",
api_key="sk-cos...",
)
resp = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Halo!"}],
)
print(resp.choices[0].message.content)

Autentikasi & API key

Setiap request wajib membawa key lewat header Authorization: Bearer. Satu akun bisa punya banyak key — buat terpisah per tool atau proyek.

~/header
Authorization: Bearer sk-cos...

Format key

Key berprefix sk-cos diikuti 48 karakter hex. Secret lengkap hanya tampil sekali saat dibuat; setelah itu dashboard hanya menampilkan bentuk tersamar (sk-cos…c56789).

Kelola key

Buat dan cabut key dari dashboard. Key yang dicabut langsung berhenti bekerja. Rotasi berkala: buat key baru, perbarui tool-mu, lalu cabut yang lama. Perlakukan key seperti password — jangan taruh di kode client-side, aplikasi mobile, atau repo publik.

Konfigurasi tool

Snippet siap tempel untuk tool populer. Variabel lingkungan dibaca otomatis oleh klien yang kompatibel.

Claude Code

~/Shell
export ANTHROPIC_BASE_URL=https://api.cosmosin.io
export ANTHROPIC_AUTH_TOKEN=sk-cos...
# lanjutkan seperti biasa
claude "selesaikan migrasi ini"

Cursor

~/settings.json
{
"openai.baseURL": "https://api.cosmosin.io/v1",
"openai.apiKey": "sk-cos..."
}

Codex

~/config.toml
# set key dulu: export COSMOSIN_API_KEY=sk-cos...
model = "deepseek-v4-flash"
model_provider = "cosmosin"
[model_providers.cosmosin]
name = "CosmosIn"
base_url = "https://api.cosmosin.io/v1"
env_key = "COSMOSIN_API_KEY"
wire_api = "responses"
Di Windows: jalankan Codex dari WSL, dan set COSMOSIN_API_KEY di dalam shell WSL.

OpenCode

~/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"cosmosin": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://api.cosmosin.io/v1",
"apiKey": "sk-cos..."
}
}
}
}

Cline

~/Pengaturan Cline
Provider: OpenAI Compatible
Base URL: https://api.cosmosin.io/v1
API Key: sk-cos...
Model: deepseek-v4-flash

Continue

~/config.yaml
name: CosmosIn
version: 1.0.0
schema: v1
models:
- name: CosmosIn
provider: openai
model: deepseek-v4-flash
apiBase: https://api.cosmosin.io/v1
apiKey: sk-cos...
roles:
- chat
- edit
- apply
capabilities:
- tool_use

Endpoint

MetodePathDeskripsi
POST/v1/chat/completionsKompatibel OpenAI. Streaming SSE didukung.
POST/v1/messagesKompatibel Anthropic Messages.
POST/v1/responsesKompatibel OpenAI Responses; dipakai Codex CLI.
GET/v1/modelsDaftar model yang bisa dipanggil key-mu.

Semua endpoint memakai key yang sama. Body request dan respons mengikuti format OpenAI atau Anthropic yang kompatibel — contoh untuk /v1/chat/completions:

~/request.json
{
"model": "deepseek-v4-flash",
"messages": [
{ "role": "user", "content": "Halo!" }
]
}
~/response.json
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "deepseek-v4-flash",
"choices": [
{
"message": { "role": "assistant", "content": "Halo! Ada yang bisa saya bantu?" }
}
],
"usage": { "prompt_tokens": 9, "completion_tokens": 12, "total_tokens": 21 }
}

Streaming

Set stream: true untuk menerima respons bertahap sebagai Server-Sent Events (SSE). Tiap event membawa delta JSON dalam format streaming OpenAI; koneksi memakai content-type text/event-stream dan diakhiri sentinel data: [DONE]. Kebanyakan SDK OpenAI mengekspos streaming secara native — cukup iterasi chunk-nya.

~/stream.py
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Halo!"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)

Model

Isi field model dengan nama model dari katalog — CosmosIn memakai nama model asli tanpa alias samaran. Daftar lengkap beserta harga per token selalu mutakhir di halaman harga; endpoint /v1/models mengembalikan model yang bisa dipanggil key-mu.

Model reasoning

Model ber-badge Reasoning di katalog memakai sebagian budget token untuk berpikir sebelum menjawab. Atur kedalamannya per request dengan reasoning_effort — makin tinggi makin dalam, tapi makin banyak token dan makin lambat. Di model non-reasoning parameter ini diabaikan, jadi aman untuk selalu dikirim. Level yang didukung mengikuti tiap model; cek badge Reasoning di katalog. Satu catatan: max_tokens yang terlalu rendah bisa membuat jawaban terlihat kosong karena budget-nya habis untuk berpikir — naikkan max_tokens atau hilangkan batasnya.

~/reasoning.json
{
"model": "deepseek-v4-flash",
"messages": [
{ "role": "user", "content": "Halo!" }
],
"reasoning_effort": "high"
}
EffortKedalamanCocok untuk
noneMatiJawaban langsung tanpa berpikir
lowRinganTugas sederhana yang butuh sedikit pertimbangan
mediumSedangKebanyakan tugas — default yang masuk akal
highDalamMatematika sulit, coding multi-langkah, perencanaan

Embeddings

Ubah teks menjadi vektor untuk pencarian semantik, clustering, dan retrieval-augmented generation (RAG). Kompatibel dengan OpenAI Embeddings API: kirim input, terima vektor float. Embeddings tidak streaming — flag stream ditolak.

~/embeddings.py
from openai import OpenAI
client = OpenAI(base_url="https://api.cosmosin.io/v1", api_key="sk-cos...")
res = client.embeddings.create(model="text-embedding-3-small", input="Halo!")
print(res.data[0].embedding[:5]) # [0.012, -0.034, 0.041, ...]

Rerank

Susun ulang kandidat hasil retrieval agar dokumen paling relevan berada di urutan atas. Rerank memakai cross-encoder yang membaca query dan dokumen bersama-sama — lebih akurat daripada cosine similarity untuk memilih konteks terbaik. Pola umum RAG: embed ±20 kandidat lewat /v1/embeddings, rerank ke top-5, lalu kirim ke chat completions.

  • query — teks pencarian (string)
  • documents — array kandidat dokumen untuk dinilai
  • top_n — opsional; batasi jumlah hasil
  • model — nama model rerank
~/rerank.py
import requests
res = requests.post(
"https://api.cosmosin.io/v1/rerank",
headers={"Authorization": "Bearer sk-cos..."},
json={
"model": "rerank-v3",
"query": "rerank",
"documents": docs, # 10-20 kandidat
"top_n": 5,
},
)
for r in res.json()["results"]:
print(r["index"], r["relevance_score"])

Video generation

Buat klip MP4 pendek dari teks atau gambar dengan satu endpoint. Gateway menangani tugas async di sisi server: POST mengembalikan id dengan status pending (HTTP 202), lalu poll GET /v1/videos/{id} tiap ±5 detik sampai status succeeded — respons berisi URL unduhan. Klip tersimpan sementara; unduh segera.

ModeCara pakai gambarJumlah gambar
t2vTanpa gambar — video murni dari prompt teks0
i2vGambar menjadi frame pertama; model menganimasikannya1
r2vGambar jadi referensi subjek/gaya untuk adegan baru1–3
~/t2v.sh
curl --request POST \
--url https://api.cosmosin.io/v1/videos \
--header "Authorization: Bearer sk-cos..." \
--header "Content-Type: application/json" \
--data '{
"model": "video-t2v",
"prompt": "Kota mini dari kardus hidup di malam hari",
"mode": "t2v",
"duration": 5
}'

Rate limit & kuota

Batas mengikuti paketmu. Paket langganan diatur oleh rate request per menit dan token pool; kredit PAYG tidak hangus dan hanya dibatasi saldo. Melebihi batas mengembalikan 429 rate_limited — mundur dan coba lagi setelah window reset. Batas per paket ditampilkan di halaman harga.

Kode error

Error request pertama hampir selalu 401 atau 402: key salah tempel atau saldo belum terisi. Periksa prefix sk-cos, lalu cek saldo di dashboard.

Bentuk error

Error memakai satu envelope JSON yang stabil. Switch berdasarkan field type, jangan parsing message. request_id membantu melacak kegagalan di log.

~/error.json
{
"error": {
"type": "rate_limited",
"message": "Rate limit exceeded. Please retry later.",
"request_id": "req_..."
}
}
KodeErrorArtinyaCara pulih
400invalid_requestBody tidak valid; periksa parameter request.Bandingkan body dengan contoh di atas.
401unauthorizedKey salah atau dicabut; periksa header Authorization.Buat key baru di dashboard jika key-mu dicabut.
402insufficient_creditsSaldo habis; top up di dashboard.Top up via QRIS/e-wallet/VA dan saldo langsung masuk.
404model_not_foundNama model tidak dikenal; periksa katalog.Salin nama model persis dari tabel harga.
429rate_limitedTerlalu cepat; pelankan dan lihat header Retry-After.Ikuti header Retry-After, lalu coba lagi.
503all_providers_failedSemua jalur sibuk atau down; failover otomatis sedang berjalan, coba lagi sebentar.Coba lagi dalam beberapa detik; laporkan ke Telegram jika berulang.

Model combos

Combos adalah id model virtual milikmu sendiri (bentuk combo/<nama>) yang membungkus 1–5 model di balik satu strategi fallback. Gateway mencoba model di panel satu per satu dalam request yang sama: target 1 gagal (402, 403, 500, timeout) → billing dilepas → target 2, dan seterusnya. Circuit breaker melewati model yang sedang down selama cooldown, jadi model bermasalah tidak menyedot latency. Combos privat per pemilik — key lain yang memanggil combo-mu menerima 404. Kelola dari dashboard.

~/combo.sh
curl https://api.cosmosin.io/v1/chat/completions \
-H "Authorization: Bearer sk-cos..." \
-H "Content-Type: application/json" \
-d '{
"model": "combo/free-pack",
"messages": [{"role": "user", "content": "Halo!"}]
}'

Paket & harga

Harga dalam Rupiah, transparan per token sesuai katalog — tanpa fee tersembunyi. Dua cara membayar: kredit PAYG (top-up, tidak hangus) dan paket langganan dengan token pool. Daftar model, harga, dan batas paket selalu live di halaman harga.

Dokumentasi — CosmosIn