One base URL swap, full observability, done
Plot twist: Helicone gives you 90% of Langfuse's value with literally one line changed. It's a proxy in front of OpenAI — swap the base URL, add an auth header, and every call shows up in a dashboard. Do not @ me on the elegance.
The Setup
Sign up, grab the key, change one config line. That's the entire integration. I had it wired into a Rebuild Relief lead-classification job in under five minutes.
# no install needed beyond the openai client you already have
npm install openai
# set the helicone key
export HELICONE_API_KEY="sk-helicone-..."The Money Pattern
The base URL swap is the whole trick. Custom properties let you tag each call with a user ID or deal ID — Pipedrive deal IDs in my case — and now your dashboard is segmented by customer for free.
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://oai.helicone.ai/v1",
defaultHeaders: {
"Helicone-Auth": `Bearer ${process.env.HELICONE_API_KEY}`,
"Helicone-Cache-Enabled": "true",
"Helicone-User-Id": "deal-9821",
"Helicone-Property-Source": "pipedrive-webhook",
},
});
const res = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [{ role: "user", content: "Summarise this claim note." }],
});The Catch
It's a proxy, which means an extra hop. You're adding 20-80ms of latency depending on region. For batch jobs and async workflows, who cares. For latency-sensitive streaming UX, you'll feel it.
The free tier caps requests per month. Fine for side projects, not fine for production traffic. The paid tiers are reasonable but it stops being free fast.
The Verdict
If you have an OpenAI app shipping right now without observability, Helicone is the fastest fix in the game. Five minutes from signup to dashboard. Langfuse is more powerful and self-hostable, but Helicone is the path of least resistance — and that's the one most teams actually take. Wire it in tonight.