Velokey
チュートリアル

Claude Fable 5 APIの使い方(Python編)

動作確認済みのClaude Fable 5 APIガイド — 最初の呼び出し、古いモデルと同じ書き方だと400になる5つのパラメータ、refusal処理、料金について。

Claude Fable 5 APIの使い方(Python編)

TL;DR

  • Claude Fable 5はAnthropicのMessages API経由でモデルID claude-fable-5 を指定して呼び出す — anthropic SDKをインストールし、ANTHROPIC_API_KEY を設定して messages.create リクエストを送る
  • 注意点: 古いClaude(またはGPT)モデル向けに書いたコードはFable 5では壊れる。temperaturetop_ptop_kbudget_tokensthinking: {type:"disabled"}、assistant prefillsはいずれも400を返す
  • Thinkingは常にオン — 深さはトークン予算ではなく output_config.effortlowmax)で制御する。refusal のstop reasonを処理し、fallbackを有効にする
  • Fable 5には30日のデータ保持が必要(ZDR組織はすべてのリクエストで400になる)。料金は入力/出力1Mトークンあたり$10 / $50 — Opus 4.8の約2倍
  • Anthropicアカウント、ティア、保持設定をスキップしたい場合は、[Velokey](/model/claude-fable-5)のOpenAI互換エンドポイント経由で claude-fable-5 を1つのキーで呼び出せる — 同じ$10/$50の料金で、以下のパラメータの落とし穴はなし

大半の「APIの呼び出し方」ガイドは、3行のhello-worldを見せて終わりだ。Fable 5が、習慣で渡した temperature のせいで最初の本格的なリクエストで400を返したり、コードが response.content[0] を読んでrefusalでクラッシュしたりするまではそれで十分だろう。Fable 5はAnthropicの最も高性能なモデルだが、これまでのどのモデルよりも厳しいリクエスト仕様を持つ。ここでは動作する呼び出し方を示し、その後にインテグレーションを実際に壊す5つのポイントを解説する。

How to use the Claude Fable 5 API
Claude Fable 5 API: 最初の呼び出し、400になるパラメータ、refusal処理

Claude Fable 5 APIを呼ぶには何が必要か?

有料のAnthropicアカウント、anthropic SDK、そして — ここでつまずく人が多い — 組織のデータ保持設定が少なくとも30日であることが必要だ。Fable 5はゼロデータ保持(ZDR)では利用できない。ZDR組織はペイロードがどれだけ正しくても、すべてのFable 5リクエストで 400 invalid_request_error を受け取る。

モデルIDは claude-fable-5。コンテキストウィンドウは1Mトークン(デフォルトかつ最大)で、出力は最大128Kトークン。インストールと認証:

pip install anthropic
export ANTHROPIC_API_KEY="sk-ant-..."   # never hardcode

最初の呼び出しの前に確認すること:

要件重要な理由
有料アカウント、十分なティアFable 5はOpusティアより上。モデルアクセスを確認
データ保持 ≥ 30日ZDR組織はすべてのリクエストで400
anthropic SDKのインストール公式SDKを使う。OpenAI互換シムは使わない
モデルID claude-fable-5正確な文字列 — 日付サフィックスなし

最初のClaude Fable 5 API呼び出しはどう書くか?

client.messages.create()model="claude-fable-5"messages リストで呼ぶ。thinking パラメータは渡さない — thinkingは常にオン — 推論の深さは代わりに output_config.effort で制御する。

import anthropic

client = anthropic.Anthropic()  # reads ANTHROPIC_API_KEY from the environment

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    output_config={"effort": "high"},   # low | medium | high | xhigh | max
    messages=[
        {"role": "user", "content": "Explain the tradeoffs of event sourcing in two paragraphs."}
    ],
)

# Always check stop_reason before reading content (see refusals below)
if response.stop_reason != "refusal":
    for block in response.content:
        if block.type == "text":
            print(block.text)

これがhello-worldのすべてだ。effort が品質/レイテンシの主なダイヤル — high は良いデフォルト、xhigh はコーディングやエージェント的な作業のスイートスポット、low/medium は定型タスク向けで、しばしば古いモデルの最高設定を上回る。生の思考チェーンは返されない。読みやすい推論サマリーが欲しい場合は thinking={"type": "adaptive", "display": "summarized"} を渡す。

Velokey経由でClaude Fable 5を呼ぶ方法は?(Anthropicアカウント不要)

