Telemetry Destinations changedapi/beta/organization/telemetry_destinations
Nearest release: v2.1.300, published 6 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
# Telemetry Destinations ## Create a Telemetry Destination ### Headers ### Body parameters ### Returns ### Example #### Response (200) ## List Telemetry Destinations ### Query parameters ### Headers ### Returns ### Example #### Response (200) ## Retrieve a Telemetry Destination ### Path parameters ### Headers ### Returns ### Example #### Response (200) ## Update a Telemetry Destination ### Path parameters ### Headers ### Body parameters ### Returns ### Example #### Response (200) ## Delete a Telemetry Destination ### Path parameters ### Headers ### Returns ### Example #### Response (200) ## Test a Telemetry Destination ### Path parameters ### Headers ### Returns ### Example #### Response (200) ## Domain types ### Beta Deleted Telemetry Destination ### Beta Telemetry Destination ### Beta Telemetry Destination Content Mode ### Beta Telemetry Destination Delivery Health ### Beta Telemetry Destination Disabled Reason ### Beta Telemetry Destination Disabled Reason Caller ### Beta Telemetry Destination Disabled Reason Invalid Address ### Beta Telemetry Destination Disabled Reason Redirect ### Beta Telemetry Destination Disabled Reason Sustained Failure ### Beta Telemetry Destination State ### Beta Telemetry Destination State Disabled ### Beta Telemetry Destination State Disabled Params ### Beta Telemetry Destination State Enabled ### Beta Telemetry Destination State Enabled Params ### Beta Telemetry Destination State Params ### Beta Telemetry Destination Test Failure ### Beta Telemetry Destination Test Response ### Beta Telemetry Destination Test Result ### Beta Telemetry Destination Test Success ### Beta Telemetry Destination Traces ### Beta Telemetry Destination Traces Params ### Beta Telemetry Destination Workspaces ### Beta Telemetry Destination Workspaces All ### Beta Telemetry Destination Workspaces All Params ### Beta Telemetry Destination Workspaces Exclude ### Beta Telemetry Destination Workspaces Exclude Params ### Beta Telemetry Destination Workspaces Include ### Beta Telemetry Destination Workspaces Include Params ### Beta Telemetry Destination Workspaces Params ## Telemetry Destinations › Workspaces ### List Telemetry Destination Workspaces #### Path parameters #### Query parameters #### Headers #### Returns #### Example ##### Response (200) ### Add a Telemetry Destination Workspace #### Path parameters #### Headers #### Returns #### Example ##### Response (200) ### Remove a Telemetry Destination Workspace #### Path parameters #### Headers #### Returns #### Example ##### Response (200)
The whole hunk
3242 lines, new pageA whole new page. There's nothing to diff it against, so here is what it says.
---
title: Telemetry Destinations
url: https://platform.claude.com/docs/en/api/beta/organization/telemetry_destinations
---
# Telemetry Destinations
## Create a Telemetry Destination
**POST** `/v1/organizations/telemetry_destinations`
Register an OpenTelemetry destination for the organization.
The destination starts in state `enabled`. An organization can have at most 10 destinations, including disabled ones.
See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#add-a-destination) to learn more about adding a destination.
### Headers
- `"anthropic-version": optional string`
- `"anthropic-beta": optional array of AnthropicBeta`
Optional header to specify the beta version(s) you want to use.
- `string`
- `"message-batches-2024-09-24"`
- `"prompt-caching-2024-07-31"`
- `"computer-use-2024-10-22"`
- `"computer-use-2025-01-24"`
- `"pdfs-2024-09-25"`
- `"token-counting-2024-11-01"`
- `"token-efficient-tools-2025-02-19"`
- `"output-128k-2025-02-19"`
- `"files-api-2025-04-14"`
- `"mcp-client-2025-04-04"`
- `"mcp-client-2025-11-20"`
- `"dev-full-thinking-2025-05-14"`
- `"interleaved-thinking-2025-05-14"`
- `"code-execution-2025-05-22"`
- `"extended-cache-ttl-2025-04-11"`
- `"context-1m-2025-08-07"`
- `"context-management-2025-06-27"`
- `"model-context-window-exceeded-2025-08-26"`
- `"skills-2025-10-02"`
- `"fast-mode-2026-02-01"`
- `"output-300k-2026-03-24"`
- `"user-profiles-2026-03-24"`
- `"user-profiles-2026-08-18"`
- `"user-profiles-2026-09-04"`
- `"advisor-tool-2026-03-01"`
- `"managed-agents-2026-04-01"`
- `"cache-diagnosis-2026-04-07"`
- `"dreaming-2026-04-21"`
- `"thinking-token-count-2026-05-13"`
- `"server-side-fallback-2026-06-01"`
- `"server-side-fallback-2026-07-01"`
- `"fallback-credit-2026-06-01"`
- `"fallback-credit-2026-07-01"`
- `"agent-memory-2026-07-22"`
- `"mid-conversation-tool-changes-2026-07-01"`
- `"compact-2026-01-12"`
- `"computer-use-2025-11-24"`
- `"mcp-tunnels-2026-06-22"`
- `"structured-outputs-2025-11-13"`
- `"task-budgets-2026-03-13"`
- `"thinking-display-updates-2026-08-18"`
- `"ce-user-management-2026-07-13"`
- `"mid-conversation-output-config-2026-07-01"`
- `"thinking-binding-controls-2026-08-01"`
- `"mid-conversation-system-clear-at-2026-08-21"`
- `"compact-2026-09-04"`
- `"inline-tools-2026-09-15"`
- `"mcp-client-2026-09-15"`
- `"ce-plugins-2026-09-01"`
- `"spend-limit-reads-2026-09-26"`
- `"telemetry-destinations-2026-08-11"`
### Body parameters
- `endpoint_url: string`
The base URL of your collector's OTLP/HTTP endpoint, for example `https://gateway.example.com`.
The URL must use `https` and a hostname, not an IP address. The port, if given, must be 443. The URL must not contain a query string, a fragment, or a username and password. At most 2,048 characters.
A path prefix, such as `/otlp`, is allowed. Don't include the per-signal path (`/v1/traces`), because the API appends it on delivery. If your collector takes traces on another path, also set `traces.endpoint_url`.
minLength: 1, maxLength: 2048
- `workspaces: BetaTelemetryDestinationWorkspacesParams`
Which of the organization's workspaces the destination covers.
- `BetaTelemetryDestinationWorkspacesAllParams object`
Cover every workspace of the organization. Doesn't take `workspace_ids`.
An update that sets `all` empties the destination's workspace list.
- `type: "all"`
- `BetaTelemetryDestinationWorkspacesIncludeParams object`
Cover only the workspaces on the list.
- `type: "include"`
- `workspace_ids: optional array of string`
The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request.
On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination.
On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace.
An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list.
- `BetaTelemetryDestinationWorkspacesExcludeParams object`
Cover every workspace of the organization except the workspaces on the list.
- `type: "exclude"`
- `workspace_ids: optional array of string`
The IDs of the workspaces on the destination's list (`wrkspc_...`). At most 100 per request.
On create, these workspaces become the destination's list. If you leave `workspace_ids` out, the list starts empty. If the API refuses one of the IDs, it doesn't create the destination.
On update, `workspace_ids` replaces the whole list. A workspace that stays on the list keeps its entry and its `created_at`. An empty array empties the list. If you leave `workspace_ids` out and the type stays the same, the list doesn't change. If you leave it out and the type changes, the new list starts empty. After a change to `include` without `workspace_ids`, the destination doesn't cover any workspace until one is added. After a change to `exclude` without `workspace_ids`, it covers every workspace.
An ID sent more than once is added once. An archived workspace can't be added to a list. An update can keep an archived workspace that is already on the list.
- `display_name: optional string or null`
Human-readable name for the destination. Optional. 1 to 255 characters.
- `headers: optional map[string]`
Request headers that the API sends with every delivery, typically your collector's authentication header (for example `authorization`).
The API stores the values encrypted and never returns them. Reads show only `header_names`.
At most 20 headers. Names are at most 128 characters. Two names can't differ only in case. Values are printable ASCII, at most 4,096 characters, and can't begin or end with a space. Names and values together are at most 16,384 bytes.
Reserved names are rejected, for example `host`, `cookie`, `user-agent`, and names that start with `content-`, `proxy-`, `x-forwarded-`, or `anthropic-`. For this check, `_` in a name counts as `-`.
- `traces: optional BetaTelemetryDestinationTracesParams`
The settings for the traces that the destination receives. If you leave it out, every setting takes its default.
- `content_mode: optional BetaTelemetryDestinationContentMode or null`
What the exported spans contain. Defaults to `metadata_only` on create.
On update, `null` sets `metadata_only`.
- `"metadata_only"`
The spans contain identifiers, timing, status, token counts, and similar metadata. They don't contain prompt text, completion text, or tool inputs and outputs.
- `"content"`
The spans contain the same metadata as `metadata_only`, plus message and tool content.
An organization with a data-handling restriction, such as under HIPAA, can't choose this mode. The API exports only metadata for such an organization, even to a destination that already has `content`.
- `enabled: optional boolean`
Whether the destination receives traces. Defaults to true on create. It cannot be null.
- `endpoint_url: optional string or null`
The full URL of your collector's traces endpoint, for a collector that takes traces on a path other than `/v1/traces`. The API posts traces to it exactly as given and appends nothing.
The same rules as for `endpoint_url` apply, except that any path is allowed. It must have the same scheme, host, and port as `endpoint_url`. At most 2,048 characters.
On create, `null` is the same as leaving it out. On update, `null` removes it. The API then posts traces to `endpoint_url` with `/v1/traces` appended. A change of this URL alone keeps the registered headers.
maxLength: 2048
- `max_content_bytes: optional number or null`
The most bytes of content that one exported span can contain, from 1 up to the API's maximum. `null` sets no bound, so only the API's maximum applies.
On create, leaving it out is the same as `null`. The error for a value above the maximum states the maximum.
format: int32
### Returns
- `BetaTelemetryDestination object`
An OpenTelemetry destination: an OTLP/HTTP endpoint, the request headers sent with every delivery to it, what the exported spans contain, and which workspaces it covers. A destination belongs to an organization. A workspace's spans go to every enabled destination that covers it.
- `type: "telemetry_destination"`
- `id: string`
The unique ID of the destination (`tdst_...`).
- `created_at: string`
Time the destination was created.
format: date-time
- `delivery_health: BetaTelemetryDestinationDeliveryHealth`
The most recent delivery results for this destination.
- `last_error: string or null`
A message that describes the most recent failed delivery to the destination, or `null` if no delivery has failed yet.
Examples are `temporary DNS failure`, `TLS failure`, `timeout`, `connection failure`, `invalid address`, `HTTP error (status 503)`, and `redirect (status 301)`. The message is `invalid address` both for a hostname that doesn't exist and for an address that isn't publicly routable. It never contains the endpoint's response body, a header value, a network address, or TLS details.
`last_error` and `last_error_at` always change together. A later successful delivery doesn't clear them. If `last_success_at` is later than `last_error_at`, a delivery has succeeded since this failure.
See the [OpenTelemetry export guide](https://platform.claude.com/docs/en/manage-claude/opentelemetry?sdk_languages=http#delivery-errors) to learn the likely cause of each error.
- `last_error_at: string or null`
Time of the failure that `last_error` describes. Changes together with `last_error`. Null until a delivery first fails.
format: date-time
- `last_success_at: string or null`
Time of the most recent successful delivery to the destination, or `null` if no delivery has succeeded yet.
format: date-time
- `display_name: string or null`
Human-readable name for the destination. Null when none was set.
- `endpoint_url: string`
The base URL of the destination's OTLP/HTTP endpoint, exactly as registered.
The API appends the per-signal path, such as `/v1/traces`, on delivery, unless `traces.endpoint_url` is set.
- `header_names: array of string`
Names of the registered request headers. Header values are write-only and are never returned.
- `state: BetaTelemetryDestinationState`
Cut at 300 lines. The page has the rest.
No line in this hunk matches that.