OpenRouter Broadcast
Configure OpenRouter Webhook Broadcast to send OTLP JSON request telemetry to SuperPenguin.
OpenRouter Broadcast sends completed request traces asynchronously, so it adds no inference latency and does not require a SuperPenguin SDK wrapper.
Configure the destination
- In SuperPenguin, open API Keys → Hosted OpenTelemetry → Add source.
- Choose OpenRouter Broadcast, name the source, and record the sampling rate and Privacy Mode setting you will use.
- Copy the endpoint and one-time headers JSON.
- In OpenRouter, open Settings → Observability, enable Broadcast, and edit Webhook.
- Set method to
POST, content type toapplication/json, and paste:
https://app.superpenguin.ai/api/otel/v1/traces{ "Authorization": "Bearer sp_..." }- Run Test Connection, save the destination, then make one model call.
- Back in SuperPenguin, confirm both Connection test received and First generation received. The empty connection test creates no request row.
Add business attribution
Send metadata on the OpenRouter request itself:
{
"model": "openai/gpt-4o",
"messages": [{ "role": "user", "content": "..." }],
"user": "customer_7f3a",
"session_id": "session_91b2",
"trace": {
"feature": "support_agent",
"team": "product",
"environment": "production",
"prompt_key": "support_reply",
"prompt_version": "3"
}
}OpenRouter maps user to user.id, session_id to session.id, and trace metadata to trace.metadata.*. SuperPenguin cannot infer business metadata that is absent from Broadcast.
Provider, model maker, and serving host
For openai/gpt-4o routed through OpenRouter:
| Dimension | Value |
|---|---|
ingest_origin | otel |
provider | openrouter |
model_vendor | openai |
upstream_provider | populated only from a qualified explicit OpenRouter upstream attribute |
model | normalized bare model name, such as gpt-4o |
An OpenRouter payload that says gen_ai.system=openai does not change the billed route to openai.
Cost behavior
- A reported total customer cost is stored as the final total, including an explicit zero/free call.
- A qualified separate-leg BYOK shape stores the OpenRouter fee plus upstream inference cost as the total and retains the upstream leg for audit.
- An already-total BYOK cost is never added to the upstream leg again.
- If no trustworthy cost exists, the existing SuperPenguin pricing catalog is used.
- A workspace custom-pricing override intentionally wins.
OpenRouter Broadcast and billing can answer different questions. For BYOK, OpenRouter may bill only a routing fee while the upstream provider invoices inference separately.
Sampling: Any rate is supported. Below 100%, users, features, tokens, counts, and attributed cost are incomplete. SuperPenguin does not extrapolate sampled dollars.
Privacy: Privacy Mode is optional. When off, OpenRouter sends prompt and completion content to the endpoint. This hosted cost path discards it, but it still traverses the receiver. Enable Privacy Mode if content must not be transmitted.
Duplicates: Do not send the same calls through both a SuperPenguin SDK wrapper and Broadcast unless both paths share a generation ID. Otherwise calls may be counted twice.
Billing: Broadcast is request telemetry, not a guaranteed full invoice feed. Sampling, credits, settlement, and BYOK can create differences. Connect the OpenRouter billing integration for reconciliation.