APIMaster.ai

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