Anthropic meluncurkan Claude Fable 5 pada 9 Juni 2026, dan jika Anda menulis kode untuk mencari nafkah, API Claude Fable 5 adalah bagian yang Anda pedulikan. Ia berjalan di API Pesan yang sama yang sudah Anda kenal, sehingga string model adalah satu-satunya hal yang benar-benar berubah: claude-fable-5. Panduan ini akan membahas setiap panggilan yang Anda perlukan untuk mendapatkan kode yang berfungsi dengan respons nyata, mulai dari permintaan curl satu baris hingga streaming, penggunaan alat, penanganan kesalahan, dan perhitungan biaya. Jika Anda pernah menggunakan Claude sebelumnya, bentuknya akan terasa akrab. Jika Anda bermigrasi dari model yang lebih lama, sebagian besar perubahan hanya berupa penggantian string, sama seperti pada Claude Opus 4.8 API.
TL;DR (Intinya)
Dapatkan kunci API dari Anthropic Console, atur sebagai ANTHROPIC_API_KEY, lalu POST ke Messages API dengan model: "claude-fable-5", nilai max_tokens, dan array messages. Gunakan SDK resmi Anthropic untuk Python atau TypeScript, atau HTTP mentah. Streaming output yang panjang agar Anda tidak mengalami batas waktu permintaan. Harga adalah $10 per juta token input dan $50 per juta token output.

Sebelum Anda Memulai
Anda memerlukan empat hal sebelum permintaan pertama Anda:
- Akun Anthropic. Daftar di console.anthropic.com. Konsol adalah tempat Anda mengelola kunci, penggunaan, dan tagihan.
- Kunci API. Buat satu di Konsol di bawah API Keys. Salin sekali; Anda tidak akan melihatnya lagi. Perlakukan seperti kata sandi.
- Penagihan atau paket Enterprise. Fable 5 tersedia di API Claude standar dan sepenuhnya tersedia pada paket Enterprise berbasis konsumsi. Tambahkan metode pembayaran atau konfirmasikan paket Anda mencakupnya sebelum Anda mengirim lalu lintas. Jika Anda masih memutuskan apakah Fable 5 sesuai dengan kasus penggunaan Anda, ikhtisar tentang Claude Fable 5 mencakup kekuatan model dalam istilah sederhana.
- SDK (opsional tetapi direkomendasikan). Instal SDK resmi Anthropic untuk bahasa Anda. Anda juga dapat memanggil endpoint HTTP mentah dengan curl atau klien HTTP apa pun jika Anda mau.

