Files APIを使用すると、リクエストごとにコンテンツを再アップロードすることなく、Claude APIで使用するファイルをアップロードおよび管理できます。これは、コード実行ツールを使用して入力(データセットやドキュメントなど)を提供し、その後出力(チャートなど)をダウンロードする場合に特に便利です。このガイドに加えて、APIリファレンスを直接確認することもできます。
Messagesリクエストでのfile_idの参照は、指定されたファイルタイプをサポートするすべてのモデルでサポートされています。画像は現在のすべてのClaudeモデルでサポートされています。PDFおよびコード実行ツールで使用するその他のファイルタイプについては、リンク先のページでモデルサポートを確認してください。
Files APIは、ファイルを扱うための「一度作成して何度も使用する」アプローチを提供します。
file_idを受け取りますfile_idを使用してMessagesリクエストでファイルを参照します今後のAPI呼び出しで参照するファイルをアップロードします。
uploaded = client.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)
file_id = uploaded.id
print(file_id)ファイルのアップロードからのレスポンスには以下が含まれます。
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}アップロードしたファイルのdownloadableはfalseです。スキルまたはコード実行ツールによって作成されたファイルのみダウンロードできます。ファイルのダウンロードを参照してください。
アップロードしたら、アップロードレスポンスのidをfile_idとして渡すことでファイルを参照します。
response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Please summarize this document for me."},
{
"type": "document",
"source": {
"type": "file",
"file_id": file_id,
},
},
],
}
],
)
print(response)Files APIは、さまざまなコンテンツブロックタイプに対応するさまざまなファイルタイプをサポートしています。
| ファイルタイプ | MIMEタイプ | コンテンツブロックタイプ | ユースケース |
|---|---|---|---|
application/pdf | document | テキスト分析、ドキュメント処理 | |
| プレーンテキスト | text/plain | document | テキスト分析、処理 |
| 画像 | image/jpeg、image/png、image/gif、image/webp | image | 画像分析、視覚的タスク |
| データセット、その他 | さまざま | container_upload | データ分析、可視化の作成 |
PDFおよびテキストファイルには、documentコンテンツブロックを使用します。
{
"type": "document",
"source": {
"type": "file",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
},
"title": "Document Title", // Optional
"context": "Context about the document", // Optional
"citations": { "enabled": true } // Optional, enables citations
}画像には、imageコンテンツブロックを使用します。
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}コード実行ツールにファイルを送信するには、container_uploadコンテンツブロックを使用します。
{
"type": "container_upload",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
}documentブロックがサポートしていないファイルタイプ(.docxや.xlsxなど)については、ファイルをプレーンテキストに変換し、コンテンツをメッセージに直接含めてください。.csvや.mdファイルなど、すでにプレーンテキストであるファイルは、この方法で読み込むか、明示的なtext/plainコンテンツタイプでFiles APIを通じてアップロードできます。データセットをテキストとして読み込むのではなく分析するには、container_uploadブロックを使用してコード実行ツール用にアップロードしてください。
以下の例では、テキストファイルを読み込み、その内容をプレーンテキストとして送信します。
client = anthropic.Anthropic()
# テキストファイルを読み込む
with open("document.txt") as f:
text_content = f.read()
response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the document content:\n\n{text_content}\n\nPlease summarize this document.",
}
],
}
],
)
for block in response.content:
if block.type == "text":
print(block.text)アップロードしたファイルの一覧を取得します。このエンドポイントはページネーションされており、各リクエストは最大limit個のファイル(デフォルトは20)を返し、before_idおよびafter_idパラメータで隣接するページを取得します。List Files APIリファレンスを参照してください。SDKは最初のページを返し、自動ページネーションヘルパーを提供します。CLIの例では--max-itemsで合計数を制限しています。
client = anthropic.Anthropic()
files = client.beta.files.list()
print(files)特定のファイルに関する情報を取得します。
file = client.files.retrieve_metadata(file_id)
print(file)ワークスペースからファイルを削除します。
client.files.delete(file_id)スキルまたはコード実行ツールによって作成されたファイルをダウンロードします。アップロードしたファイルはダウンロードできません。生成されたファイルのfile_idは、それを作成したMessagesレスポンスのbash_code_execution_tool_resultコンテンツブロックに表示されます。
file_content = client.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")DELETE /v1/files/{file_id}エンドポイントで削除するまで保持されますFiles APIを使用する際の一般的なエラーには以下が含まれます。
file_idが存在しないか、アクセス権がありません"downloadable": falseであり、ダウンロードできません。スキルまたはコード実行ツールによって作成されたファイルのみダウンロードできます/v1/messagesリクエストで500 MBのプレーンテキストファイルを使用)<、>、:、"、|、?、*、\、/、またはUnicode文字0〜31)を含んでいます{
"type": "error",
"error": {
"type": "not_found_error",
"message": "File `file_011CNha8iCJcU1wXNR6q4V8w` not found."
},
"request_id": "req_011CQFYcrRp7mCHLDsAYT8Qt"
}Files APIの操作は無料です。
Messagesリクエストで使用されるファイルコンテンツは、入力トークンとして課金されます。
ベータ期間中:
ClaudeでPDFを処理します。テキストの抽出、チャートの分析、ドキュメントからの視覚的コンテンツの理解が可能です。
サンドボックス化されたコンテナでPythonおよびbashコードを実行し、データの分析、ファイルの生成、ソリューションの反復を行います。
視覚的な入力を処理・分析し、画像からテキストやコードを生成します。
| Supported platforms |
|
|---|
Was this page helpful?