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.

Base URLhttps://beastfarmer.xyz/v1

Modelkimi-k3

Format keybf-xxxxxxxxxxxxxxxxxxxxxxxx

Autentikasi

Kirim API key lewat salah satu header berikut — keduanya diterima, jadi SDK mana pun bisa langsung jalan:

Header
Authorization: Bearer bf-xxxxxxxxxxxx     # gaya OpenAI
x-api-key: bf-xxxxxxxxxxxx                # gaya Anthropic

Format OpenAI

POST /v1/chat/completions

Node.js
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.

Node.js
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);
Python
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_startcontent_block_deltamessage_stop.

Python — OpenAI SDK
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 — disarankan
  • moonshotai/kimi-k3-free
  • beastfarmer-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:

Response header
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

KodeArtiSolusi
401Key tidak dikirim atau tidak dikenalPeriksa header Authorization
403Key dinonaktifkan, kedaluwarsa, atau akun diblokirCek dashboard / hubungi admin
429Kuota token habisBeli paket baru
502Provider upstream menolak requestCoba lagi; isi pesan error diteruskan apa adanya
503Seluruh pool key sedang sibukTunggu beberapa detik lalu ulangi

Butuh bantuan? Buka dashboard atau hubungi admin lewat Saweria.