Claude SDK Python

Claude SDK Python

Official Python SDK for the Anthropic API

Features

  • Sync and async client interfaces
  • Pydantic models for request/response types
  • Streaming with context managers
  • Tool use with JSON Schema definitions

Pros

  • Pythonic API with type hints
  • Both sync and async interfaces
  • Automatic retries and error handling

Cons

  • Python-specific, not for browser or edge
  • Pydantic dependency may conflict with other libraries
  • Streaming API differs from TypeScript version

Overview

The Anthropic Python SDK provides a Pythonic interface to the Claude API, with both synchronous and asynchronous client implementations. It uses Pydantic for request and response models, providing type safety and validation for Python developers.

The SDK supports all Claude features: message generation, streaming responses (via context managers), tool use with JSON Schema input definitions, vision capabilities, and multi-turn conversations. The async client (AsyncAnthropic) integrates with Python’s asyncio for concurrent applications.

For data scientists and ML engineers, the Python SDK is often the primary interface for integrating Claude into data pipelines, analysis workflows, and AI applications.

When to Use

Use the Python SDK for backend applications, data pipelines, scripts, and AI/ML workflows. It is the standard choice for Python developers working with Claude.

Getting Started

pip install anthropic
import anthropic

client = anthropic.Anthropic()  # reads ANTHROPIC_API_KEY from env

message = client.messages.create(
    model="claude-sonnet-4-5-20250929",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Claude!"}]
)
print(message.content[0].text)