Fixing OpenRouter & PostHog Observability 404: Destination Could Not Be Reached
· AI & ML · By Zeeshan Ahmad
Integrating LLM observability into production generative AI architectures gives teams full visibility into token usage, request latency, prompt costs, and model performance. OpenRouter supports direct metric broadcasting to PostHog, allowing seamless telemetry tracking for multi-model LLM traffic.
However, during initial configuration in OpenRouter's settings, developers frequently hit a blocking error:
Destination could not be reached (HTTP 404)
https://posthog.com/docs/api
This guide details the underlying root cause, explains the fundamental difference between PostHog key scopes, and provides step-by-step instructions to fix the connection.
#1. Root Cause Analysis
The 404 Destination could not be reached error occurs because OpenRouter Observability uses PostHog's event capture (ingestion) pipeline, which strictly requires a Project API Key (prefixed with phc_...), whereas developers often inadvertently supply a Personal API Key (prefixed with phx_...).
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ POSTHOG KEY ARCHITECTURE │
├──────────────────────────────────────────┬─────────────────────────────────────────────┤
│ Project API Key (phc_...) │ Personal API Key (phx_...) │
│ - Target: Ingestion Host │ - Target: REST Management API │
│ - Purpose: Event Capture & Telemetry │ - Purpose: Querying & Admin Operations │
│ - Endpoint: https://us.i.posthog.com │ - Endpoint: https://us.posthog.com/api/ │
└──────────────────────────────────────────┴─────────────────────────────────────────────┘
#Why PostHog Rejects the Request
- Scope & Security Boundary: A Personal API Key (
phx_...) grants wide administrative access to query datasets, modify flags, and manage project resources via PostHog's REST API. PostHog explicitly disallows event ingestion through management credentials. - Endpoint Mismatch: OpenRouter attempts to broadcast high-throughput LLM telemetry events to PostHog's ingestion servers. When sent with a management token or directed toward an API path (
/api/), the ingestion server rejects the request with HTTP status 404.
#2. API Key Type Comparison
Below is a detailed breakdown of PostHog API key types and their intended roles:
| Dimension | Project API Key (Required for OpenRouter) | Personal API Key (Incorrect Scope) |
|---|---|---|
| Prefix | phc_... | phx_... |
| Primary Scope | Event ingestion, LLM telemetry, & tracing | Management operations, querying, schema inspection |
| Access Model | Write-only / Ingestion-only | Full read/write REST API access |
| US Cloud Host | https://us.i.posthog.com | https://us.posthog.com/api/ |
| EU Cloud Host | https://eu.i.posthog.com | https://eu.posthog.com/api/ |
phx_... Personal API Keys in third-party event broadcasting or client-side telemetry setups. Doing so exposes full administrative control over your PostHog account while simultaneously failing event ingestion.#3. Step-by-Step Resolution Guide
Follow these steps to configure OpenRouter and PostHog observability correctly:
#Step 1: Copy Your Project API Key from PostHog
1. Log in to your account at PostHog Cloud.
2. Click on Project Settings (the gear icon at the bottom of the left navigation sidebar).
3. Scroll down to the Project API Key section.
4. Copy the key value (verify that it begins with phc_...).
phx_...).#Step 2: Configure OpenRouter Observability
1. Log in to your dashboard at OpenRouter. 2. Navigate to Settings > Observability (or Broadcast Settings). 3. Edit your PostHog destination:
- API Key: Paste your copied Project API Key (
phc_...). - Endpoint / Host URL: Set the ingestion host matching your PostHog region:
- US Cloud:
https://us.i.posthog.com - EU Cloud:
https://eu.i.posthog.com - Self-Hosted Instance:
https://your-instance-domain.com
#Step 3: Test and Save Connection
1. Click Test Connection in OpenRouter. 2. Confirm the test returns a successful connection response. 3. Click Save Settings.
#4. Security & Best Practices
phc_...) are write-only ingestion keys, they cannot be abused to read your historical analytics data or alter workspace settings.