Создать назначение для наблюдаемости
Создайте новое назначение для наблюдаемости. Разрешено не более 5 назначений каждого типа. По умолчанию используется рабочее пространство, заданное по умолчанию для аутентифицированной сущности; чтобы указать другое рабочее пространство, используйте поле
workspace_idв теле запроса. Требуется ключ управления.
yaml
/openapi/openapi.yaml post /observability/destinations
openapi: 3.1.0
info:
contact:
email: support@openrouter.ai
name: OpenRouter Support
url: https://openrouter.ai/docs
description: OpenAI-compatible API with additional OpenRouter features
license:
name: MIT
url: https://opensource.org/licenses/MIT
title: OpenRouter API
version: 1.0.0
servers:
- description: Production server
url: https://openrouter.ai/api/v1
x-speakeasy-server-id: production
security:
- apiKey: []
tags:
- description: API key management endpoints
name: API Keys
- description: Analytics and usage endpoints
name: Analytics
- description: Anthropic Messages endpoints
name: Anthropic Messages
- description: BYOK endpoints
name: BYOK
- description: Benchmarks endpoints
name: Benchmarks
- description: Chat completion endpoints
name: Chat
- description: Task classification market-share endpoints
name: Classifications
- description: Credit management endpoints
name: Credits
- description: >-
Public OpenRouter usage datasets. Data returned by these endpoints is
licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/):
reuse and republish it, including commercially, with attribution to
OpenRouter.
name: Datasets
- description: Text embedding endpoints
name: Embeddings
- description: Endpoint information
name: Endpoints
- description: Files endpoints
name: Files
- description: Generation history endpoints
name: Generations
- description: Guardrails endpoints
name: Guardrails
- description: Images endpoints
name: Images
- description: Model information endpoints
name: Models
- description: OAuth authentication endpoints
name: OAuth
- description: Observability endpoints
name: Observability
- description: Organization endpoints
name: Organization
- description: Presets endpoints
name: Presets
- description: Provider information endpoints
name: Providers
- description: Rerank endpoints
name: Rerank
- description: OpenAI-compatible Responses API endpoints
name: Responses
- description: SCIM endpoints
name: SCIM
- description: Speech-to-text endpoints
name: STT
x-displayName: Transcriptions
- description: Text-to-speech endpoints
name: TTS
x-displayName: Speech
- description: Video Generation endpoints
name: Video Generation
- description: Workspaces endpoints
name: Workspaces
- description: beta.Analytics endpoints
name: beta.Analytics
externalDocs:
description: OpenRouter Documentation
url: https://openrouter.ai/docs
paths:
/observability/destinations:
post:
tags:
- Observability
summary: Create an observability destination
description: >-
Create a new observability destination. A maximum of 5 destinations per
type is allowed. Defaults to the authenticated entity's default
workspace; use the `workspace_id` body field to scope to a different
workspace. [Management
key](/docs/guides/overview/auth/management-api-keys) required.
operationId: createObservabilityDestination
requestBody:
content:
application/json:
example:
config:
baseUrl: https://us.cloud.langfuse.com
publicKey: pk-l...EfGh
secretKey: sk-l...AbCd
name: Production Langfuse
type: langfuse
schema:
$ref: '#/components/schemas/CreateObservabilityDestinationRequest'
required: true
responses:
'201':
content:
application/json:
example:
data:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
baseUrl: https://us.cloud.langfuse.com
publicKey: pk-l...EfGh
secretKey: sk-l...AbCd
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Langfuse
privacy_mode: false
sampling_rate: 1
type: langfuse
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
schema:
$ref: '#/components/schemas/CreateObservabilityDestinationResponse'
description: Destination created successfully
'400':
content:
application/json:
example:
error:
code: 400
message: Invalid request parameters
schema:
$ref: '#/components/schemas/BadRequestResponse'
description: Bad Request - Invalid request parameters or malformed input
'401':
content:
application/json:
example:
error:
code: 401
message: Missing Authentication header
schema:
$ref: '#/components/schemas/UnauthorizedResponse'
description: Unauthorized - Authentication required or invalid credentials
'403':
content:
application/json:
example:
error:
code: 403
message: Only management keys can perform this operation
schema:
$ref: '#/components/schemas/ForbiddenResponse'
description: Forbidden - Authentication successful but insufficient permissions
'409':
content:
application/json:
example:
error:
code: 409
message: Resource conflict. Please try again later.
schema:
$ref: '#/components/schemas/ConflictResponse'
description: Conflict - Resource conflict or concurrent modification
'500':
content:
application/json:
example:
error:
code: 500
message: Internal Server Error
schema:
$ref: '#/components/schemas/InternalServerResponse'
description: Internal Server Error - Unexpected server error
components:
schemas:
CreateObservabilityDestinationRequest:
example:
config:
baseUrl: https://us.cloud.langfuse.com
publicKey: pk-l...EfGh
secretKey: sk-l...AbCd
name: Production Langfuse
type: langfuse
properties:
api_key_hashes:
description: >-
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.
example: null
items:
type: string
minItems: 1
type:
- array
- 'null'
broadcast_generation_cost:
default: false
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
default: false
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
default: false
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
additionalProperties: {}
description: >-
Provider-specific configuration. The shape depends on `type` and is
validated server-side.
example:
baseUrl: https://us.cloud.langfuse.com
publicKey: pk-l...EfGh
secretKey: sk-l...AbCd
type: object
enabled:
default: true
description: Whether this destination should be enabled immediately.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfigNullable'
name:
description: Human-readable name for the destination.
example: Production Langfuse
type: string
privacy_mode:
default: false
description: >-
When true, request/response bodies are not forwarded — only
metadata.
example: false
type: boolean
sampling_rate:
description: Sampling rate between 0.0001 and 1 (1 = 100%).
example: 1
format: double
type: number
type:
description: The destination type. Only stable destination types are accepted.
enum:
- arize
- braintrust
- clickhouse
- datadog
- grafana
- langfuse
- langsmith
- newrelic
- opik
- otel-collector
- posthog
- ramp
- s3
- sentry
- snowflake
- weave
- webhook
example: langfuse
type: string
workspace_id:
description: >-
Optional workspace ID. Defaults to the authenticated entity's
default workspace.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- type
- name
- config
type: object
CreateObservabilityDestinationResponse:
example:
data:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
baseUrl: https://us.cloud.langfuse.com
publicKey: pk-l...EfGh
secretKey: sk-l...AbCd
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Langfuse
privacy_mode: false
sampling_rate: 1
type: langfuse
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
data:
allOf:
- $ref: '#/components/schemas/ObservabilityDestination'
- description: The newly created observability destination.
required:
- data
type: object
BadRequestResponse:
description: Bad Request - Invalid request parameters or malformed input
example:
error:
code: 400
message: Invalid request parameters
properties:
error:
$ref: '#/components/schemas/BadRequestResponseErrorData'
openrouter_metadata:
additionalProperties: {}
type:
- object
- 'null'
user_id:
type:
- string
- 'null'
required:
- error
type: object
UnauthorizedResponse:
description: Unauthorized - Authentication required or invalid credentials
example:
error:
code: 401
message: Missing Authentication header
properties:
error:
$ref: '#/components/schemas/UnauthorizedResponseErrorData'
openrouter_metadata:
additionalProperties: {}
type:
- object
- 'null'
user_id:
type:
- string
- 'null'
required:
- error
type: object
ForbiddenResponse:
description: Forbidden - Authentication successful but insufficient permissions
example:
error:
code: 403
message: Only management keys can perform this operation
properties:
error:
$ref: '#/components/schemas/ForbiddenResponseErrorData'
openrouter_metadata:
additionalProperties: {}
type:
- object
- 'null'
user_id:
type:
- string
- 'null'
required:
- error
type: object
ConflictResponse:
description: Conflict - Resource conflict or concurrent modification
example:
error:
code: 409
message: Resource conflict. Please try again later.
properties:
error:
$ref: '#/components/schemas/ConflictResponseErrorData'
openrouter_metadata:
additionalProperties: {}
type:
- object
- 'null'
user_id:
type:
- string
- 'null'
required:
- error
type: object
InternalServerResponse:
description: Internal Server Error - Unexpected server error
example:
error:
code: 500
message: Internal Server Error
properties:
error:
$ref: '#/components/schemas/InternalServerResponseErrorData'
openrouter_metadata:
additionalProperties: {}
type:
- object
- 'null'
user_id:
type:
- string
- 'null'
required:
- error
type: object
ObservabilityFilterRulesConfigNullable:
description: Optional structured filter rules controlling which events are forwarded.
example: null
properties:
enabled:
default: true
type: boolean
groups:
items:
$ref: '#/components/schemas/ObservabilityFilterRuleGroup'
type: array
required:
- groups
type:
- object
- 'null'
ObservabilityDestination:
discriminator:
mapping:
arize:
$ref: '#/components/schemas/ObservabilityArizeDestination'
braintrust:
$ref: '#/components/schemas/ObservabilityBraintrustDestination'
clickhouse:
$ref: '#/components/schemas/ObservabilityClickhouseDestination'
datadog:
$ref: '#/components/schemas/ObservabilityDatadogDestination'
grafana:
$ref: '#/components/schemas/ObservabilityGrafanaDestination'
langfuse:
$ref: '#/components/schemas/ObservabilityLangfuseDestination'
langsmith:
$ref: '#/components/schemas/ObservabilityLangsmithDestination'
newrelic:
$ref: '#/components/schemas/ObservabilityNewrelicDestination'
opik:
$ref: '#/components/schemas/ObservabilityOpikDestination'
otel-collector:
$ref: '#/components/schemas/ObservabilityOtelCollectorDestination'
posthog:
$ref: '#/components/schemas/ObservabilityPosthogDestination'
ramp:
$ref: '#/components/schemas/ObservabilityRampDestination'
s3:
$ref: '#/components/schemas/ObservabilityS3Destination'
sentry:
$ref: '#/components/schemas/ObservabilitySentryDestination'
snowflake:
$ref: '#/components/schemas/ObservabilitySnowflakeDestination'
weave:
$ref: '#/components/schemas/ObservabilityWeaveDestination'
webhook:
$ref: '#/components/schemas/ObservabilityWebhookDestination'
propertyName: type
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
baseUrl: https://us.cloud.langfuse.com
publicKey: pk-l...EfGh
secretKey: sk-l...AbCd
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Langfuse
privacy_mode: false
sampling_rate: 1
type: langfuse
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
oneOf:
- $ref: '#/components/schemas/ObservabilityArizeDestination'
- $ref: '#/components/schemas/ObservabilityBraintrustDestination'
- $ref: '#/components/schemas/ObservabilityClickhouseDestination'
- $ref: '#/components/schemas/ObservabilityDatadogDestination'
- $ref: '#/components/schemas/ObservabilityGrafanaDestination'
- $ref: '#/components/schemas/ObservabilityLangfuseDestination'
- $ref: '#/components/schemas/ObservabilityLangsmithDestination'
- $ref: '#/components/schemas/ObservabilityNewrelicDestination'
- $ref: '#/components/schemas/ObservabilityOpikDestination'
- $ref: '#/components/schemas/ObservabilityOtelCollectorDestination'
- $ref: '#/components/schemas/ObservabilityPosthogDestination'
- $ref: '#/components/schemas/ObservabilityRampDestination'
- $ref: '#/components/schemas/ObservabilityS3Destination'
- $ref: '#/components/schemas/ObservabilitySentryDestination'
- $ref: '#/components/schemas/ObservabilitySnowflakeDestination'
- $ref: '#/components/schemas/ObservabilityWeaveDestination'
- $ref: '#/components/schemas/ObservabilityWebhookDestination'
BadRequestResponseErrorData:
description: Error data for BadRequestResponse
example:
code: 400
message: Invalid request parameters
properties:
code:
type: integer
message:
type: string
metadata:
additionalProperties: {}
type:
- object
- 'null'
required:
- code
- message
type: object
UnauthorizedResponseErrorData:
description: Error data for UnauthorizedResponse
example:
code: 401
message: Missing Authentication header
properties:
code:
type: integer
message:
type: string
metadata:
additionalProperties: {}
type:
- object
- 'null'
required:
- code
- message
type: object
ForbiddenResponseErrorData:
description: Error data for ForbiddenResponse
example:
code: 403
message: Only management keys can perform this operation
properties:
code:
type: integer
message:
type: string
metadata:
additionalProperties: {}
type:
- object
- 'null'
required:
- code
- message
type: object
ConflictResponseErrorData:
description: Error data for ConflictResponse
example:
code: 409
message: Resource conflict. Please try again later.
properties:
code:
type: integer
message:
type: string
metadata:
additionalProperties: {}
type:
- object
- 'null'
required:
- code
- message
type: object
InternalServerResponseErrorData:
description: Error data for InternalServerResponse
example:
code: 500
message: Internal Server Error
properties:
code:
type: integer
message:
type: string
metadata:
additionalProperties: {}
type:
- object
- 'null'
required:
- code
- message
type: object
ObservabilityFilterRuleGroup:
example:
logic: and
rules:
- field: model
operator: equals
value: openai/gpt-4o
properties:
logic:
default: and
enum:
- and
- or
type: string
rules:
items:
properties:
field:
enum:
- model
- provider
- session_id
- user_id
- api_key_name
- finish_reason
- input
- output
- total_cost
- total_tokens
- prompt_tokens
- completion_tokens
type: string
operator:
enum:
- equals
- not_equals
- contains
- not_contains
- regex
- starts_with
- ends_with
- gt
- lt
- gte
- lte
- exists
- not_exists
type: string
value:
anyOf:
- type: string
- type: number
required:
- field
- operator
type: object
type: array
required:
- rules
type: object
ObservabilityArizeDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: arize_...AbCd
baseUrl: https://otlp.arize.com
modelId: openrouter-prod
spaceKey: space_...EfGh
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Arize
privacy_mode: false
sampling_rate: 1
type: arize
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
minLength: 1
type: string
baseUrl:
default: https://otlp.arize.com
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
modelId:
description: The name of the tracing project in Arize AX
minLength: 1
type: string
spaceKey:
minLength: 1
type: string
required:
- apiKey
- spaceKey
- modelId
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- arize
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityBraintrustDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: sk-...AbCd
baseUrl: https://api.braintrust.dev
projectId: proj_...
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Braintrust
privacy_mode: false
sampling_rate: 1
type: braintrust
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
minLength: 1
type: string
baseUrl:
default: https://api.braintrust.dev
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
projectId:
minLength: 1
type: string
required:
- apiKey
- projectId
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- braintrust
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityClickhouseDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
database: analytics
host: https://clickhouse.example.com:8123
password: '********'
table: OPENROUTER_TRACES
username: default
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production ClickHouse
privacy_mode: false
sampling_rate: 1
type: clickhouse
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
database:
minLength: 1
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
host:
minLength: 1
type: string
password:
minLength: 1
type: string
table:
default: OPENROUTER_TRACES
type: string
username:
description: >-
If you have not set a specific username in ClickHouse, simply
type in 'default' below.
minLength: 1
type: string
required:
- host
- database
- username
- password
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- clickhouse
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityDatadogDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: '************...AbCd'
mlApp: my-llm-app
url: https://api.us5.datadoghq.com
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Datadog
privacy_mode: false
sampling_rate: 1
type: datadog
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
description: >-
Datadog API key must have LLM Observability permissions. Create
at:
minLength: 1
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
mlApp:
description: Name to identify your application in Datadog LLM Observability
minLength: 1
type: string
url:
default: https://api.us5.datadoghq.com
description: >-
Datadog API URL for your region (e.g.,
https://api.datadoghq.com, https://api.us3.datadoghq.com,
https://api.datadoghq.eu)
type: string
required:
- apiKey
- mlApp
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- datadog
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityGrafanaDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: glc_...AbCd
baseUrl: https://otlp-gateway-prod-us-west-0.grafana.net
instanceId: '123456'
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Grafana
privacy_mode: false
sampling_rate: 1
type: grafana
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
minLength: 1
type: string
baseUrl:
default: https://otlp-gateway-prod-us-west-0.grafana.net
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
instanceId:
minLength: 1
type: string
required:
- apiKey
- instanceId
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- grafana
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityLangfuseDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
baseUrl: https://us.cloud.langfuse.com
publicKey: pk-l...EfGh
secretKey: sk-l...AbCd
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Langfuse
privacy_mode: false
sampling_rate: 1
type: langfuse
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
baseUrl:
default: https://us.cloud.langfuse.com
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
publicKey:
minLength: 1
type: string
secretKey:
minLength: 1
type: string
required:
- secretKey
- publicKey
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- langfuse
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityLangsmithDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: lsv2_...AbCd
endpoint: https://api.smith.langchain.com
project: main
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production LangSmith
privacy_mode: false
sampling_rate: 1
type: langsmith
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
minLength: 1
type: string
endpoint:
default: https://api.smith.langchain.com
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
project:
default: main
description: >-
The name for this project, such as pr-openrouter-demo. Defaults
to "main" if not set.
minLength: 1
type: string
workspaceId:
description: >-
Required for org-scoped API keys. Find this in your LangSmith
workspace settings.
type: string
required:
- apiKey
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- langsmith
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityNewrelicDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
licenseKey: '****...AbCd'
region: us
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production New Relic
privacy_mode: false
sampling_rate: 1
type: newrelic
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
licenseKey:
minLength: 1
type: string
region:
default: us
enum:
- us
- eu
type: string
required:
- licenseKey
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- newrelic
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityOpikDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: '****...AbCd'
projectName: openrouter-prod
workspace: my-workspace
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Opik
privacy_mode: false
sampling_rate: 1
type: opik
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
minLength: 1
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
projectName:
minLength: 1
type: string
workspace:
minLength: 1
type: string
required:
- apiKey
- workspace
- projectName
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- opik
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityOtelCollectorDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
endpoint: https://otel.example.com:4318
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production OTel Collector
privacy_mode: false
sampling_rate: 1
type: otel-collector
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
endpoint:
type: string
headers:
additionalProperties:
type: string
description: >-
Custom HTTP headers as a JSON object. For Axiom, use
{"Authorization": "Bearer xaat-xxx", "X-Axiom-Dataset":
"your-dataset"}
type: object
required:
- endpoint
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- otel-collector
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityPosthogDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: phc_...AbCd
endpoint: https://us.i.posthog.com
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production PostHog
privacy_mode: false
sampling_rate: 1
type: posthog
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
minLength: 1
type: string
endpoint:
default: https://us.i.posthog.com
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
required:
- apiKey
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- posthog
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityRampDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: rmp_...AbCd
baseUrl: https://api.ramp.com/developer/v1/ai-usage/openrouter
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Ramp
privacy_mode: false
sampling_rate: 1
type: ramp
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
description: Generate this in your Ramp integration settings.
minLength: 1
type: string
baseUrl:
default: https://api.ramp.com/developer/v1/ai-usage/openrouter
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to Ramp.
type: object
required:
- apiKey
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- ramp
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityS3Destination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
accessKeyId: AKIA...AbCd
bucketName: openrouter-traces
secretAccessKey: '****...EfGh'
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production S3
privacy_mode: false
sampling_rate: 1
type: s3
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
accessKeyId:
minLength: 1
type: string
bucketName:
minLength: 1
type: string
endpoint:
description: >-
Only for S3-compatible services like Cloudflare R2
(https://account-id.r2.cloudflarestorage.com) or MinIO. Leave
blank for standard AWS S3.
format: uri
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
pathTemplate:
default: '{prefix}/{date}'
description: >-
Template for S3 object path. The filename
({traceId}-{timestamp}.json) is automatically appended.
Available variables: {prefix}, {date}, {year}, {month}, {day},
{apiKeyName}
type: string
prefix:
default: openrouter-traces
type: string
region:
type: string
secretAccessKey:
minLength: 1
type: string
sessionToken:
type: string
required:
- bucketName
- accessKeyId
- secretAccessKey
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- s3
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilitySentryDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
dsn: https://abc123@o0.ingest.sentry.io/0
otlpEndpoint: https://o0.ingest.sentry.io/api/0/otlp
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Sentry
privacy_mode: false
sampling_rate: 1
type: sentry
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
dsn:
minLength: 1
pattern: ^https:\/\/([^:@]+)(?::[^@]*)?@([^/]+)(?:\/[^/]+)*\/(\d+)\/?$
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
otlpEndpoint:
type: string
required:
- otlpEndpoint
- dsn
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- sentry
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilitySnowflakeDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
account: xy12345.us-east-1
token: '****...AbCd'
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Snowflake
privacy_mode: false
sampling_rate: 1
type: snowflake
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
account:
maxLength: 255
minLength: 1
pattern: ^[a-zA-Z0-9_]+(?:[.-][a-zA-Z0-9_]+)*$
type: string
database:
default: SNOWFLAKE_LEARNING_DB
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
schema:
default: PUBLIC
type: string
table:
default: OPENROUTER_TRACES
type: string
token:
minLength: 1
type: string
warehouse:
default: COMPUTE_WH
type: string
required:
- account
- token
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- snowflake
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityWeaveDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
apiKey: '****...AbCd'
baseUrl: https://trace.wandb.ai
entity: my-team
project: openrouter-prod
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Weave
privacy_mode: false
sampling_rate: 1
type: weave
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
apiKey:
minLength: 1
type: string
baseUrl:
default: https://trace.wandb.ai
type: string
entity:
minLength: 1
type: string
headers:
additionalProperties:
type: string
description: Custom HTTP headers to include in requests to this destination.
type: object
project:
minLength: 1
type: string
required:
- apiKey
- entity
- project
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- weave
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityWebhookDestination:
example:
api_key_hashes: null
broadcast_generation_cost: false
broadcast_generation_identity: false
broadcast_generation_request_context: false
config:
url: https://example.com/openrouter-events
created_at: '2025-08-24T10:30:00Z'
enabled: true
filter_rules: null
id: 99999999-aaaa-bbbb-cccc-dddddddddddd
name: Production Webhook
privacy_mode: false
sampling_rate: 1
type: webhook
updated_at: '2025-08-24T15:45:00Z'
workspace_id: 550e8400-e29b-41d4-a716-446655440000
properties:
api_key_hashes:
description: >-
Optional allowlist of OpenRouter API key hashes (`api_keys.hash`)
whose traffic is forwarded to this destination. `null` means all
keys.
example: null
items:
type: string
type:
- array
- 'null'
broadcast_generation_cost:
description: When true, include cost and billing generation metadata.
example: false
type: boolean
broadcast_generation_identity:
description: When true, include identity generation metadata.
example: false
type: boolean
broadcast_generation_request_context:
description: When true, include request-context generation metadata.
example: false
type: boolean
config:
properties:
headers:
additionalProperties:
type: string
type: object
method:
default: POST
enum:
- POST
- PUT
type: string
url:
type: string
required:
- url
type: object
created_at:
description: ISO timestamp of when the destination was created.
example: '2025-08-24T10:30:00Z'
type: string
enabled:
description: Whether this destination is currently enabled.
example: true
type: boolean
filter_rules:
$ref: '#/components/schemas/ObservabilityFilterRulesConfig'
id:
description: Stable public identifier for this destination.
example: 99999999-aaaa-bbbb-cccc-dddddddddddd
format: uuid
type: string
name:
description: Human-readable name for the destination.
example: Production Langfuse
type:
- string
- 'null'
privacy_mode:
description: >-
When true, request/response bodies are not forwarded to this
destination — only metadata.
example: false
type: boolean
sampling_rate:
description: >-
Sampling rate for events sent to this destination, between 0.0001
and 1 (1 = 100%).
example: 1
format: double
type: number
type:
enum:
- webhook
type: string
updated_at:
description: ISO timestamp of when the destination was last updated.
example: '2025-08-24T15:45:00Z'
type: string
workspace_id:
description: ID of the workspace this destination belongs to.
example: 550e8400-e29b-41d4-a716-446655440000
format: uuid
type: string
required:
- id
- workspace_id
- name
- enabled
- privacy_mode
- broadcast_generation_cost
- broadcast_generation_identity
- broadcast_generation_request_context
- sampling_rate
- api_key_hashes
- filter_rules
- created_at
- updated_at
- type
- config
type: object
ObservabilityFilterRulesConfig:
description: Optional structured filter rules controlling which events are forwarded.
example: null
properties:
enabled:
default: true
type: boolean
groups:
items:
$ref: '#/components/schemas/ObservabilityFilterRuleGroup'
type: array
required:
- groups
type:
- object
- 'null'
securitySchemes:
apiKey:
description: API key as bearer token in Authorization header
scheme: bearer
type: http