Mulai cepat
BeastFarmerAI adalah gerbang API yang bicara dua bahasa: format OpenAI dan format Anthropic.
Kamu tidak perlu library khusus — pakai SDK yang sudah ada, cukup ganti baseURL dan apiKey.
https://beastfarmer.xyz/v1kimi-k3bf-xxxxxxxxxxxxxxxxxxxxxxxxAutentikasi
Kirim API key lewat salah satu header berikut — keduanya diterima, jadi SDK mana pun bisa langsung jalan:
Authorization: Bearer bf-xxxxxxxxxxxx # gaya OpenAI x-api-key: bf-xxxxxxxxxxxx # gaya Anthropic
Format OpenAI
POST /v1/chat/completions
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "bf-xxxxxxxxxxxx",
baseURL: "https://beastfarmer.xyz/v1",
});
const res = await client.chat.completions.create({
model: "kimi-k3",
messages: [
{ role: "system", content: "Kamu asisten yang membantu." },
{ role: "user", content: "Jelaskan quantum computing singkat." },
],
temperature: 0.7,
max_tokens: 1024,
});
console.log(res.choices[0].message.content);GET /v1/models
Mengembalikan daftar model yang tersedia dalam format standar OpenAI.
Format Anthropic
POST /v1/messages
Perhatikan: SDK Anthropic menambahkan /v1 sendiri, jadi baseURL-nya tanpa /v1.
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: "bf-xxxxxxxxxxxx",
baseURL: "https://beastfarmer.xyz",
});
const msg = await client.messages.create({
model: "kimi-k3",
max_tokens: 1024,
system: "Kamu asisten yang membantu.",
messages: [{ role: "user", content: "Halo!" }],
});
console.log(msg.content[0].text);from anthropic import Anthropic
client = Anthropic(
api_key="bf-xxxxxxxxxxxx",
base_url="https://beastfarmer.xyz",
)
msg = client.messages.create(
model="kimi-k3",
max_tokens=1024,
messages=[{"role": "user", "content": "Halo!"}],
)
print(msg.content[0].text)Yang didukung: system, max_tokens, temperature, top_p,
stop_sequences, stream, tools, tool_choice,
serta blok tool_use dan tool_result.
Streaming
Tambahkan stream: true. Kedua format mengirim Server-Sent Events sesuai spesifikasi masing-masing —
format OpenAI mengirim data: chunk, format Anthropic mengirim rangkaian
message_start → content_block_delta → message_stop.
stream = client.chat.completions.create(
model="kimi-k3",
messages=[{"role": "user", "content": "Tulis puisi."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Model
Saat ini hanya Kimi K3 yang dijual. Nama-nama ini semua mengarah ke model yang sama:
kimi-k3— disarankanmoonshotai/kimi-k3-freebeastfarmer-k3
Nama model lain (termasuk nama model bawaan SDK OpenAI/Anthropic) tetap dilayani oleh Kimi K3, supaya kode lama tidak perlu diubah sama sekali.
Kuota & limit
Setiap request mengurangi kuota key sebesar prompt_tokens + completion_tokens.
Sisa kuota dikirim di header respons:
X-BeastFarmer-Tokens-Used: 152340 X-BeastFarmer-Tokens-Remaining: 19847660
Tidak ada batas request per menit dari sisi kami. Kalau kuota habis, request dibalas 429
dan kamu tinggal beli paket lagi — kuota key baru berdiri sendiri.
Kode error
| Kode | Arti | Solusi |
|---|---|---|
401 | Key tidak dikirim atau tidak dikenal | Periksa header Authorization |
403 | Key dinonaktifkan, kedaluwarsa, atau akun diblokir | Cek dashboard / hubungi admin |
429 | Kuota token habis | Beli paket baru |
502 | Provider upstream menolak request | Coba lagi; isi pesan error diteruskan apa adanya |
503 | Seluruh pool key sedang sibuk | Tunggu beberapa detik lalu ulangi |
Butuh bantuan? Buka dashboard atau hubungi admin lewat Saweria.