Skip to content

Update a Trace Destination

PATCH/v1/traces/destinations/{destination_id}

Overview

Requires an owner, admin or developer session; API keys are rejected. Only an owner or admin can turn on include_content. Omitted fields keep their values; headers, when sent, replace every saved header. rotate_secret replaces a webhook's signing secret and returns the new one once. Turning include_content off also strips prompts and outputs from traces still waiting for this destination.

Authorization

Authorizationstring · headerRequired

Workspace session token sent as Bearer <token>. Authentication guide

Parameters

destination_idpath · stringRequired

Trace destination ID (trd_…).

Request Body

application/json
workspace_idstringRequired
namestring
endpointstring
encodingstring

Values: "json""protobuf"

headersobject

Replaces every saved header; omit to keep them.

public_keystring
secret_keystring
rotate_secretboolean

Replace a webhook's signing secret. The old one stops working at once.

sample_ratenumber

· Maximum 1

productsstring[]
Show nested fields

A product, as request logs, exports and trace destinations filter by it.

include_contentboolean

Owners and admins only, to turn on.

enabledboolean

Responses

200The updated destination. signing_secret is present only after rotate_secret.
application/json
idstringRequired

trd_ followed by 22 characters.

Example: "trd_example"

objectstringRequired

Values: "trace_destination"

workspace_idstringRequired

Example: "ws_example"

namestringRequired

Example: "Honeycomb"

kindstringRequired

webhook: signed JSON. otlp: OTLP/HTTP traces. langfuse: Langfuse's ingestion API.

Values: "webhook""otlp""langfuse"

Example: "otlp"

endpointstringRequired

The URL traces are sent to; for Langfuse, its host.

Example: "https://api.honeycomb.io/v1/traces"

encodingstringRequired

OTLP body encoding; json for other kinds.

Values: "json""protobuf"

Example: "protobuf"

header_namesstring[]Required

Names of the saved headers. Values are never returned.

Show nested fields

string

secret_hintstring | nullRequired

Last four characters of a webhook signing secret or Langfuse public key.

sample_ratenumberRequired

Share of requests sent. Sampling is per request, or per session_id when one is sent.

· Maximum 1

productsstring[]Required

Products traced; empty means all.

Show nested fields

A product, as request logs, exports and trace destinations filter by it.

include_contentbooleanRequired

Also send LLM prompts and outputs as text. Never applied under zero data retention.

enabledbooleanRequired
created_atstringRequired
updated_atstringRequired
last_deliveryobjectRequired
Show nested fields
statusstring | nullRequired

The most recent batch's outcome; null before the first.

Values: "delivered""retrying""dead"null

status_codeinteger | nullRequired

HTTP status the destination answered with.

Example: 200

errorstring | nullRequired

Example: null

attempted_atstring | nullRequired
delivered_atstring | nullRequired

The last successful delivery.

pendingintegerRequired

Traces waiting to be delivered or retried.

deadintegerRequired

Traces that could not be delivered, kept for 7 days.

signing_secretstring

A webhook's signing secret (whsec_…), returned only when created or rotated.

400Request validation failed.
application/json
errorobjectRequired
Show nested fields
codestringRequired
messagestringRequired
paramstring | null
request_idstring | null
metadataobject

Typed detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.

401Authentication is missing or invalid.
application/json
errorobjectRequired
Show nested fields
codestringRequired
messagestringRequired
paramstring | null
request_idstring | null
metadataobject

Typed detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.

403Authenticated principal lacks permission.
application/json
errorobjectRequired
Show nested fields
codestringRequired
messagestringRequired
paramstring | null
request_idstring | null
metadataobject

Typed detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.

404Resource was not found.
application/json
errorobjectRequired
Show nested fields
codestringRequired
messagestringRequired
paramstring | null
request_idstring | null
metadataobject

Typed detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.

500Internal server error.
application/json
errorobjectRequired
Show nested fields
codestringRequired
messagestringRequired
paramstring | null
request_idstring | null
metadataobject

Typed detail for some refusals. budget_exceeded (402): limit (key_budget or workspace_budget) and budget with scope, period, limit, usage and resets_at. key_limit_exceeded (402): limit key_spend_limit. access_denied (403): policy (workspace or key), rule (models, providers or products), product, provider and model.