What changed
Anthropic’s Platform doc says the Claude API and the SDK can trace Messages API requests, tool uses, and Managed Agents sessions into an observability platform you already run. A trace is one request’s full record. A span is one step, such as a model request or a tool use. Spans use GenAI semantic-convention attributes, so a platform that supports those conventions can recognize them without extra setup. The doc’s stated uses are debugging failed or slow requests, tracking token spend and latency, and building evals from real traffic, with each request linked to the user or feature that sent it.
The launch article says the same traces can come from Claude Managed Agents, the Messages API, and Claude SDKs, and that Platform agents can show up in a tool that already receives Claude Code or Cowork traces. The Platform doc sends Claude Code, the Agent SDK, and Cowork to their own monitoring pages. The article says that adding a Console destination delivers every agent turn, model call, and tool use as a standard OpenTelemetry trace, with latency, tokens, and IDs. The doc says delivery is best effort and a span can be lost. A caller can also leave out a request’s spans by turning off the sampled flag in the request’s traceparent header, the header that carries the sampling decision for that request.
Who it is for, and what leaves your account
Any platform that accepts OTLP, the OpenTelemetry export protocol, can be a destination. The doc names Arize AI, Braintrust, Databricks, Datadog, Grafana Cloud, Honeycomb, Langfuse, LangSmith, New Relic, PostHog, Sentry, and Splunk, and it describes Langfuse as open source. The launch article groups Grafana Cloud, Honeycomb, Sentry, and Splunk with debugging beside logs and metrics; Arize AI, Braintrust, Datadog, Langfuse, LangSmith by LangChain, New Relic, and PostHog with evals; and Databricks Unity Gateway with token usage by team. The doc lists that last partner as Databricks.
Organizations with a HIPAA, FERPA, or K-12 data-handling restriction with Anthropic have destinations export metadata only, whatever content mode is set. The doc says SDK spans are unaffected by that restriction. With zero data retention, Full content still works for Messages API requests, and the API holds the exported content only in memory until delivery. Claude Managed Agents is not eligible for zero data retention, and the doc says OpenTelemetry leaves that retention unchanged.
| Choice | What the doc states |
|---|---|
| Metadata only (metadata_only) | Default. Identifiers, timing, status, token counts, and text you choose, such as agent and tool names and descriptions and MCP server names. Prompts and responses stay out. |
| Full content (content) | Adds model prompts and responses. The observability platform stores them under its own access and retention settings. |
| Default size | 0.75 MB per span. The doc says that fits a 200k-token English context and stays under a 1 MB limit common to platforms and proxies. |
| 1M-token window | A full 1M-token context window needs about 4 MB. Raise or remove the limit when the platform accepts larger payloads. |
| Partner as Provider | A separate Console choice. You pick a partner platform as the Provider, and the Console sets a limit that platform accepts. |
| Smaller cap | Lower the limit when the observability platform, or a proxy in front of it, rejects large requests. |
| Over the cap | Content is shortened and anthropic.content.truncated is set true. Request spans drop the system prompt and earliest messages first. Tool spans drop blocks from the end. Images and documents appear only as their type. |
| Where to change it | SDK: traces.max_content_bytes. Console: set Full content, then Maximum content size in MB under Advanced settings. |
How to turn it on, and how to count tokens once
SDK tracing means installing the SDK and registering a tracer provider, the registration step the doc names so the SDK can emit spans. API tracing means adding a destination in the Claude Console. The launch article says Managed Agents and the Messages API need that Console destination, while Claude SDKs export traces automatically. The doc still requires the tracer provider for SDK spans. Set up both to see one request’s SDK and API spans in a single trace. For requests to Claude Platform on AWS, the doc says the API spans stay in their own traces.
The doc compares SDK tracing, API tracing, and both. In that column order, setup is code, then Console, then both; required permission is None, then Admin, then Admin; and coverage is clients using the SDK, then any client, then any client.
In the doc’s Messages example, the application calls the tool runner, the SDK helper that runs tools and sends their results back. The SDK emits the tool-runner span, the custom client-tool span, and each request’s client create span. The API emits the server create span, a span for each model request, and a tool span for each server tool or MCP connector tool the API runs.
When a Messages API request has both an SDK span and an API span, sum the API spans. Both are named anthropic.messages.create. Kind tells them apart: the SDK span is CLIENT, and its child, the API span, is SERVER. For API Messages spans, the total is one of two sets: the anthropic.messages.create spans, or the anthropic.model_request spans. For a Managed Agents session, sum the anthropic.model_request and anthropic.session.outcome_evaluation spans. A session’s spans can sit in several traces. With multiagent on, gen_ai.conversation.id groups one thread and anthropic.session.id groups the whole session. gen_ai.usage.input_tokens already includes prompt-cache reads and writes. If a retry sends the same span again, count it once by trace ID and span ID. The table is the once-per-source list.
On SDK create spans, also add anthropic.usage.compaction.input_tokens and anthropic.usage.compaction.output_tokens, because gen_ai.usage.* leaves compaction tokens out. If a fallback model served the request, that SDK span has the usage of only the model that served the response. On API Messages spans, add the request’s anthropic.compaction spans, and leave the create span’s anthropic.usage.compaction.* attributes out of that same total, because they hold the same tokens.
| Source | Spans in the sum | Compaction and fallback |
|---|---|---|
| Messages request with both an SDK span and an API span | API anthropic.messages.create spans, kind SERVER. The SDK span of the same name is kind CLIENT. | Then use the API Messages row. |
| SDK create spans | anthropic.messages.create | Also add anthropic.usage.compaction.input_tokens and anthropic.usage.compaction.output_tokens. A fallback span has the usage of only the model that served the response. |
| API Messages spans | Either anthropic.messages.create or anthropic.model_request | Also add anthropic.compaction spans. The create span’s anthropic.usage.compaction.* attributes hold the same tokens, so they stay out of this total. |
| Managed Agents session | anthropic.model_request and anthropic.session.outcome_evaluation | The counting rules name no separate compaction add for these spans. Spans for one session can sit in several traces. |
Price, dates, and what the quotes measure
The OpenTelemetry doc and the launch article state no price, plan tier, export quota, or general-availability date. The article text has no publish date of its own. The beta notice says the export is provided under your agreement with Anthropic, including the Beta Services section of the Service Specific Terms.
David Traina of Ramp says Reflect, which scores Langfuse traces, has already cut token usage by 10–20% and made sessions 30% faster on some agents. He says native export from the Claude API can feed that loop, and that Reflect can only improve what it observes. Those percentages are his account of Reflect’s existing results. The article also quotes Roman Shtylman of Foxglove on PostHog beside product usage, Hyon Lee of Sterling Labs on Langfuse receiving every trace with no custom instrumentation, and Ankush Sharma, Head of Infrastructure with no organization named, on Grafana Cloud beside reconciliation and journal-entry workflows. Lee’s every-trace line sits beside the doc’s best-effort delivery.
The Claude Code changelog separately adds GenAI attributes on Claude Code trace spans, including gen_ai.provider.name, gen_ai.conversation.id, gen_ai.tool.name, and error.type, and adds cache_creation_5m_tokens and cache_creation_1h_tokens on the api_request event. Those bullets name no version, and they are Claude Code telemetry rather than this Console destination.
Source
Also from
Sources and editorial approach
This brief relies on the ClaudeDevs post of October 15, 2026, Anthropic’s Platform OpenTelemetry documentation, and the launch article “Trace agents with OpenTelemetry on the Claude Platform,” all read that day. A Claude Code changelog passage on GenAI span attributes is included only to keep it separate from the Platform export. Those bullets have no version heading. The Beta Services terms, the span-attribute reference, the token-usage attribute page, and the Claude Code, Agent SDK, and Cowork monitoring pages were outside this reading. No destination was configured and no trace was exported.