CLAUDE LABEN
MCP — 7月28日のMCP仕様リリース候補でMcp-Session-Idヘッダーが廃止されステートレス化します。リモートMCPサーバーはスティッキーセッションなしで運用できますAPPS — 同じ仕様でMCP Apps(サーバー側でレンダリングするUI)と、長時間処理向けのTasks拡張が加わりますMEMORY — Python 0.116.0・TypeScript 0.110.0・Go 1.56.0など各SDKが、メモリストア呼び出しにagent-memory-2026-07-22ヘッダーを送るようになりましたSPILL — agent_toolsetやMCPツールの出力が10万文字を超えると自動でサンドボックス内のファイルへ退避され、モデルには切り詰めたプレビューが渡りますBG — 2分を超えるMCPツール呼び出しが自動でバックグラウンドへ移り、セッションを止めなくなりました。CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますRESUME — エージェントビューで/resumeを打つと過去セッションのピッカーが開き、選んだものをバックグラウンドセッションとして再開できますMCP — 7月28日のMCP仕様リリース候補でMcp-Session-Idヘッダーが廃止されステートレス化します。リモートMCPサーバーはスティッキーセッションなしで運用できますAPPS — 同じ仕様でMCP Apps(サーバー側でレンダリングするUI)と、長時間処理向けのTasks拡張が加わりますMEMORY — Python 0.116.0・TypeScript 0.110.0・Go 1.56.0など各SDKが、メモリストア呼び出しにagent-memory-2026-07-22ヘッダーを送るようになりましたSPILL — agent_toolsetやMCPツールの出力が10万文字を超えると自動でサンドボックス内のファイルへ退避され、モデルには切り詰めたプレビューが渡りますBG — 2分を超えるMCPツール呼び出しが自動でバックグラウンドへ移り、セッションを止めなくなりました。CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますRESUME — エージェントビューで/resumeを打つと過去セッションのピッカーが開き、選んだものをバックグラウンドセッションとして再開できます
記事一覧/API & SDK
API & SDK/2026-04-04中級

Claude API Files API — ドキュメントを永続化してAPIコストを大幅削減

Claude API Files APIを使ってドキュメントを永続化し、繰り返しアップロードのコストを削減する方法を解説。PDFや長文ドキュメントを一度アップロードして複数リクエストで再利用する実践的な実装ガイドです。

Files API2Claude API115ドキュメント処理3コスト最適化25Python17

Claude APIの Files API は、大きなドキュメントを一度アップロードして複数のAPIリクエストで再利用できる強力な機能です。このガイドでは、Files APIの基本概念から実装、そしてコスト削減の実践的な活用法までを網羅します。

Files APIとは?なぜ重要か

毎回のAPIリクエストで同じドキュメント(PDF、テキスト、画像)を送信していませんか?Files API を使うと、ドキュメントを一度Anthropicのサーバーにアップロードして、複数のリクエストで再利用できます。

これにより:

  • トークンコストの削減:同じドキュメントを何度も送信せずに済む
  • レスポンス速度の向上:キャッシュされたファイルはすばやく処理される
  • API呼び出しの簡潔化:file_idで参照するだけでよい

特に、日報、契約書、技術仕様書など、定期的に分析するドキュメントがある場合に威力を発揮します。

Files APIの基本概念

ファイルID(file_id)とは

Files APIでアップロードしたファイルには、一意の file_id が割り当てられます。このIDを使って、後続のAPIリクエストでファイルを参照できます。

ファイルID例: file_123456789abcdef

サポートされるファイル形式

Files APIは以下の形式をサポートしています:

  • PDF: .pdf
  • テキスト: .txt, .json, .csv, .jsonl, .xml, .md
  • 画像: .jpg, .jpeg, .png, .gif, .webp
  • Office形式: .docx, .xlsx, .pptx(注:テキスト抽出のみ)
  • その他: .zip, .tar.gz(階層的なテキスト抽出)

各ファイルの上限は 20 MB です。

ストレージ制限と有効期限

アップロードしたファイルは 最大30日間 Anthropicのサーバーに保存されます。期間終了後、ファイルは自動削除されます。保存容量に制限はありませんが、30日以上保持する必要がある場合は定期的に再アップロードしましょう。

環境準備とインストール

Pythonライブラリのインストール

pip install anthropic python-dotenv

APIキーの設定

環境変数を使ってAPIキーを管理します。

export ANTHROPIC_API_KEY='your-api-key-here'

または、.env ファイルを作成:

ANTHROPIC_API_KEY=your-api-key-here

Pythonコードで読み込む:

from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('ANTHROPIC_API_KEY')

Files APIの実装チュートリアル

ステップ1:ファイルのアップロード

import os
from anthropic import Anthropic
 
# クライアント初期化
client = Anthropic()
 
