La API de Anthropic da acceso a Claude sin necesidad de usar Claude.ai. Desde tu código puedes enviar mensajes, recibir respuestas, hacer streaming, usar herramientas y gestionar conversaciones con historial. Esta guía cubre los primeros pasos.
Paso 1: Obtener una API key
Ve a console.anthropic.com, crea una cuenta y genera una API key en la sección “API Keys”. Guárdala en una variable de entorno:
export ANTHROPIC_API_KEY="sk-ant-..."
Nunca incluyas la API key directamente en el código.
Paso 2: Instalar el SDK
# TypeScript/JavaScript
npm install @anthropic-ai/sdk
# Python
pip install anthropic
Paso 3: Primera llamada
TypeScript:
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
const message = await client.messages.create({
model: 'claude-3-5-sonnet-20241022',
max_tokens: 1024,
messages: [
{
role: 'user',
content: '¿Cuál es la diferencia entre async/await y Promises en JavaScript?'
}
]
});
console.log(message.content[0].text);
Python:
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{"role": "user", "content": "¿Cuál es la diferencia entre async/await y Promises?"}
]
)
print(message.content[0].text)
System prompt: dar contexto al modelo
const message = await client.messages.create({
model: 'claude-3-5-sonnet-20241022',
max_tokens: 1024,
system: 'Eres un experto en TypeScript que responde siempre con ejemplos de código.',
messages: [{ role: 'user', content: '¿Cómo funciona el tipo ReturnType?' }]
});
Streaming: respuestas en tiempo real
const stream = client.messages.stream({
model: 'claude-3-5-sonnet-20241022',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Explica los hooks de React' }]
});
for await (const chunk of stream) {
if (chunk.type === 'content_block_delta') {
process.stdout.write(chunk.delta.text);
}
}
Manejo de errores
import { APIError } from '@anthropic-ai/sdk';
try {
const message = await client.messages.create({ ... });
} catch (error) {
if (error instanceof APIError) {
console.error(`Error ${error.status}: ${error.message}`);
// 401: API key inválida
// 429: Rate limit
// 529: Sobrecarga del servicio
}
}
Los modelos disponibles
claude-3-5-sonnet-20241022: el más capaz, precio medioclaude-3-5-haiku-20241022: el más rápido y baratoclaude-3-opus-20240229: máxima capacidad, mayor coste
Para la mayoría de casos de uso, Sonnet es el punto de partida correcto.
Documentación oficial: docs.anthropic.com. Los modelos y precios se actualizan con frecuencia.