Files APIを使用すると、リクエストごとにコンテンツを再アップロードすることなく、Claude APIで使用するファイルをアップロードおよび管理できます。これは、コード実行ツールを使用して入力(データセットやドキュメントなど)を提供し、出力(チャートなど)をダウンロードする場合に特に便利です。また、Files APIを使用することで、頻繁に使用するドキュメントや画像を複数のAPI呼び出しで繰り返し再アップロードする必要がなくなります。このガイドに加えて、APIリファレンスを直接確認することもできます。
Files APIはベータ版です。Files APIの使用体験については、フィードバックフォームからお寄せください。
この機能はZero Data Retention (ZDR)の対象外です。データは、この機能の標準的な保持ポリシーに従って保持されます。
Messagesリクエストでのfile_idの参照は、該当するファイルタイプをサポートするすべてのモデルで対応しています。画像は現在のすべてのClaudeモデルでサポートされています。PDFおよびコード実行ツールで使用するその他のファイルタイプについては、リンク先のページでモデルのサポート状況をご確認ください。
Files APIは、Claude API、Claude Platform on AWS、およびMicrosoft Foundryで利用できます。現在、Amazon BedrockおよびVertex AIでは利用できません。
Files APIは、ファイルを扱うための「一度作成して何度も使用する」シンプルなアプローチを提供します。
file_idを受け取りますfile_idを使用してMessagesリクエストでファイルを参照しますFiles APIを使用するには、ベータ機能ヘッダーanthropic-beta: files-api-2025-04-14を含める必要があります。
今後のAPI呼び出しで参照するファイルをアップロードします。
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)ファイルのアップロードに対するレスポンスには以下が含まれます。
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}アップロード後、file_idを使用してファイルを参照します。
response = client.beta.messages.create(
model="claude-opus-4-8",
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,
},
},
],
}
],
betas=["files-api-2025-04-14"],
)
print(response)Files APIは、さまざまなコンテンツブロックタイプに対応する各種ファイルタイプをサポートしています。
| ファイルタイプ | MIMEタイプ | コンテンツブロックタイプ | ユースケース |
|---|---|---|---|
application/pdf | document | テキスト分析、ドキュメント処理 | |
| プレーンテキスト | text/plain | document | テキスト分析、処理 |
| 画像 | image/jpeg、image/png、image/gif、image/webp | image | 画像分析、視覚的タスク |
| データセット、その他 | 各種 | container_upload | データ分析、可視化の作成 |
documentブロックとしてサポートされていないファイルタイプ(.csv、.txt、.md、.docx、.xlsx)については、ファイルをプレーンテキストに変換し、コンテンツをメッセージに直接含めてください。
import pandas as pd
# 例:CSVファイルの読み込み
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# メッセージ内でプレーンテキストとして送信
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the CSV data:\n\n{csv_content}\n\nPlease analyze this data.",
}
],
}
],
)
print(response.content[0].text)画像を含む.docxファイルについては、まずPDF形式に変換してからPDFサポートを使用することで、組み込みの画像解析機能を活用できます。これにより、PDFドキュメントからの引用を使用できるようになります。
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"
}
}アップロードしたファイルの一覧を取得します。
client = anthropic.Anthropic()
files = client.beta.files.list()特定のファイルに関する情報を取得します。
file = client.beta.files.retrieve_metadata(file_id)ワークスペースからファイルを削除します。
result = client.beta.files.delete(file_id)スキルまたはコード実行ツールによって作成されたファイルをダウンロードします。
file_content = client.beta.files.download(file_id)
# Save to file
file_content.write_to_file("downloaded_file.txt")Messages API呼び出しおよび関連するツール使用では引き続き存在する場合がありますFiles API経由でアップロードされたファイルは、DELETE /v1/files/{file_id}エンドポイントを使用して明示的に削除されるまで保持されます。ファイルは複数のAPIリクエスト間で再利用するために保存されます。
すべての機能におけるZDR適格性については、APIとデータ保持を参照してください。
Files APIを使用する際の一般的なエラーには以下が含まれます。
file_idが存在しないか、アクセス権がありません/v1/messagesリクエストで500 MBのプレーンテキストファイルを使用している)<、>、:、"、|、?、*、\、/、またはUnicode文字0〜31)を含んでいます{
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}File APIの操作は無料です。
Messagesリクエストで使用されるファイルコンテンツは、入力トークンとして課金されます。ダウンロードできるのは、スキルまたはコード実行ツールによって作成されたファイルのみです。
ベータ期間中:
Was this page helpful?