Anthropicアカウント、利用ティア、30日保持の要件をスキップしたい場合は、[Velokey](/model/claude-fable-5)のOpenAI互換エンドポイント経由でFable 5を呼ぶ。任意のOpenAIクライアントのベースURLをVelokeyに向け、Velokeyキーに差し替え、モデルを claude-fable-5 に設定する — 標準のchat completionなので、次のセクションで述べるパラメータの落とし穴は当てはまらない。

from openai import OpenAI

client = OpenAI(
    base_url="https://api.velokey.ai/v1",
    api_key="sk-velokey-...",   # your Velokey key — not an Anthropic key
)

response = client.chat.completions.create(
    model="claude-fable-5",
    messages=[{"role": "user", "content": "Explain the tradeoffs of event sourcing in two paragraphs."}],
)
print(response.choices[0].message.content)

Anthropicに直接呼ぶのと同じ1Mあたり$10 / $50の料金で、Velokeyクレジットから請求され、使うすべてのモデルで1つのキー — Anthropic固有のセットアップは不要。動作するFable 5呼び出しへの最短ルートだ。このガイドの残りは直接Anthropic経由のルートと、それに伴うリクエストの癖を扱う。OpenAI互換エンドポイントはそれらを吸収してくれる。

古いモデルと同じようにClaude Fable 5を呼ぶと何が壊れるか?

Anthropicに直接呼ぶ場合、古いClaudeやGPTモデルで動いていた5つのリクエストパラメータがFable 5では400を返す。これが「簡単な差し替え」を半日のデバッグに変える部分だ(そして上のVelokeyパスがスキップする摩擦でもある)。

Fable 5で400になるパラメータ:

慣れているものFable 5では修正
temperaturetop_ptop_k400削除する — プロンプトで誘導する
thinking: {type:"enabled", budget_tokens: N}400省略し、output_config.effort を使う
thinking: {type:"disabled"}400thinking パラメータ自体を省略する
Assistant-turn prefill(最後のメッセージが role:"assistant"400output_config.format(structured outputs)を使う
ZDR組織からのすべてのリクエスト400≥30日のデータ保持を有効にする

*出典: Anthropic Claude Fable 5 API documentation, 2026.*

考え方としては、Fable 5はサンプリング用のノブと固定thinking予算を意図的に取り除いた。決定論のための temperature=0 も、budget_tokens の上限もない — プロンプトで振る舞いを形作り、深さは effort で抑える。動作中のOpusやGPTのインテグレーションを移行する場合は、他に手を付ける前にまずそれらのパラメータを削除すること。

Claude Fable 5のrefusalはどう扱うか?

Fable 5はセーフティ分類器を実行し、リクエストを拒否することがある — 拒否はHTTPエラーではない。成功の 200 を返し、stop_reason: "refusal" と空(またはストリーム途中の部分的)な content 配列が付く。response.content[0].text を無条件に読むコードはここでクラッシュする。

やることは2つ。まず、コンテンツを読む前に必ず stop_reason で分岐する。次に、false-positiveの拒否で単純に失敗しないようfallbackを有効にする — セキュリティツールやライフサイエンスの無害な作業でも分類器に引っかかることがあるので、正当なアプリでも重要だ:

response = client.beta.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    betas=["server-side-fallback-2026-06-01"],
    fallbacks=[{"model": "claude-opus-4-8"}],   # re-served in the same call on a decline
    output_config={"effort": "high"},
    messages=[{"role": "user", "content": "..."}],
)

if response.stop_reason == "refusal":
    # The whole chain (Fable 5 + fallback) declined — surface it, don't retry as-is
    handle_refusal(response)
else:
    print(next(b.text for b in response.content if b.type == "text"))

サーバー側の fallbacks パラメータを使うと、拒否されたリクエストは同じ呼び出し内で claude-opus-4-8 に透過的に再実行され、二重課金されないよう請求が調整される。出力前の拒否は課金されない。新しいFable 5コードではデフォルトでこれを有効にすること — オプトインなので、なければrefusalは単に止まるだけだ。

Claude Fable 5 APIの料金はいくらか?

Fable 5は入力1Mトークンあたり$10、出力1Mトークンあたり$50 — Claude Opus 4.8($5 / $25)の約2倍だ。最も難しい推論と長時間のエージェント的作業向けの価格設定であり、大量の日常呼び出し向けではない。

1リクエストあたりのコスト:

モデル10K in + 2K out相対比
claude-fable-5$0.20
claude-opus-4-8$0.10

*公開料金に基づくトークン計算。Fable 5: 10K×$10/1M + 2K×$50/1M = $0.20。*

Claude Fable 5 API pricing vs Opus 4.8
Claude Fable 5は1Mトークンあたり$10/$50 — Opus 4.8の約2倍

請求を抑えるレバーは2つ。定型作業では effortmedium または low に下げる — 低effortのFable 5はしばしば古いモデルの上限設定に匹敵する。そして繰り返し使うコンテキストには[prompt caching](/blog/claude-api-pricing-2026)を使う。キャッシュ読み取りは入力レートのおよそ10分の1で課金される。運用上もう1点: 難しいタスクの単一リクエストは数分かかることがあるので、大きな max_tokens ではクライアントのタイムアウトを避けるためにストリームする:

with client.messages.stream(
    model="claude-fable-5",
    max_tokens=64000,
    output_config={"effort": "xhigh"},
    messages=[{"role": "user", "content": "..."}],
) as stream:
    message = stream.get_final_message()

Anthropicアカウントと30日保持設定を直接管理したくない場合は、[Velokey](/model/claude-fable-5)のような統合ゲートウェイが claude-fable-5 を1つのOpenAI互換エンドポイントで他モデルと並べて公開する — 他のすべてに使うのと同じキーで呼べる。Fable 5が他のフロンティアモデルと比べて価格面でどう位置するかは、Claude API料金ガイドGPT-5.6ティアの内訳GLM-5.2 vs GPT-5.5 vs Opus 4.8比較を参照。

よくある質問

Claude Fable 5 APIのモデルIDは何か?

モデルIDは claude-fable-5 — 正確な文字列で、日付サフィックスはなし。Anthropicの広くリリースされた中で最も高性能なモデルで、1Mトークンのコンテキストウィンドウ(デフォルトかつ最大)と最大128Kの出力トークンを持つ。Messages API(client.messages.create)経由で公式 anthropic SDKを使って呼ぶ。

Claude Fable 5のリクエストが400を返すのはなぜか?

よくある原因はFable 5が削除したパラメータ: temperaturetop_ptop_kthinking: {budget_tokens}thinking: {type:"disabled"}、またはassistant-turn prefill — いずれも400を返す。別の原因はゼロデータ保持の組織で、すべてのFable 5リクエストが400になる。サンプリング/thinkingパラメータを削除し、≥30日の保持を確認すること。

Claude Fable 5でthinkingの深さを制御するには?

output_config.effort を使う — lowmediumhighxhigh、または max。Thinkingは常にオンで、無効化や固定の budget_tokens 付与はできない(どちらも400)。high は堅実なデフォルト。xhigh はコーディングとエージェント的タスク向け。推論サマリーを見るには thinking={"type":"adaptive","display":"summarized"} を追加する。

Claude Fable 5 APIの料金はいくらか?

入力1Mトークンあたり$10、出力1Mトークンあたり$50 — Claude Opus 4.8の約2倍。10K入力/2K出力のリクエストは約$0.20。effort を下げ、prompt caching(キャッシュ読み取りは入力の約10%で課金)が大量利用時のコスト削減の主な手段。

Claude Fable 5のrefusalはどう扱うか?

content を読む前に response.stop_reason を確認する — refusalはHTTP 200で stop_reason: "refusal" と空または部分的なcontentを返す。サーバー側の fallbacks パラメータ(betas=["server-side-fallback-2026-06-01"])を有効にし、拒否時に同じ呼び出し内で claude-opus-4-8 に再配信されるようにして失敗を防ぐ。

AnthropicアカウントなしでClaude Fable 5 APIを使えるか?

直接は不可 — Fable 5には有料のAnthropicアカウントと30日のデータ保持が必要。上流のAnthropicアクセスを処理する統合APIゲートウェイ経由なら到達できるので、アカウントや保持設定を自分で管理せずに、1つのOpenAI互換エンドポイントで claude-fable-5 を呼べる。


Anthropicアカウントを管理せずにClaude Fable 5を使いたい? [Velokey APIキーを取得](/model/claude-fable-5)し、1つのOpenAI互換エンドポイント経由で claude-fable-5 を呼ぼう — 同じキーで、使う他のすべてのモデルと一緒に。


*最終更新: 2026年7月13日。APIの詳細は執筆時点のAnthropic Claude Fable 5ドキュメントに基づく。料金、パラメータ、モデルの振る舞いはAnthropicが設定し変更される可能性がある — 本番投入前に公式ドキュメントで確認すること。*