API Commands Reference
Complete reference for Claude API commands and parameters.
Messages API
Basic Message Creation
python
from anthropic import Anthropic
client = Anthropic()
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
temperature=0.7,
system="You are a helpful assistant.",
messages=[
{
"role": "user",
"content": "Your prompt here"
}
]
)Parameters
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
model | string | ✅ | Model identifier | - |
messages | array | ✅ | Conversation messages | - |
max_tokens | integer | ✅ | Maximum response tokens | - |
system | string | ❌ | System prompt | None |
temperature | float | ❌ | Randomness (0-1) | 1.0 |
top_p | float | ❌ | Nucleus sampling | 1.0 |
top_k | integer | ❌ | Top-k sampling | None |
stop_sequences | array | ❌ | Stop generation triggers | None |
stream | boolean | ❌ | Stream responses | False |
metadata | object | ❌ | Request metadata | None |
Message Roles
python
messages = [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi! How can I help?"},
{"role": "user", "content": "Tell me about Python"}
]Streaming
Basic Streaming
python
with client.messages.stream(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a story"}]
) as stream:
for text in stream.text_stream:
print(text, end="")Stream Events
python
stream = client.messages.stream(...)
# Event handlers
stream.on("message_start", lambda msg: print("Started"))
stream.on("content_block_delta", lambda delta: print(delta.text))
stream.on("message_stop", lambda: print("Done"))Vision API
Image Input
python
import base64
with open("image.jpg", "rb") as f:
image_data = base64.b64encode(f.read()).decode()
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": image_data
}
},
{
"type": "text",
"text": "What's in this image?"
}
]
}
]
)Tool Use (Function Calling)
Define Tools
python
tools = [
{
"name": "get_weather",
"description": "Get weather for a location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name"
}
},
"required": ["location"]
}
}
]
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
tools=tools,
messages=[
{"role": "user", "content": "What's the weather in Paris?"}
]
)Handle Tool Calls
python
if message.stop_reason == "tool_use":
tool_use = message.content[-1]
if tool_use.name == "get_weather":
# Execute tool
weather = get_weather(tool_use.input["location"])
# Continue conversation
messages.append({"role": "assistant", "content": message.content})
messages.append({
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": tool_use.id,
"content": str(weather)
}
]
})Claude Code CLI Commands
Basic Commands
bash
# Simple queries
claude-code "What's in this directory?"
claude-code "Explain this code"
claude-code "Fix this error"
# File operations
claude-code read file.py
claude-code edit file.py
claude-code write new_file.py
# Code operations
claude-code review main.py
claude-code test module.py
claude-code refactor function.py
claude-code document class.pyCommand Options
bash
# Model selection
claude-code --model claude-3-5-haiku-20241022 "Quick task"
claude-code --model claude-3-5-opus-20241022 "Complex analysis"
# Output control
claude-code --max-tokens 2000 "Long response"
claude-code --temperature 0.2 "Precise output"
claude-code --stream "Generate story"
# Context control
claude-code --max-files 20 "Analyze project"
claude-code --include "*.py" "Python files only"
claude-code --exclude "test_*" "Skip tests"Special Commands
bash
# Thinking modes
claude-code think "Basic reasoning"
claude-code "think hard" "Extended reasoning"
claude-code "think harder" "Deep analysis"
claude-code ultrathink "Maximum reasoning"
# Git operations
claude-code commit "Create commit message"
claude-code pr "Create pull request"
claude-code review-pr "Review pull request"
# Project operations
claude-code init "Initialize project"
claude-code plan "Create project plan"
claude-code implement "Implement feature"Configuration Commands
Setup
bash
# API key
claude-code config set api_key sk-ant-api03-...
# Default model
claude-code config set model claude-3-5-sonnet-20241022
# Editor
claude-code config set editor vscodeView Configuration
bash
# List all settings
claude-code config list
# Get specific setting
claude-code config get api_key
# Verify setup
claude-code diagnoseReset
bash
# Reset single setting
claude-code config reset model
# Reset all settings
claude-code config reset --allMCP Commands
Server Management
bash
# Add MCP server
claude-code mcp add filesystem
claude-code mcp add git
claude-code mcp add web
# List servers
claude-code mcp list
# Remove server
claude-code mcp remove filesystem
# Update server
claude-code mcp update gitServer Configuration
bash
# Configure server
claude-code mcp config filesystem --path /home/user
claude-code mcp config git --repo /path/to/repo
# Test server
claude-code mcp test filesystemUtility Commands
Help & Documentation
bash
# General help
claude-code --help
claude-code help
# Command help
claude-code help review
claude-code help config
# Version info
claude-code --versionDiagnostics
bash
# Full diagnostic
claude-code diagnose
# Connection test
claude-code test-connection
# Performance test
claude-code benchmarkCache Management
bash
# Clear cache
claude-code cache clear
# View cache size
claude-code cache size
# Set cache limit
claude-code cache limit 1000Environment Variables
bash
# Essential
export ANTHROPIC_API_KEY='sk-ant-api03-...'
# Model defaults
export ANTHROPIC_MODEL='claude-3-5-sonnet-20241022'
export ANTHROPIC_MAX_TOKENS=4096
export ANTHROPIC_TEMPERATURE=0.7
# API configuration
export ANTHROPIC_BASE_URL='https://api.anthropic.com'
export ANTHROPIC_API_VERSION='2024-10-22'
export ANTHROPIC_TIMEOUT=30
# Claude Code specific
export CLAUDE_CODE_EDITOR='vscode'
export CLAUDE_CODE_CONTEXT_SIZE=50
export CLAUDE_CODE_AUTO_COMMIT=falsePython SDK Methods
Client Methods
python
# Initialize
client = Anthropic(
api_key="...",
base_url="...",
timeout=30.0,
max_retries=3
)
# Create message
response = client.messages.create(...)
# Stream message
stream = client.messages.stream(...)
# Count tokens
count = client.count_tokens(text="...")Response Objects
python
# Message response
message.id # Message ID
message.content # Content array
message.model # Model used
message.role # Role (assistant)
message.stop_reason # Why generation stopped
message.stop_sequence # Stop sequence hit
message.usage # Token usage
# Content block
content.type # 'text' or 'tool_use'
content.text # Text content
content.name # Tool name
content.input # Tool inputError Handling
python
from anthropic import (
APIError,
APIConnectionError,
APITimeoutError,
RateLimitError,
AuthenticationError
)
try:
response = client.messages.create(...)
except RateLimitError as e:
print(f"Rate limited: {e}")
except AuthenticationError as e:
print(f"Auth failed: {e}")
except APIError as e:
print(f"API error: {e}")cURL Examples
Basic Request
bash
curl -X POST https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2024-10-22" \
-H "content-type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, Claude"}
]
}'Streaming Request
bash
curl -X POST https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2024-10-22" \
-H "content-type: application/json" \
-d '{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 1024,
"stream": true,
"messages": [
{"role": "user", "content": "Tell me a story"}
]
}'See Also: Error Codes | Troubleshooting | Best Practices