# ファイルをアップロード
with open('sample_document.pdf', 'rb') as f:
    response = client.beta.files.create(
        file=(f.name, f, 'application/pdf')
    )
    file_id = response.id
    print(f"File uploaded. ID: {file_id}")
    print(f"Filename: {response.filename}")
    print(f"Size: {response.size_bytes} bytes")

期待される出力:

File uploaded. ID: file_abc123def456
Filename: sample_document.pdf
Size: 156789 bytes

ステップ2:file_idを使ったメッセージ送信

アップロード後、file_idを使ってファイルをメッセージに含めます。

# file_idを使ってメッセージを送信
file_id = "file_abc123def456"  # ステップ1でアップロードしたID
 
message = client.beta.messages.create(
    model="claude-opus-4-1",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "text",
                    "text": "このドキュメントの要点を箇条書きで5つ教えてください。"
                },
                {
                    "type": "document",
                    "source": {
                        "type": "file",
                        "file_id": file_id
                    }
                }
            ]
        }
    ]
)
 
print(message.content[0].text)

期待される出力:

このドキュメントの主要なポイント:
1. APIの基本認証について…
2. レート制限の仕様…
3. エラーハンドリング…
4. ベストプラクティス…
5. セキュリティ考慮事項…

ステップ3:ファイル一覧の取得

# アップロード済みのファイル一覧を取得
files = client.beta.files.list()
 
print(f"Total files: {len(files.data)}")
for file in files.data:
    print(f"- {file.filename} ({file.id})")
    print(f"  Size: {file.size_bytes} bytes")
    print(f"  Created: {file.created_at}")

ステップ4:ファイルの削除

# ファイルを削除
delete_response = client.beta.files.delete(file_id="file_abc123def456")
print(f"File deleted: {delete_response.deleted}")

コスト削減の実践例

シナリオ:同じPDFを100回分析する場合

Files API使用前

  • PDFサイズ:100 KB(約25,000トークン)
  • リクエスト数:100回
  • 総トークン:2,500,000トークン

Files API使用後

  • アップロード時:25,000トークン(1回)
  • 各リクエスト時:参照トークンのみ(約5,000トークン × 100回)
  • 総トークン:525,000トークン

削減率:約79% のコスト削減です!

よくあるエラーと対処法

ファイルサイズ制限エラー

Error: File size exceeds 20MB limit

対処法

  • ファイルを分割する
  • PDFの場合、不要なページを削除する
  • 画像解像度を下げる

有効期限切れエラー

Error: File not found. File may have expired.

対処法

  • 30日以上経過したファイルは再アップロードする
  • 長期保存が必要な場合は、独自のストレージバックエンド(S3など)を使用する

認証エラー

Error: Invalid API key or insufficient permissions

対処法

  • APIキーが正しく設定されているか確認
  • APIキーに必要な権限があるか確認(organization管理画面で確認)

全体を振り返って

Claude API の Files API は、大量のドキュメント処理が必要なアプリケーションにおいて、コスト削減とパフォーマンス向上の両立を実現します。

活用シーン:

  • 日々の契約書レビュー
  • 定期的なログ分析
  • 繰り返しの法務文書チェック
  • 社内マニュアルの自動要約

API クイックスタートガイドで基礎を固めた上で、Files APIを組み込むことで、より実用的なアプリケーション構築が可能になります。また、自動キャッシュ機能ガイドと組み合わせることで、さらなるコスト最適化も期待できます。

さらに深掘りしたい方は、バッチ処理ガイドで非同期処理パターンも学ぶことをお勧めします。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

API & SDK2026-07-01
Claude API のドキュメント抽出が「自信満々に間違える」とき — 沈黙する誤りを不変条件で捕まえる運用メモ
請求書や契約書の構造化抽出で一番怖いのは、クラッシュではなく「スキーマも通り信頼度も高いのに値だけ間違っている」沈黙の誤りです。不変条件・二段抽出・フィールド単位の誤り率で運用する実装メモを共有します。
API & SDK2026-06-22
Claude Files API のファイルが知らぬ間に溜まる — 内容ハッシュ台帳で重複を止め、孤児を回収する
自動パイプラインで Files API を使うと、同じファイルが何度もアップロードされ孤児ファイルが静かに溜まります。内容ハッシュ台帳での重複排除と、参照されなくなったファイルの GC 設計を実装例つきで解説します。
API & SDK2026-07-02
9月1日に単価は1.5倍へ戻る — Sonnet 5 導入価格の期限を織り込む実効日付きコスト予測
Claude Sonnet 5 の導入価格 $2/$10 は 2026-08-31 で終わり、9月からは $3/$15 になります。静的な単価表のままでは月次予測が3割ずれる問題を、有効期間つき単価テーブルと予測シミュレータで解く設計をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →