【AI】Claude APIでトークン数を事前にカウントする方法

当ページのリンクには広告が含まれています。
いずみ

こんな悩みを解決できる記事を書きました!

僕は現役フリーランスエンジニア(歴年)で、資格は個保有しています。

Claude APIに送るリクエストのトークン数を、実行前に把握したい」とお考えではありませんか?

Claude APIはリクエストの入力トークン数に応じて課金されます。

送信前にトークン数が分かれば、コストの見積もりやコンテキストウィンドウの上限管理がやりやすくなります。

いずみ

Anthropic公式のトークンカウント用エンドポイントを使えば、推論を走らせずにトークン数だけを取得できます。

数行のコードで済むので、サクッと解説します。

ということで、本記事ではClaude APIでトークン数を事前にカウントする方法を解説します。

いずみ

すぐ読み終わるので、ぜひ最後まで読んでくださいませ。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
執筆者/監修者
  • フリーランスエンジニア(保有資格個、企業と直接契約
  • ブログ・アフィリエイト歴7年(2018年〜)
  • ブランドせどりで月利50万円⇨脱サラ
  • 投資(仮想通貨・FX)歴7年(2018年〜)
  • X(旧Twitter)フォロワー約1,900人
  • 運営者情報はこちら
いずみです
目次

【AI】Claude APIでトークン数を事前にカウントする方法

早速ですが、Claude APIでトークン数を事前にカウントする方法を解説します。

トークンカウント用エンドポイントとは

Claude APIには、メッセージ作成用の/v1/messages とは別に、トークン数だけを返す/v1/messages/count_tokens というエンドポイントがあります。

Python SDKではclient.messages.count_tokens() として呼び出せます。

メッセージ作成と同じ形式でmodelmessagessystemtools を渡すと、入力トークンの合計だけが返ってきます。

推論は実行されないため、出力トークンは発生しません。

いずみ

トークンカウントの呼び出し自体には課金されません。

ただし通常のメッセージ作成とは別のレート制限が設けられています。

事前準備

Python SDKを使う準備をします。

STEP
SDKをインストールする
pip install anthropic
STEP
APIキーを環境変数に設定する

APIキーは.env か環境変数にANTHROPIC_API_KEY として設定します。

export ANTHROPIC_API_KEY=your_api_key

APIキーはコードに直接書かず、環境変数から読み込む形にします。

基本的なトークンカウント

まずはメッセージだけを渡してトークン数を数えてみます。

import anthropic

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5",
    messages=[
        {"role": "user", "content": "Claudeについて教えてください。"}
    ],
)

print(response.input_tokens)

レスポンスのinput_tokens に、入力トークンの合計が入ります。

トークン数はモデルごとに異なるため、実際に推論で使うモデルと同じmodel を指定します。

システムプロンプトやツールを含めて数える

システムプロンプトやツール定義もトークンを消費します。

メッセージ作成時と同じ引数を渡せば、まとめてカウントされます。

response = client.messages.count_tokens(
    model="claude-opus-5",
    system="あなたは丁寧なテクニカルサポート担当です。",
    tools=[
        {
            "name": "get_weather",
            "description": "指定した都市の天気を返す",
            "input_schema": {
                "type": "object",
                "properties": {
                    "city": {"type": "string", "description": "都市名"}
                },
                "required": ["city"],
            },
        }
    ],
    messages=[
        {"role": "user", "content": "東京の天気は?"}
    ],
)

print(response.input_tokens)

システムプロンプトやツール定義を追加するとinput_tokens が増えることを確認できます。

いずみ

画像やPDFを含むリクエストも、メッセージ作成と同じ形式で渡せばカウントできます。

概算コストを求める

取得した入力トークン数に、モデルごとの100万トークンあたりの単価を掛ければ、入力コストの概算が出せます。

INPUT_PRICE_PER_MTOK = 5.0  # モデルの料金表に合わせて設定(将来変更される可能性あり)

