Getting Started

IntroductionLocal ProxySDK Quick Start

AI ROI

Analytics & ReportsTeam ManagementGitHub Integration

Cost Management

Smart RoutingBudget & AlertsPrompt ClassifierCaching & Performance

Integrations

OpenAIAnthropicMCP ServerSlack

Reference

SDKREST APIErrors
Docs/Integrations/Anthropic

Anthropic Integration

Track per-request costs across Claude Opus 4.7, Sonnet 4.6, and Haiku 4.5. Attribute spend by developer and feature.

Installation

npm install costlens @anthropic-ai/sdk

Quick Start

Wrap your Anthropic client for automatic tracking and cost optimization:

import { CostLens } from 'costlens';
import Anthropic from '@anthropic-ai/sdk';

const anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
const costlens = new CostLens({ 
  apiKey: process.env.COSTLENS_API_KEY,
  smartRouting: true
});

const tracked = costlens.wrapAnthropic(anthropic);

const result = await tracked.messages.create({
  model: 'claude-sonnet-4.6',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'Summarize this document' }]
});
With smart routing enabled, simple tasks are automatically routed to cheaper models. Complex tasks stay on your chosen model.

Smart Routing

CostLens classifies prompt complexity and routes to the cheapest adequate model:

TaskRouting
Simple (fix typo, explain concept)Sonnet → Haiku
Medium (code generation, multi-step)Stays on Sonnet
Complex (architecture, multi-file)No routing — quality preserved

Tagging Requests

Attribute costs to features or users:

await costlens.trackAnthropic(
  params,
  result,
  Date.now() - start,
  'content-generation-v1'  // promptId
);

Caching

const costlens = new CostLens({ 
  apiKey: process.env.COSTLENS_API_KEY,
  enableCache: true
});

const tracked = costlens.wrapAnthropic(anthropic);

const result = await tracked.messages.create(
  { model: 'claude-sonnet-4.6', max_tokens: 1024, messages: [...] },
  { cacheTTL: 3600000 }
);

Error Handling

const start = Date.now();
try {
  const result = await anthropic.messages.create(params);
  await costlens.trackAnthropic(params, result, Date.now() - start);
  return result;
} catch (error) {
  await costlens.trackError(
    'anthropic', params.model,
    JSON.stringify(params.messages),
    error, Date.now() - start
  );
  throw error;
}

Supported Models

ModelInputOutput
Claude Sonnet 4.6$3/1M$15/1M
Claude Haiku 4.5$1/1M$4/1M
Claude Opus 4.7$5/1M$25/1M
You are responsible for verifying pricing accuracy. Check anthropic.com/pricing for current rates. Custom rates can be set in Settings.

What Gets Tracked

  • Model name and provider
  • Token usage (input + output)
  • Cost (tokens × model price)
  • Latency (response time in ms)
  • Success/failure status
  • Prompt ID and user attribution

Next

OpenAI

SDK Reference

Prompt Classifier

Previous

← OpenAI

Next

MCP Server →