Quickstart — your first trace, in three minutes.
Your Business is an LLM-observability platform. This guide walks you from npm install to seeing your first trace in the dashboard. It's the same five steps every new project runs through.
app.yourbusiness.com if you haven't yet, then grab the key from Settings → API keys.
1. Install the SDK
The TypeScript SDK is the most common starting point. Python, Go, and Rust SDKs are functionally identical — pick whichever matches your codebase.
bash$ npm install @yourbusiness/sdk $ # or pnpm / yarn / bun, all supported
2. Initialize tracing
Call trace.install() as early as possible in your boot sequence — typically the same file where you set up your HTTP server, queue worker, or function handler. The call is idempotent, so duplicate calls won't break anything.
typescriptimport { trace } from "@yourbusiness/sdk"; trace.install({ apiKey: process.env.YOUR BUSINESS_API_KEY, service: "sales-copilot", env: process.env.NODE_ENV ?? "development" });
That's the auto-instrumentation done. Every supported provider SDK (OpenAI, Anthropic, Gemini, Bedrock, Cohere, Mistral) is now wrapped — every messages.create() or equivalent call emits a span without further code changes.
3. Wrap a unit of work
Auto-instrumentation gives you provider-level spans. To get application-level spans (the "what was the user trying to do" view), wrap each meaningful unit of work with span().
typescriptimport { span } from "@yourbusiness/sdk"; export async function qualifyLead(account: Account) { return span("qualify_lead", async ({ tag }) => { tag({ customer_id: account.id, feature: "qualify" }); const profile = await crm.fetch(account); const response = await claude.messages.create({ model: "claude-opus-4-7", messages: [{ role: "user", content: prompt(profile) }] }); return response; }); }
customer_id. Almost every useful question you'll ask later — "which customer is most expensive?", "whose evals are regressing?", "where's the bill going?" — depends on it.
4. Verify in the dashboard
Run your service. Make a single request that hits the wrapped function. Open app.yourbusiness.com and you should see a trace for it within a second or two — including the LLM call, token counts, latency, and the tag you set.
What you'll see
Each trace has a root span (the wrapped function) with nested provider spans for every LLM and tool call inside it. Click into the trace to see the prompt, the response, the input/output tokens, and the dollar cost calculated using the live provider price list.
5. Add evals (optional, recommended)
Once you have a few hundred traces flowing, add evals. Start with factuality_v3 — it works out of the box for most assistant workloads.
typescriptimport { eval } from "@yourbusiness/sdk"; eval("factuality_v3", { on: "every_response", model: "claude-haiku-4-5", alert: { score: "< 0.85" } });
Evals run async in our cluster, so they don't add latency to your user request. Scores show up next to each trace in the dashboard within a minute. If a score drops below threshold, you'll get a Slack or PagerDuty alert (configured in Settings → Alerts).
API reference: span()
parent, kind, sampling, and timeout.async function, even if its body is short.
What to read next
You're set up. Three good follow-ups, depending on what's next on your list.