Atur kunci sebagai variabel lingkungan agar tidak pernah masuk ke kode sumber Anda:
export ANTHROPIC_API_KEY="sk-ant-..."
Kedua SDK membaca ANTHROPIC_API_KEY dari lingkungan secara otomatis, sehingga Anda jarang meneruskannya dalam kode. Jauhkan kunci dari git. Jika kunci bocor, segera rotasi di Konsol.
Satu perilaku yang perlu diketahui di awal: Fable 5 dilengkapi dengan perlindungan yang mengarahkan sebagian kecil kueri sensitif (keamanan siber, biologi dan kimia, serta upaya distilasi model) ke Claude Opus 4.8 sebagai gantinya. Ini terjadi kurang dari 5% sesi. Anda tidak perlu mengkonfigurasi apa pun untuk itu, tetapi ini menjelaskan respons sesekali yang datang dengan label model yang berbeda. Lebih lanjut tentang ini di bagian penanganan kesalahan.
Panggilan API Claude Fable 5 Pertama Anda
Mulai dengan curl agar Anda dapat melihat permintaan dan respons mentah tanpa ada halangan. Endpoint adalah POST https://api.anthropic.com/v1/messages, didokumentasikan dalam referensi API Pesan Anthropic, dan memerlukan tiga header ditambah body JSON.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-fable-5","max_tokens":1024,"messages":[{"role":"user","content":"Summarize what makes a good REST API in 3 bullet points."}]}'
Tiga header penting di sini. x-api-key membawa kunci Anda. anthropic-version menetapkan versi API (2023-06-01 adalah nilai stabil saat ini). content-type memberi tahu server bahwa Anda mengirim JSON. Body memiliki tiga bidang wajib: model, max_tokens, dan messages. Itulah seluruh kontrak.
Respons kembali sebagai objek JSON. Bagian yang Anda pedulikan adalah content, yang merupakan daftar blok:
{
"id": "msg_01ABC...",
"type": "message",
"role": "assistant",
"model": "claude-fable-5",
"content": [
{ "type": "text", "text": "- Predictable, resource-oriented URLs..." }
],
"stop_reason": "end_turn",
"usage": { "input_tokens": 18, "output_tokens": 96 }
}
content adalah daftar, bukan string, karena satu respons dapat mencampur blok teks, blok penggunaan alat, dan blok pemikiran. Selalu ulangi daftar dan periksa type setiap blok sebelum Anda membaca text. stop_reason memberi tahu Anda mengapa model berhenti (end_turn adalah penyelesaian yang bersih), dan usage memberi Anda jumlah token yang akan Anda gunakan untuk perhitungan biaya nanti.
Memanggil Fable 5 dari Python
SDK Python resmi Anthropic menghilangkan header dan boilerplate JSON. Instal dulu:
pip install anthropic
Berikut adalah panggilan dasar. Klien membaca kunci Anda dari lingkungan, jadi Anda tidak perlu meneruskannya:
import anthropic
client = anthropic.Anthropic() # membaca ANTHROPIC_API_KEY dari env
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Summarize what makes a good REST API."}],
)
for block in response.content:
if block.type == "text":
print(block.text)
Pola ini mencerminkan panggilan curl. Anda meneruskan model, max_tokens, dan messages, dan Anda mendapatkan respons yang content-nya adalah daftar blok. Loop ini memeriksa block.type == "text" agar Anda tidak pernah tersandung blok non-teks.
Menambahkan prompt sistem
Prompt sistem menetapkan peran model dan aturan dasar untuk seluruh percakapan. Teruskan sebagai bidang system, terpisah dari messages:
response = client.messages.create(
model="claude-fable-5",
max_tokens=2048,
system="You are a senior backend engineer. Be concise and use code examples.",
messages=[{"role": "user", "content": "Write a Flask route that validates a JSON body."}],
)
for block in response.content:
if block.type == "text":
print(block.text)
Prompt sistem adalah tempat yang tepat untuk persona, aturan format output, dan batasan yang ingin Anda pertahankan di setiap giliran. Pertahankan tetap stabil, karena mengubahnya di setiap permintaan akan mengalahkan cache prompt jika Anda menambahkannya nanti.
Streaming output panjang
Untuk apa pun yang menghasilkan jawaban panjang, lakukan streaming. Streaming mengirimkan token saat token tersebut dihasilkan, sehingga Anda langsung melihat progres dan menghindari batas waktu permintaan yang memengaruhi respons non-streaming yang besar. Pekerjaan berjangka panjang Fable 5 menjadikannya pilihan default untuk beban kerja nyata:
with client.messages.stream(
model="claude-fable-5",
max_tokens=4096,
messages=[{"role": "user", "content": "Explain idempotency keys for payment APIs."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print(f"\n\nTokens: {final.usage.output_tokens}")
stream.text_stream menghasilkan potongan teks saat tiba. flush=True penting agar setiap potongan dicetak segera daripada di-buffer. Saat streaming selesai, stream.get_final_message() menyerahkan pesan rakitan lengkap kepada Anda, termasuk angka usage akhir, sehingga Anda mendapatkan UX streaming dan objek lengkap tanpa permintaan kedua.
Memanggil Fable 5 dari TypeScript / Node
SDK Node mengikuti bentuk yang sama. Instal:
npm install @anthropic-ai/sdk
Lalu lakukan panggilan. Klien membaca ANTHROPIC_API_KEY dari lingkungan, sama seperti Python:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic(); // membaca ANTHROPIC_API_KEY
const msg = await client.messages.create({
model: "claude-fable-5",
max_tokens: 1024,
messages: [{ role: "user", content: "List 3 common API security mistakes." }],
});
console.log(msg.content);
msg.content adalah daftar blok yang sama yang Anda lihat di Python dan curl. Untuk mengekstrak hanya teks, filter berdasarkan tipe blok:
const text = msg.content
.filter((block) => block.type === "text")
.map((block) => block.text)
.join("");
console.log(text);
Streaming berfungsi sama seperti Python. Gunakan client.messages.stream({...}) dan iterasi peristiwa, atau tunggu finalMessage() untuk hasil yang dirakit. Jika Anda menghubungkan ini ke obrolan frontend, lakukan streaming dari rute server dan teruskan potongan-potongan ke browser. Kebiasaan pengujian yang sama berlaku baik Anda membangun di Node atau Python, dan alat seperti Apidog membuat kontrak mudah diverifikasi sebelum Anda menulis kode klien apa pun, yang merupakan alur kerja yang sama yang dibahas dalam menguji API ChatGPT dengan Apidog.
Penggunaan Alat (Pemanggilan Fungsi) dengan Fable 5
Penggunaan alat memungkinkan Fable 5 memanggil fungsi yang Anda definisikan. Anda menjelaskan alat dengan skema JSON, model memutuskan kapan harus memanggilnya, dan Anda menjalankan fungsi sebenarnya serta memberikan hasilnya kembali. Fable 5 kuat dalam penggunaan alat, itulah sebabnya ia cocok dengan loop agen.
Definisikan alat dengan nama, deskripsi, dan input_schema:
tools = [
{
"name": "get_order_status",
"description": "Look up the status of a customer order by ID.",
"input_schema": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
}
]
Teruskan tools ke permintaan dengan cara yang sama Anda meneruskan messages:
messages = [{"role": "user", "content": "What's the status of order A1855?"}]
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
tools=tools,
messages=messages,
)
Ketika model ingin menggunakan alat, respons akan kembali dengan stop_reason == "tool_use" dan blok tool_use yang membawa nama alat serta input yang dipilihnya. Loopnya sederhana: tambahkan respons asisten, jalankan alat, lalu kirim kembali hasilnya sebagai blok tool_result dalam giliran pengguna baru:
if response.stop_reason == "tool_use":
tool_use = next(b for b in response.content if b.type == "tool_use")
# Jalankan fungsi Anda yang sebenarnya dengan input pilihan model
result = lookup_order(tool_use.input["order_id"]) # kode Anda
messages.append({"role": "assistant", "content": response.content})
messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": tool_use.id,
"content": result,
}],
})
# Kirim kembali hasilnya; model sekarang menjawab menggunakannya
followup = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
tools=tools,
messages=messages,
)
Detail utamanya adalah tool_use_id: blok tool_result harus mereferensikan id yang tepat dari blok tool_use agar model tahu panggilan mana yang dijawab oleh hasil Anda. Untuk agen multi-langkah, Anda membungkus ini dalam loop yang terus berjalan sampai stop_reason adalah end_turn. SDK Python juga menyertakan tool runner yang menangani loop untuk Anda, tetapi versi manual di atas menunjukkan apa yang terjadi di balik layar dan memberi Anda tempat untuk menambahkan gerbang persetujuan atau logging.
Pemikiran dan Upaya Adaptif
Fable 5 mendukung pemikiran adaptif, di mana model memutuskan sendiri kapan dan seberapa dalam untuk bernalar sebelum menjawab. Ini opsional. Aktifkan dengan meneruskan thinking, dan sesuaikan kedalaman keseluruhan serta pengeluaran token dengan output_config:
response = client.messages.create(
model="claude-fable-5",
max_tokens=4096,
thinking={"type": "adaptive"},
output_config={"effort": "high"}, # low | medium | high
messages=[{"role": "user", "content": "Design a retry strategy for a flaky webhook receiver."}],
)
effort mengontrol seberapa banyak model berpikir dan bekerja: upaya yang lebih rendah berarti respons yang lebih ringkas dan cepat, upaya yang lebih tinggi berarti penalaran yang lebih menyeluruh dengan biaya token yang lebih tinggi. Biarkan keduanya nonaktif untuk pencarian sederhana dan jawaban singkat, di mana penalaran ekstra tidak sebanding dengan token. Gunakan keduanya untuk masalah yang sulit dan multi-langkah, jenis perencanaan jangka panjang yang dirancang untuk Fable 5. Mulai dengan sederhana; Anda dapat menambahkan thinking nanti setelah Anda tahu bahwa sebuah rute membutuhkannya.
Menangani Kesalahan dan Cadangan Pengaman
Integrasi nyata harus menangani kegagalan dengan rapi. SDK mengeluarkan pengecualian yang diketik, jadi tangkap kelas spesifik daripada mencocokkan string kesalahan. Tiga yang paling sering Anda lihat memetikan ke HTTP 401, 429, dan 400:
import anthropic
client = anthropic.Anthropic()
try:
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Explain CORS preflight requests."}],
)
except anthropic.AuthenticationError:
# 401: kunci API salah atau hilang. Periksa ANTHROPIC_API_KEY.
print("Kunci API tidak valid. Rotasi di Konsol dan ekspor ulang.")
except anthropic.RateLimitError as e:
# 429: terlalu banyak permintaan. Mundur dan coba lagi.
retry_after = e.response.headers.get("retry-after", "60")
print(f"Batas laju terlampaui. Coba lagi setelah {retry_after} detik.")
except anthropic.BadRequestError as e:
# 400: permintaan salah bentuk (parameter buruk, pesan kosong, bentuk salah).
print(f"Permintaan buruk: {e.message}")
Berikut adalah arti masing-masing dan cara memperbaikinya:
- 401 (
AuthenticationError): kunci hilang, salah format, atau dicabut. KonfirmasiANTHROPIC_API_KEYdiatur di lingkungan tempat kode Anda berjalan, dan bahwa kunci tersebut masih aktif di Konsol. - 429 (
RateLimitError): Anda melampaui batas permintaan per menit atau token per menit Anda. SDK sudah mencoba ulang kesalahan 429 dan 5xx dengan exponential backoff (dua percobaan ulang secara default). Baca headerretry-afterjika Anda menambahkan backoff kustom. - 400 (
BadRequestError): permintaan salah format. Penyebab umum adalah arraymessageskosong,max_tokensyang hilang, atau pesan yang tidak bergantian peran dengan benar. Pesan kesalahan biasanya menyebutkan bidang tersebut.
Sekarang tentang cadangan pengaman. Fable 5 mengarahkan sejumlah kecil kueri sensitif (keamanan siber, biologi dan kimia, serta upaya distilasi model) ke Claude Opus 4.8 alih-alih menjawab secara langsung. Ini terjadi kurang dari 5% sesi. Ini bukan kesalahan, dan permintaan Anda tetap berhasil, tetapi respons mungkin kembali dengan label model yang berbeda. Jika Anda mencatat atau memastikan response.model, jangan gagal secara keras ketika bukan claude-fable-5; permintaan ditangani, hanya oleh model yang berbeda di balik layar. Jika aplikasi Anda secara ketat perlu tahu model mana yang menjawab, baca response.model dari objek yang dikembalikan daripada mengasumsikan itu cocok dengan apa yang Anda kirim.
Memperkirakan Biaya per Permintaan
Harga adalah $10 per juta token input dan $50 per juta token output. Setiap respons membawa jumlah persis dalam usage, sehingga Anda dapat menghitung biaya per permintaan secara tepat daripada menebak:
response = client.messages.create(
model="claude-fable-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a SQL query to find duplicate emails."}],
)
input_tokens = response.usage.input_tokens
output_tokens = response.usage.output_tokens
input_cost = input_tokens / 1_000_000 * 10
output_cost = output_tokens / 1_000_000 * 50
total = input_cost + output_cost
print(f"Input: {input_tokens} token = ${input_cost:.6f}")
print(f"Output: {output_tokens} token = ${output_cost:.6f}")
print(f"Total: ${total:.6f}")
Token output berharga lima kali lipat dari token input, jadi tuas termurah yang Anda miliki adalah menjaga respons tetap ringkas. Permintaan dengan 2.000 token input dan 500 token output berharga 2000 / 1M * $10 + 500 / 1M * $50, yaitu $0.02 + $0.025 = $0.045. Kalikan dengan volume permintaan Anda untuk menentukan anggaran. Jika biaya output mendominasi tagihan Anda, batasi max_tokens dan mintalah jawaban yang ringkas dalam prompt sistem. Harga output adalah perhitungan yang sama dengan yang akan Anda lakukan untuk model harga Claude Opus 4.8, hanya dengan angka Fable 5.
Uji dan Debug API Claude Fable 5 dengan Apidog
Sebelum Anda menulis kode klien, ada baiknya mengirim beberapa permintaan secara manual dan melihat dengan tepat apa yang kembali. Apidog adalah klien API yang dibangun untuk ini: Anda mengirim permintaan nyata ke https://api.anthropic.com/v1/messages, memeriksa respons yang di-streaming, dan menyimpan permintaan sehingga seluruh tim Anda bekerja dari definisi yang sama. Berikut adalah jalur yang jelas dari nol hingga permintaan yang berfungsi dan tersimpan.

