Skip to main content
Firedog sits in front of your existing LLM calls. You keep calling an OpenAI-compatible endpoint; the only change is the base URL (your in-VPC collector) and a little attribution context. The collector forwards the call to the upstream provider, prices it, writes the full record to Postgres in your VPC, and emits metadata to the dashboard.
This page assumes a collector is already reachable at a URL like https://collector.internal. For the split-plane picture — what stays in your VPC versus what reaches the cloud — see How it works and Security.
Your provider API key is forwarded by the collector to the upstream provider so the call can complete. It is used to authenticate to the provider and is never sent to Firedog cloud. See /security.

Prerequisites

1

A reachable collector

A collector running inside your VPC, exposing POST /v1/chat/completions. Note its URL.
2

An upstream provider key

The API key for whichever provider backs the models you call. The collector forwards it upstream; store it as an environment variable rather than inlining it.
3

A model string

One of the models Firedog prices — for example opus, sonnet, haiku, gcp/gemini-2.5-pro, gcp/gemini-2.0-flash-lite, or cerebras/llama3.1-8b.

Choose a path

The SDK mirrors the OpenAI client surface. You create a client pointed at your collector, set attribution defaults once, and pass per-call context on each request.
1

Install

2

Create a client

Point collectorUrl at your in-VPC collector. apiKey is forwarded to the upstream provider. defaultContext is attribution applied to every call from this client.
3

Make a priced, attributed call

Add per-call context to file this specific call under a workflow (and, optionally, a user).
A returned callId means the call was priced and recorded. It should appear on the dashboard Home view attributed to macro-desk / market-research shortly after.

What just happened

Priced

The collector priced the call from the shared pricing table using the model and token counts — no vendor invoice reverse-engineering required.

Attributed

Your team / workflow (and salted userHash) landed on the call, so it rolls up per desk and workflow on the dashboard.

Recorded in your VPC

The full record — prompt messages, any RAG chunks, and the response — was written to Postgres inside your VPC and never left it.

Metadata to the cloud

Only CallMetadata (ids, model, tokens, cost, latency, labels) reached the dashboard. No prompt or response content.

Next steps

Attribution

Model the team, workflow, and userId context so every dollar files under the right desk and run.

Security

See exactly what stays in your VPC, what the metadata contains, and how SensitivityProfile controls it.