Know what your AI costsper feature.
Spillr sits as a transparent proxy between your app and LLM providers. Log token counts and costs per feature label — without storing your prompts.
Works with OpenAI · Anthropic · Google Gemini · No prompt storage
// Change one line — your existing code stays the same.
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://proxy.spillr.io/v1', // ← Spillr proxy
defaultHeaders: {
'X-Spillr-Key': process.env.SPILLR_KEY,
'X-Spillr-Feature': 'email-summary', // ← tag by feature
},
});
const res = await client.chat.completions.create({
model: 'gpt-4.1-nano',
messages: [{ role: 'user', content: prompt }],
stream: true, // streaming works too
});How it works
Up and running in 2 minutes.
Point at Spillr
Change your OpenAI base URL to the Spillr proxy — or wrap any LLM call with track(). No other code changes.
Tag by feature
Add X-Spillr-Feature: email-summary to any call. Mix and match feature names however your app is structured.
Watch costs in real time
Open your dashboard to see cost per feature, per day. Set budgets, get alerts, block runaway spend.
Features
Everything you need. Nothing you don't.
Cost per feature
Tag any call with X-Spillr-Feature. See exactly how much email-summary, chat, or onboarding costs — not just a total bill.
Budget alerts & hard stop
Set monthly or daily limits per feature. Alert at 80%, hard stop at 100% with a 429 response — before costs spiral.
Streaming support
OpenAI and Anthropic streaming passes through unchanged. Token counts are extracted from the final SSE chunk.
OpenAI · Anthropic · Google
One proxy, three providers. Same headers, same dashboard, same budget logic — regardless of which model you call.
Zero prompt storage
Spillr logs token counts and costs. Never the prompt text, never the response content. What you send stays between you and your provider.
Proxy or SDK
Route via the proxy for hard stops and zero code changes. Or use the SDK wrapper to report usage async with full control.
Integration
Drop-in for any provider.
Spillr speaks the same API as each provider. Change the base URL and add two headers. That's it.
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://proxy.spillr.io/v1',
defaultHeaders: {
'X-Spillr-Key': process.env.SPILLR_KEY,
'X-Spillr-Feature': 'email-summary',
},
});
const res = await client.chat.completions.create({
model: 'gpt-4.1-nano',
messages: [{ role: 'user', content: prompt }],
});Pricing
Free during beta.
Full access while we build the billing layer. Pricing will be usage-based and announced before launch.
Beta access
$0 / month
- ✓Unlimited projects
- ✓Unlimited API calls tracked
- ✓Budget alerts (email)
- ✓Hard stop on budget exceeded
- ✓OpenAI, Anthropic & Google support
- ✓Streaming support
- ✓SDK + proxy integration
- ✓14-day cost history
Start monitoring in 2 minutes.
Sign up, create a project, change one line of code. Done.
Create free account →