Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs-v1.agno.com/llms.txt

Use this file to discover all available pages before exploring further.

With Anthropic’s Files API, you can upload files and later reference them in other API calls. This is handy when a file is referenced multiple times in the same flow.

Usage

1

Upload a file

Initialize the Anthropic client and use client.beta.files.upload:
from anthropic import Anthropic

file_path = Path("path/to/your/file.pdf")

client = Anthropic()
uploaded_file = client.beta.files.upload(file=file_path)
2

Initialize the Claude model

When initializing the Claude model, pass the necessary beta header:
from agno.agent import Agent
from agno.models.anthropic import Claude

agent = Agent(
    model=Claude(
        id="claude-opus-4-20250514",
        default_headers={"anthropic-beta": "files-api-2025-04-14"},
    )
)
3

Reference the file

You can now reference the uploaded file when interacting with your Agno agent:
agent.print_response(
    "Summarize the contents of the attached file.",
    files=[File(external=uploaded_file)],
)
Notice there are some storage limits attached to this feature. You can read more about that on Anthropic’s docs.

Working example

cookbook/models/anthropic/pdf_input_file_upload.py
from pathlib import Path

from agno.agent import Agent
from agno.media import File
from agno.models.anthropic import Claude
from agno.utils.media import download_file
from anthropic import Anthropic

pdf_path = Path(__file__).parent.joinpath("ThaiRecipes.pdf")

# Download the file using the download_file function
download_file(
    "https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf", str(pdf_path)
)

# Initialize Anthropic client
client = Anthropic()

# Upload the file to Anthropic
uploaded_file = client.beta.files.upload(
    file=Path(pdf_path),
)

if uploaded_file is not None:
    agent = Agent(
        model=Claude(
            id="claude-opus-4-20250514",
            default_headers={"anthropic-beta": "files-api-2025-04-14"},
        ),
        markdown=True,
    )

    agent.print_response(
        "Summarize the contents of the attached file.",
        files=[File(external=uploaded_file)],
    )