claude-api-python
title: Tutorial de la API de Claude en Python 2026 | APIMaster.ai description: Cómo usar la API de Claude con Python. Ejemplos completos usando el SDK de Anthropic y el cliente compatible con OpenAI: chat, streaming, visión y llamada a funciones, a través de APIMaster.ai.
Tutorial de la API de Claude en Python
Esta guía cubre el uso de la API de Claude en Python tanto con el SDK nativo de Anthropic como con el cliente compatible con OpenAI. Todos los ejemplos funcionan con APIMaster.ai: intercambia tu propia URL base y clave de API.
Instalación
pip install anthropic # Native Anthropic SDK
pip install openai # OpenAI-compatible (optional)
Configuración básica
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai", # No /v1 for Anthropic SDK
)
O con el SDK de OpenAI (más fácil si ya usas OpenAI):
from openai import OpenAI
client = OpenAI(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai/v1",
)
Tu primera llamada a la API de Claude
import anthropic
client = anthropic.Anthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Explain the difference between lists and tuples in Python."}
],
)
print(message.content[0].text)
Mensajes de sistema
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
system="You are a senior Python engineer. Be concise and use code examples.",
messages=[
{"role": "user", "content": "What's the fastest way to flatten a nested list?"}
],
)
print(response.content[0].text)
Conversación de múltiples turnos
conversation = []
def chat(user_message):
conversation.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=conversation,
)
assistant_message = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_message})
return assistant_message
print(chat("What is a decorator in Python?"))
print(chat("Can you show me a practical example?"))
Respuestas en streaming
El streaming devuelve tokens a medida que se generan — mejor UX para salidas largas:
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Write a Python web scraper using requests and BeautifulSoup."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print() # newline at end
Visión: Análisis de imágenes
Claude Sonnet y Opus admiten entrada de imágenes (base64 o URL):
import base64
with open("chart.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=512,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data,
},
},
{"type": "text", "text": "Summarize what this chart shows."},
],
}
],
)
print(response.content[0].text)
Uso de herramientas (Llamada a funciones)
tools = [
{
"name": "get_weather",
"description": "Get current weather for a city",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "City name"},
},
"required": ["city"],
},
}
]
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
tools=tools,
messages=[{"role": "user", "content": "What's the weather in Tokyo?"}],
)
# Check if Claude wants to call a tool
if response.stop_reason == "tool_use":
tool_call = next(b for b in response.content if b.type == "tool_use")
print(f"Tool: {tool_call.name}, Input: {tool_call.input}")
Uso asíncrono
import asyncio
import anthropic
async def main():
client = anthropic.AsyncAnthropic(
api_key="YOUR_APIMASTER_KEY",
base_url="https://apimaster.ai",
)
response = await client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.content[0].text)
asyncio.run(main())
Manejo de errores
import anthropic
try:
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=256,
messages=[{"role": "user", "content": "Hello"}],
)
except anthropic.AuthenticationError:
print("Invalid API key")
except anthropic.RateLimitError:
print("Rate limit—add retry logic")
except anthropic.APIStatusError as e:
print(f"API error {e.status_code}: {e.message}")
Elegir el modelo de Claude adecuado para proyectos de Python
| Tarea | Modelo | Razón |
|---|---|---|
| Chatbots, Preguntas y respuestas | claude-haiku-4-5 | Rápido y barato |
| Generación de código | claude-sonnet-4-6 | Mejor equilibrio |
| Razonamiento complejo | claude-opus-4-8 | Mayor precisión |
| Análisis de documentos | claude-sonnet-4-6 | Contexto de 1M |
Obtén acceso a la API de Claude
Preguntas frecuentes
¿Cómo instalo la librería Python de la API de Claude?
Ejecuta pip install anthropic para el SDK oficial, o pip install openai para usar el endpoint compatible con OpenAI de APIMaster con los modelos de Claude.
¿Qué SDK de Python debería usar para la API de Claude?
El SDK anthropic es la opción oficial y soporta todas las características específicas de Claude (uso de herramientas, visión, streaming). El SDK openai funciona a través de la capa de compatibilidad de APIMaster, útil si ya usas OpenAI y quieres cambiar de modelos.
¿Cómo transmito respuestas de la API de Claude en streaming en Python?
Usa stream=True con la librería openai, o usa client.messages.stream() con el SDK anthropic. Consulta el ejemplo de streaming más arriba.
¿La API de Claude soporta llamada a funciones (uso de herramientas)?
Sí — Claude admite el uso de herramientas tanto en el SDK nativo de Anthropic como a través del endpoint compatible con OpenAI de APIMaster usando el parámetro estándar tools.
¿Cuál es la ventana de contexto máxima para Claude en Python?
Claude Sonnet 4.6 y Opus 4.8 soportan 1 millón de tokens cada uno. Puedes pasar documentos muy largos directamente en el array messages.
Regístrate en APIMaster.ai para obtener acceso a la API de Claude a través de un endpoint unificado, con precios en vivo y datos de verificación de huellas digitales.
Ver también: Precios de la API de Claude · Cómo obtener una clave de API de Claude