What changed
ClaudeDevs said spans follow the OpenTelemetry gen_ai conventions and, by default, carry metadata such as duration, status, token counts, model, and tool names. The same post said that switching a destination to "full content" also exports prompts, responses, tool inputs, and tool results.
The API docs say the Claude API emits a span for each model request and each tool use, for Messages API requests and Managed Agents sessions. You can view those spans without changing application code once a destination exists. By default, the spans for a request or a session start in their own traces. The API reads a W3C traceparent header when those spans should nest under an application trace. If the sampled flag in that header is off, the API emits no span for the request and no spans under it. Claude Platform on AWS does not support the header yet. Spans for requests sent there always start their own traces, even when the sampled flag is off.
The SDK docs describe a different path. The SDK emits spans in your application for each request it sends and each tool use the tool runner runs, and your application's OpenTelemetry exporter sends them. During the beta, SDK options and the span schema can break code, queries, or dashboards, including a rename of a span, an attribute, an option, or an environment variable. The SDK page says to pin the SDK version. Spans are on by default.
A Console destination is Metadata only or Full content. On the SDK, traces.content_mode defaults to metadata_only. The SDK value that includes prompts and responses is content, a different label from the Console destination's Full content. The SDK options table lists a default of 0.75 MB per span, changed with traces.max_content_bytes. The only gen_ai attribute those pages name is an optional conversation id on gen_ai.conversation.id, exported in both content modes. The SDK page says not to put personal data or secrets in that id. If a Full content destination still has no prompts or responses, the API docs point to a possible HIPAA, FERPA, or K-12 restriction.
An SDK span and the API span for the same request can share a name. Span kind or service.name tells that pair apart. That is separate from a destination receiving the same API span twice.
Who can turn it on
Adding or changing a destination takes the admin role in a Claude Console organization. The developer role can view destinations. On Claude Platform on AWS, sign in through the AWS Console. IAM policy decides who can manage destinations there.
The endpoint must accept the OpenTelemetry Protocol (OTLP) over HTTP, with protobuf, at an HTTPS URL on port 443. The URL uses a hostname. Docs say a self-hosted collector listens on port 4318 by default, so accept HTTPS on 443 or put a load balancer or reverse proxy in front. Put credentials only in header values. After save, the Console hides those values. The API adds /v1/traces unless you set an OTLP traces endpoint URL on the same host. A Test action on the destination sends an anthropic.test span. The API disables a destination when the endpoint sends a 3xx redirect, when the hostname resolves to a non-public IP, or when every delivery fails for 24 hours. After the cause is fixed, Enable on the destination menu resumes export, and export starts again within about a minute.
Workspace coverage has three settings. All covers every workspace in the organization, including the Default Workspace and workspaces created later. All except starts from that full set and leaves out the workspaces you name. Selected covers only the workspaces you name. The API sends spans to every enabled destination that covers the workspace where the request or session runs. A developer who also has the Workspace Admin role can add or remove that workspace on a Selected destination. Claude Platform on AWS has no Workspace Admin role. There, IAM policy decides who can add a workspace to a destination or remove it.
Admins can also create a destination with the Admin API. On Claude Platform on AWS that call goes to https://aws-external-anthropic.{region}.api.aws, signed with AWS credentials. A request on that call can include only that account's workspaces in the Region.
The API page marks this server-side export beta on the Claude API and Claude Platform on AWS. The SDK page marks tracing beta on those two plus Amazon Bedrock, Google Cloud, and Microsoft Foundry. Both pages say it works with the Messages API and Claude Managed Agents. SDK spans are sent by the application's exporter. For the spans the API sends to destinations, delivery is at least once and best effort. The same span can arrive more than once, and those copies are removed with the trace ID and span ID. A span lost before delivery cannot be sent again.
After delivery, the service you chose holds the data outside Anthropic, under that service's retention and access controls. The API page labels OpenTelemetry ZDR eligible and adds an exclusion for covered models. The label applies only to features that are themselves ZDR eligible, such as the Messages API. The same note says Claude Managed Agents is not ZDR eligible. These pages define neither ZDR nor covered models.
| Limit | Value |
|---|---|
| Destinations per organization, including disabled ones | 10 |
| Workspaces selected for one destination | 1,000 |
| Request headers per destination | 20 |
| Header name length | 128 bytes |
| Header value length | 4,096 bytes |
| All header names and values together | 16,384 bytes |
| Endpoint URL length | 2,048 characters |
Self-hosted Managed Agents sandboxes
In a Managed Agents self-hosted sandbox, the sandbox runs the tools, so the tool spans come from the SDK rather than the API. The environment worker in the Python, TypeScript, and Go SDKs emits a span for each tool it runs and each request it sends, and groups them under one anthropic.environment.work span for each work item. The worker process needs SDK tracing set up, and the sandbox must be allowed to reach the observability platform or collector. When the worker sends a tool result, that request's API span nests under its SDK span. Requests that worker sends to Claude Platform on AWS keep their API spans in separate traces.
Source
Also from
Sources and editorial approach
This brief relies on the ClaudeDevs post of 14 October 2026 and the Claude Platform guides for OpenTelemetry with the API and with the SDK, as those pages stood on 14 October 2026. The Claude Code changelog from the same day covers a separate product and does not describe this Platform export. The Content modes and Content limits pages linked from those guides are not covered here. The platform guides label the feature Beta. They do not state a price, a plan requirement, or a general-availability date, and they do not define the ZDR label or covered models. This is a reading of the announcement and those two guides, not a test of span delivery or of a vendor's retention.