tokens = response.input_tokens
estimated_cost_usd = tokens / 1_000_000 * INPUT_PRICE_PER_MTOK

print(f"入力トークン: {tokens}")
print(f"概算コスト: ${estimated_cost_usd:.6f}")

単価は公式の料金ページで公開されており、変更される可能性があるためコード側で定数として管理しておくと差し替えが楽です。

出力トークンは事前に確定できないため、max_tokens で上限を決めて別途見積もります。

カウント時の注意点

トークンカウントの結果はあくまで見積もりです。

実際にメッセージを作成したときの入力トークン数と、わずかにずれる場合があります。

OpenAI向けのtiktoken で代用するのは避けます。

tiktokenはClaudeのトークナイザーと分割方法が異なり、日本語やコードでは特に誤差が大きくなります。

いずみ

正確な数値が欲しいときは、必ずcount_tokensエンドポイントを使いましょう。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式

【厳選】フリーランスエンジニアにおすすめなエージェント3選

フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。

僕が実際に利用しているおすすめエージェントを紹介しますね。

いずみ

エージェントは必ず複数登録してください。

担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…

僕は実際に5つのエージェントを使い回していますよ。

フリーランスを始めるなら「

案件数マージン率単価
約88,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 業界最大級の案件数。
  • 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
  • 案件参画中のフォローの充実。

※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。

は業界最大手のフリーランスエージェントです。

とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!

いずみ

僕もはじめてフリーランスの案件を貰ったのはです。

保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。

手厚い保障を重視したいなら「

案件数マージン率単価
約10,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 手厚い保障で正社員並みの安心感。
  • 還元率60%超え&単価公開でクリアな契約。
  • 給与保障制度(審査あり)。

は手厚い保障が特徴のフリーランスエージェントです。

フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。

いずみ

僕も何度か案件を紹介してもらいました。

自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。

週2〜3日の案件探しなら「

案件数マージン率単価
約5,000件非公開
初心者福利厚生申し込み
経験者向け無料
Good Point
  • IT案件に特化したフリーランスエージェント。
  • 週2〜3日の案件が豊富。
  • リモート案件が多く、直エンドなので単価も高い。

※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。

はIT案件に特化したフリーランスエージェントです。

週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。

いずみ

週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。

とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!

よくある質問

トークンカウントのエンドポイントは有料ですか?

トークンカウントの呼び出し自体に料金は発生しません。

ただしメッセージ作成とは別のレート制限があるため、大量に呼ぶ場合は制限に注意します。

出力トークン数も取得できますか?

いいえ、count_tokensが返すのは入力トークンのみです。

出力は事前に確定できないため、max_tokens で上限を設定して見積もります。

tiktokenでClaudeのトークン数を数えられますか?

正確には数えられません。

tiktokenはOpenAIのモデル向けのトークナイザーで、Claudeとは分割方法が違います。

日本語やコードでは誤差が大きくなるため、count_tokensを使います。

モデルを変えたら数え直しが必要ですか?

必要です。

トークン数はモデルのトークナイザーに依存するため、推論で使うモデルと同じIDをmodel に指定して数え直します。

まとめ

今回は、Claude APIでトークン数を事前にカウントする方法について解説しました。

以下が本記事のまとめになります。

まとめ
  • Claude APIには入力トークン数だけを返すcount_tokens エンドポイントがある。
  • client.messages.count_tokens()modelmessagessystemtools を渡すとinput_tokens が返る。
  • 単価を掛ければ入力コストの概算が出せる。
  • 結果は見積もりであり、tiktokenでの代用は避ける。
まとめ
いずみ

最後までお読みいただき、ありがとうございました!

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
  • クソおすすめ本
¥4,480 (2024/06/01 23:28時点 | Amazon調べ)
いずみ

海外のエンジニアがどういった思考で働いているかが理解できます。

海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。

この記事が気に入ったら
フォローしてね!

シェアしてね!
  • URLをコピーしました!
目次