Dokumentasi MeowAPI
MeowAPI adalah gateway API AI multi-provider yang kompatibel penuh dengan format OpenAI. Kalau kode kamu sudah pakai SDK OpenAI, cukup ganti base_url dan api_key — selesai. Bayar sesuai pemakaian pakai kredit.
Base URL
https://meowapi.me/v1Sertakan /v1 di base URL, dan jangan mengulangnya di nama endpoint — SDK OpenAI sudah menambahkan /chat/completions sendiri. Kalau salah, MeowAPI membalas 404 unknown_endpoint berisi penjelasannya.
Autentikasi
Semua request butuh API key kamu di header Authorization sebagai Bearer token. Buat & kelola key di halaman API Keys. Key hanya ditampilkan sekali saat dibuat — simpan baik-baik.
Authorization: Bearer mk-liv...xxxxJangan pernah taruh API key di kode frontend/publik. Pakai hanya di server.
Quick start
Kirim request chat pertama kamu. Contoh di bawah pakai model onith-1.5-35b.
curl https://meowapi.me/v1/chat/completions \
-H "Authorization: Bearer $MEOWAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "onith-1.5-35b",
"messages": [
{ "role": "user", "content": "Halo, apa kabar?" }
]
}'Chat completions
Endpoint POST /chat/completions. Parameter mengikuti spesifikasi OpenAI: model, messages, temperature, top_p, max_tokens, dan stream.
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"model": "onith-1.5-35b",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Halo! Baik, ..." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 24,
"total_tokens": 36,
"meowapi": {
"upstream_prompt_tokens": 6942,
"prompt_overhead_tokens": 6930,
"cached_tokens": 0,
"cache_write_tokens": 0,
"cost_idr": 1
}
}
}Streaming
Set stream: true untuk menerima token secara bertahap via Server-Sent Events (SSE). Setiap chunk diawali data: dan diakhiri data: [DONE].
stream = client.chat.completions.create(
model="onith-1.5-35b",
messages=[{"role": "user", "content": "Tulis puisi singkat."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)Sebagian model mengirim jejak penalaran di delta.reasoning_content sebelum jawaban akhirnya masuk ke delta.content. Field itu opsional — abaikan saja kalau kamu hanya butuh jawaban. Token penalaran dihitung sebagai token output oleh penyedia, jadi ikut tertagih seperti token jawaban.
for chunk in stream:
d = chunk.choices[0].delta
think = getattr(d, "reasoning_content", None)
if think:
print(think, end="", flush=True) # proses berpikir
if d.content:
print(d.content, end="", flush=True) # jawabanGenerate gambar
Model gambar dipanggil lewat endpoint yang sama, POST /v1/chat/completions — bukan /v1/images/generations, yang tidak tersedia di MeowAPI. Kirim prompt seperti pesan chat biasa; hasilnya kembali sebagai tautan gambar Markdown di choices[0].message.content.
resp = client.chat.completions.create(
model="grok-imagine-image-2.0",
messages=[{"role": "user", "content": "seekor kucing oranye di jendela, cahaya sore"}],
)
content = resp.choices[0].message.content
# → ""
import re
urls = re.findall(r"!\[[^\]]*\]\((https?://[^)\s]+)\)", content)
print(urls[0])
# Jumlah gambar yang ditagih ada di blok usage non-standar:
print(resp.usage.model_extra["meowapi"]["image_count"])Tiga hal yang berbeda dari model chat:
stream: trueditolak dengan400 stream_not_supported. Tagihan dihitung dari jumlah gambar pada balasan, dan itu hanya bisa dipastikan pada respons utuh.- Tagihannya per gambar, bukan per token — token teks tidak ditagih. Kalau model menolak dan tidak mengembalikan gambar sama sekali, biayanya jatuh ke harga token biasa.
- Saldo minimum untuk memulai request adalah harga satu gambar model itu, bukan Rp 100 seperti model chat.
Ukuran dan rasio gambar tidak bisa diatur lewat parameter: endpoint chat completions tidak punya field untuk itu, dan menuliskannya di dalam prompt terbukti tidak dipatuhi model. Untuk mencoba tanpa menulis kode, pakai Generate Image di dashboard.
Model tersedia
Ambil daftar model lewat GET /models, atau lihat di dashboard. Berikut model aktif saat ini:
Beberapa model bertanda Gratis — model itu tidak memotong kredit sama sekali, dipakai untuk uji coba dan promo. Status gratis bisa dicabut kapan saja tanpa pemberitahuan, jadi periksa tabel ini lagi sebelum menyandarkan pemakaian besar padanya.
onith-1.5-35bqwen-3.8-27b-uncensoredgrok-imagine-image-2.0Model xAI untuk generate gambar. Ditagih per gambar, tidak mendukung stream.
kimi-k3Model terbaru dari Moonshot AI
qwen3.8-27bModel gratis dan cukup untuk eksperimen
qwen3.8-flashModel gratis dan cukup untuk coding harian.
Kode error
Error mengikuti format OpenAI: { "error": { "message", "type", "code" } }.
401missing_api_keyHeader Authorization tidak dikirim401invalid_api_keyKey salah bentuk atau tidak dikenal401api_key_revokedKey sudah di-revoke — buat key baru402insufficient_creditsKredit habis — top-up untuk lanjut403account_suspendedAkun ditangguhkan400invalid_jsonBody bukan JSON yang valid404model_not_foundModel tidak ada / nonaktif404unknown_endpointPath /v1 salah — cek base URL429rate_limit_exceededTerlalu banyak request, lihat Retry-After429rate_limitedUpstream sedang sibuk503model_unconfiguredModel belum punya kredensial upstream502upstream_errorProvider upstream menolak request502upstream_unreachableProvider upstream tidak bisa dihubungiHarga & billing
Kamu ditagih per token sesuai tarif tiap model (input & output dihitung terpisah). Saldo dipotong otomatis tiap request berhasil. Kalau saldo habis, request dibalas 402 insufficient_credits sampai kamu top-up. Cek pemakaian real-time di halaman Usage.
usage.prompt_tokens adalah token yang benar-benar ditagih — jadi prompt_tokens × tarif selalu cocok dengan riwayat transaksimu.
Sebagian provider upstream menyuntikkan prompt tersembunyi milik mereka sendiri (system prompt tooling, direktif) yang muncul di hitungan token mereka padahal bukan kamu yang mengirim. Token itu tidak kami tagih. Blok tambahan usage.meowapi menampilkan angka aslinya secara terbuka: upstream_prompt_tokens (klaim provider), prompt_overhead_tokens (yang dipotong), cached_tokens, cache_write_tokens, dan cost_idr. Blok itu di luar spesifikasi OpenAI, jadi SDK resmi mengabaikannya dengan aman.
Siap mulai?
Buat API key & top-up kredit dalam semenit.