--- name: anth-install-auth description: 'Install and configure Anthropic Claude SDK authentication for Python and TypeScript. Use when setting up a new Claude API integration, configuring API keys, or initializing the Anthropic SDK in your project. Trigger with phrases like "install anthropic", "setup claude api", "anthropic auth", "configure anthropic API key", "claude sdk setup". ' allowed-tools: Read, Write, Edit, Bash(npm:*), Bash(pip:*), Grep version: 1.0.0 license: MIT author: Jeremy Longshore tags: - saas - ai - anthropic compatibility: Designed for Claude Code --- # Anthropic Install & Auth ## Overview Set up the official Anthropic SDK for Python or TypeScript and configure API key authentication. The SDK wraps the Claude Messages API at `https://api.anthropic.com/v1/messages`. ## Prerequisites - Node.js 18+ or Python 3.8+ - Package manager (npm, pnpm, yarn, or pip) - Anthropic account with API access at [console.anthropic.com](https://console.anthropic.com) - API key from Console > API Keys ## Instructions ### Step 1: Install SDK ```bash # Python pip install anthropic # TypeScript / Node.js npm install @anthropic-ai/sdk # With pnpm pnpm add @anthropic-ai/sdk ``` ### Step 2: Configure API Key ```bash # Set environment variable (recommended) export ANTHROPIC_API_KEY="sk-ant-api03-..." # Or add to .env file echo 'ANTHROPIC_API_KEY=sk-ant-api03-your-key-here' >> .env # Verify it's set echo $ANTHROPIC_API_KEY | head -c 15 # Expected: sk-ant-api03-... ``` ### Step 3: Verify Connection (Python) ```python import anthropic client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY from env message = client.messages.create( model="claude-sonnet-4-20250514", max_tokens=64, messages=[{"role": "user", "content": "Say hello in exactly 5 words."}] ) print(message.content[0].text) print(f"Model: {message.model}, Tokens: {message.usage.input_tokens}+{message.usage.output_tokens}") ``` ### Step 4: Verify Connection (TypeScript) ```typescript import Anthropic from '@anthropic-ai/sdk'; const client = new Anthropic(); // reads ANTHROPIC_API_KEY from env const message = await client.messages.create({ model: 'claude-sonnet-4-20250514', max_tokens: 64, messages: [{ role: 'user', content: 'Say hello in exactly 5 words.' }], }); if (message.content[0].type === 'text') { console.log(message.content[0].text); } console.log(`Stop reason: ${message.stop_reason}`); ``` ## Output - Installed SDK package (`anthropic` for Python, `@anthropic-ai/sdk` for TS) - Environment variable `ANTHROPIC_API_KEY` configured - Successful API response confirming authentication works ## Error Handling | Error | HTTP Code | Cause | Solution | |-------|-----------|-------|----------| | `authentication_error` | 401 | Invalid or missing API key | Verify key starts with `sk-ant-api03-` | | `permission_error` | 403 | Key lacks required scope | Generate new key in Console | | `not_found_error` | 404 | Invalid API endpoint | Ensure SDK is latest version | | `ModuleNotFoundError` | N/A | SDK not installed | Run `pip install anthropic` or `npm install @anthropic-ai/sdk` | | `connection_error` | N/A | Network/firewall blocking | Ensure HTTPS to `api.anthropic.com` is allowed | ## Enterprise Configuration ```python # Custom base URL (for proxied environments) client = anthropic.Anthropic( api_key="sk-ant-...", base_url="https://your-proxy.internal.com/v1", timeout=60.0, max_retries=3 ) # With explicit headers client = anthropic.Anthropic( default_headers={"anthropic-beta": "messages-2024-12-19"} ) ``` ## Security Considerations - Never commit API keys to source control - Use `.env` files with `.gitignore` exclusion - Rotate keys periodically via Console > API Keys - Use separate keys per environment (dev/staging/prod) - Consider Anthropic's Workspace feature for team key isolation ## Resources - [Anthropic API Getting Started](https://docs.anthropic.com/en/api/getting-started) - [Python SDK](https://github.com/anthropics/anthropic-sdk-python) - [TypeScript SDK](https://github.com/anthropics/anthropic-sdk-typescript) - [Console](https://console.anthropic.com) ## Next Steps After successful auth, proceed to `anth-hello-world` for your first Messages API call.