MeowAPI/ Docs

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/v1

Sertakan /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...xxxx

Jangan 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)  # jawaban

Generate 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
# → "![image](https://.../img_pcaazUYu1vJyfpFYRisPFZM-hIHyJFFO)"

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: true ditolak dengan 400 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-35b

GratisGratis
qwen-3.8-27b-uncensored

GratisGratis
grok-imagine-image-2.0

Model xAI untuk generate gambar. Ditagih per gambar, tidak mendukung stream.

GratisGratis
kimi-k3

Model terbaru dari Moonshot AI

Rp 5.520Rp 10.235
qwen3.8-27b

Model gratis dan cukup untuk eksperimen

GratisGratis
qwen3.8-flash

Model gratis dan cukup untuk coding harian.

GratisGratis

Kode error

Error mengikuti format OpenAI: { "error": { "message", "type", "code" } }.

401missing_api_keyHeader Authorization tidak dikirim
401invalid_api_keyKey salah bentuk atau tidak dikenal
401api_key_revokedKey sudah di-revoke — buat key baru
402insufficient_creditsKredit habis — top-up untuk lanjut
403account_suspendedAkun ditangguhkan
400invalid_jsonBody bukan JSON yang valid
404model_not_foundModel tidak ada / nonaktif
404unknown_endpointPath /v1 salah — cek base URL
429rate_limit_exceededTerlalu banyak request, lihat Retry-After
429rate_limitedUpstream sedang sibuk
503model_unconfiguredModel belum punya kredensial upstream
502upstream_errorProvider upstream menolak request
502upstream_unreachableProvider upstream tidak bisa dihubungi

Harga & 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.

Dapatkan API Key