- Buat permintaan. Di Apidog, buat permintaan HTTP baru, atur metode ke
POST, dan tempel URLhttps://api.anthropic.com/v1/messages. Ini adalah endpoint yang sama yang digunakan setiap contoh dalam panduan ini. - Simpan kunci Anda sebagai variabel lingkungan. Buat variabel lingkungan Apidog, beri nama seperti
anthropic_api_key, dan tempel kunci Anda sebagai nilai rahasia. Menyimpan kunci di lingkungan berarti kunci tersebut tidak akan masuk ke permintaan yang disimpan dan tidak akan masuk ke ekspor apa pun yang Anda bagikan. - Atur header. Tambahkan
x-api-keydengan nilai{{anthropic_api_key}}, laluanthropic-version: 2023-06-01dancontent-type: application/json. Jika Anda lebih suka variabel rahasia gaya Bearer, simpan token dengan cara yang sama dan referensikan dengan sintaksis{{...}}sehingga nilai mentah tidak pernah muncul dalam permintaan. - Tambahkan body JSON. Masukkan payload minimal:
{"model": "claude-fable-5", "max_tokens": 1024, "messages": [{"role": "user", "content": "Explain idempotency keys for payment APIs."}]}. Kirim dan baca responsnya. Anda akan melihat blokcontent,stop_reason, danusagelangsung di panel respons. - Lihat respons yang di-streaming. Atur
"stream": truedi body dan kirim lagi. Apidog merender peristiwa yang dikirim server saat tiba, sehingga Anda dapat melihat token mengalir masuk dan mengkonfirmasi logika streaming Anda cocok dengan apa yang sebenarnya dikirim API sebelum Anda membangunnya ke dalam aplikasi. - Simpan dan hasilkan kode. Simpan permintaan ke dalam koleksi sehingga rekan tim dapat menggunakannya kembali, lalu gunakan generasi kode Apidog untuk mengekspor cuplikan yang berfungsi dalam Python, JavaScript, curl, atau bahasa lain. Itu memberi Anda titik awal yang teruji alih-alih file kosong.
Alur ini adalah cara tercepat untuk mempelajari bentuk respons API yang tepat dan untuk men-debug permintaan yang salah berperilaku di aplikasi Anda, karena Anda dapat membandingkan permintaan kode Anda dengan permintaan yang sudah diketahui baik secara berdampingan. Ketika Anda siap untuk mengaturnya, Unduh Apidog dan mulai dengan body minimal di atas.
button
