Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · api

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.

Recorded here
Lines+3,242added
Lines−0removed
From line — no hunk to open at
First seen 14 Oct 2026 this site's first read of the page
Recorded edits4to this page, all time

# 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 page
/
lines

A 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.

Feedback