Skip to main content
POST
Create an observability destination

Authorizations

Authorization
string
header
required

API key as bearer token in Authorization header

Body

application/json
config
object
required

Provider-specific configuration. The shape depends on type and is validated server-side.

Example:
name
string
required

Human-readable name for the destination.

Example:

"Production Langfuse"

type
enum<string>
required

The destination type. Only stable destination types are accepted.

Available options:
arize,
braintrust,
clickhouse,
datadog,
grafana,
langfuse,
langsmith,
newrelic,
opik,
otel-collector,
posthog,
ramp,
s3,
sentry,
snowflake,
weave,
webhook
Example:

"langfuse"

api_key_hashes
string[] | null

Optional allowlist of OpenRouter API key hashes whose traffic is forwarded. null or omitted means all keys. Must contain at least one hash if provided. Every hash must belong to an API key in the destination's workspace; any other hash returns 400.

Minimum array length: 1
Example:

null

broadcast_generation_cost
boolean
default:false

When true, include cost and billing generation metadata.

Example:

false

broadcast_generation_cost_allocation
boolean
default:false

Beta. When true, include openrouter_cost_allocation: per-token-kind usage and cost, sent only when they reconcile with the billed cost.

Example:

false

broadcast_generation_identity
boolean
default:false

When true, include identity generation metadata.

Example:

false

broadcast_generation_request_context
boolean
default:false

When true, include request-context generation metadata.

Example:

false

enabled
boolean
default:true

Whether this destination should be enabled immediately.

Example:

true

filter_rules
object | null

Optional structured filter rules controlling which events are forwarded.

Example:

null

privacy_mode
boolean
default:false

When true, request/response bodies are not forwarded — only metadata.

Example:

false

regions
enum<string>[]

Data regions this destination applies to. eu is accepted as an alias for europe and normalizes to europe. Omitting this field defaults to ['global']; the array must be non-empty.

Minimum array length: 1

eu is accepted as an alias for europe and normalizes to europe.

Available options:
global,
europe,
us,
eu
Example:
sampling_rate
number<double>

Sampling rate between 0.0001 and 1 (1 = 100%).

Example:

1

workspace_id
string<uuid>

Optional workspace ID. Defaults to the authenticated entity's default workspace, or a workspace-scoped management key's own workspace.

Example:

"550e8400-e29b-41d4-a716-446655440000"

Response

Destination created successfully

data
object
required

The newly created observability destination.

Example: