Building with Claude: A Complete Developer's Guide to the Platform, APIs, and Managed Agents
Learn how to integrate Claude into your applications using the Messages API, Managed Agents, and SDKs. Includes code examples, model selection tips, and a full developer journey from API key to production.
This guide walks you through the Claude developer platform: getting an API key, choosing a model, using the Messages API with Python/TypeScript, and deploying Managed Agents. You'll learn the full build lifecycle from quickstart to production operations.
Introduction
Claude isn't just a conversational AI — it's a full-fledged developer platform. Whether you're building a simple chatbot, an autonomous agent, or a complex multi-step reasoning system, Claude's API and managed infrastructure give you the tools to go from idea to production fast.
In this guide, you'll learn how to navigate the Claude platform, choose the right development surface, and follow the complete developer journey — from getting your first API key to operating at scale.
Understanding the Claude Platform
The Claude platform offers two primary ways to build:
Messages API (Direct Model Access)
With the Messages API, you have full control. You construct every turn of the conversation, manage state yourself, and write your own tool loop. This is ideal for:
- Custom chatbot architectures
- Applications requiring fine-grained control over context
- Integrating Claude into existing backend systems
Managed Agents
Managed Agents provide fully managed agent infrastructure. You define your agent's behavior, and the platform handles stateful sessions, persistent event history, and autonomous execution. Best for:
- Rapid prototyping
- Applications that don't need custom orchestration
- Teams that want to focus on agent behavior, not infrastructure
Getting Started: Your First API Call
1. Get Your API Key
Head to the Claude Console and generate an API key. Store it securely — you'll need it for every request.
2. Choose a Model
Claude offers three tiers of models:
| Model | Use Case |
|---|---|
Claude Opus 4.7 (claude-opus-4-7) | Complex analysis, deep reasoning, advanced coding |
Claude Sonnet 4.6 (claude-sonnet-4-6) | Best balance of speed and intelligence for production |
Claude Haiku 4.5 (claude-haiku-4-5) | Lightning-fast responses for high-volume, latency-sensitive apps |
3. Install an SDK
Claude provides official SDKs for Python, TypeScript, Go, Java, Ruby, PHP, and C#. Here's how to install the most popular ones:
# Python
pip install anthropic
TypeScript / JavaScript
npm install @anthropic-ai/sdk
4. Make Your First API Call
Here's a complete Python example using the Messages API:
import anthropic
client = anthropic.Anthropic(
api_key="your-api-key-here"
)
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{"role": "user", "content": "Hello, Claude!"}
]
)
print(message.content[0].text)
And the equivalent in TypeScript:
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic({
apiKey: 'your-api-key-here',
});
async function main() {
const message = await anthropic.messages.create({
model: 'claude-opus-4-7',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello, Claude!' }],
});
console.log(message.content[0].text);
}
main();
The Developer Journey: From Idea to Production
Claude's documentation outlines a clear lifecycle. Let's walk through each phase.
Phase 1: Get Started
- Quickstart: Run the code above to verify your setup.
- Choose a model: Start with Sonnet for development, then benchmark Opus and Haiku.
- Install an SDK: Use the official SDKs for your language.
- Try the Workbench: The Claude Workbench is a web-based playground for testing prompts before writing code.
Phase 2: Build
Once you're comfortable, explore Claude's advanced capabilities:
#### Extended Thinking
For complex reasoning tasks, enable extended thinking to give Claude more time to process:
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=4096,
thinking={"type": "enabled", "budget_tokens": 2048},
messages=[{"role": "user", "content": "Solve this complex math problem step by step..."}]
)
#### Vision
Claude can analyze images. Pass image data as base64 or via URL:
import base64
with open("chart.png", "rb") as f:
image_data = base64.b64encode(f.read()).decode("utf-8")
message = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What does this chart show?"},
{"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": image_data}}
]
}
]
)
#### Tool Use
Define tools (functions) that Claude can call to interact with external systems:
tools = [
{
"name": "get_weather",
"description": "Get the current weather for a city",
"input_schema": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "City name"}
},
"required": ["location"]
}
}
]
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "What's the weather in Tokyo?"}]
)
#### Structured Outputs & Prompt Caching
- Structured Outputs: Request JSON-formatted responses for easier parsing.
- Prompt Caching: Cache system prompts or large context blocks to reduce latency and cost.
- Streaming: Receive tokens as they're generated for real-time UX.
Phase 3: Evaluate & Ship
Before going live, focus on:
- Prompting best practices: Use clear instructions, few-shot examples, and system prompts.
- Run evals: Build a test suite of edge cases and expected outputs.
- Batch testing: Use the batch API to test at scale.
- Safety & guardrails: Implement content filtering and rate limiting.
- Rate limits & errors: Handle 429 (rate limit) and 500 (server error) gracefully with retries.
- Cost optimization: Choose Haiku for simple tasks, Sonnet for most workloads, and Opus only when deep reasoning is required.
Phase 4: Operate
Once in production:
- Workspaces & Admin: Organize projects and manage team access.
- API key management: Rotate keys regularly and use separate keys for dev/staging/prod.
- Usage monitoring: Track token consumption and costs in the console.
- Model migration: When new models are released, test against your eval suite before switching.
Managed Agents: Deploy Autonomous Assistants
If you want to skip the orchestration overhead, Managed Agents let you define an agent and let Claude handle the rest.
Defining an Agent
In the console or via API, you define:
- System prompt: The agent's personality and instructions
- Tools: What the agent can access (search, databases, APIs)
- Session management: Persistent conversations with history
# Conceptual example — Managed Agents API
agent = client.agents.create(
name="Customer Support Agent",
model="claude-sonnet-4-6",
instructions="You are a helpful support agent for Acme Corp. Be concise and friendly.",
tools=["search_knowledge_base", "get_order_status"]
)
session = agent.create_session()
response = session.send_message("Where is my order?")
print(response.text)
Managed Agents are particularly powerful for:
- Customer support bots
- Internal knowledge assistants
- Code review agents
Resources to Keep Learning
Claude's ecosystem includes rich learning materials:
- Interactive Courses: Step-by-step tutorials to master Claude.
- Cookbook: Ready-to-use code samples and patterns.
- Quickstarts: Deployable starter apps for common use cases.
- Claude Code: An agentic coding assistant that runs in your terminal.
Key Takeaways
- Choose the right surface: Use the Messages API for full control, Managed Agents for rapid deployment.
- Match the model to the task: Opus for deep reasoning, Sonnet for balance, Haiku for speed.
- Leverage advanced features: Extended thinking, vision, tool use, and streaming unlock Claude's full potential.
- Follow the full lifecycle: Build, evaluate, ship, and operate with the platform's built-in tools.
- Use official SDKs: Python and TypeScript SDKs provide the smoothest developer experience.