You are an org admin standing in front of a fresh LangWatch deployment. By the end of this page you will have:Documentation Index
Fetch the complete documentation index at: https://langwatch.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
- Published a default Routing Policy so developers can sign in via
langwatch login. - Configured an Ingestion Source that lands telemetry from your gateway (or any OTLP-compatible upstream) in the unified trace store.
- Imported the AI Tools Portal starter pack so every developer’s
/mepage renders a real catalog instead of an empty state. - Invited a colleague through
/settings/members, watched their first request land in/governance, and written aspend_spikerule that will alert when their daily spend doubles.
Pairs with: Overview for the bigger picture (license tiers, two personas, mermaid architecture) and Control plane & integration tiers for the navigation map across surfaces.
Step 1: Sign in as the first admin
Open your LangWatch deployment in a browser. The first user to sign in becomes the organization admin automatically (theADMIN org role plus an org-scoped RoleBinding).
After sign-in you’ll land on /governance (the org governance home, see the control-plane page for how the daily-use vs admin-authoring split works).
Step 2: Publish your first Routing Policy
Routing Policies are the gateway’s per-virtual-key behaviour bundle: which providers to try first, what fallback chain to follow on outage, what models are allowed, what toolspolicy_rules denies. Every Personal Virtual Key minted on first developer sign-in binds to your org’s default routing policy, so without a default policy, langwatch login returns:
- Navigate to Settings → Routing Policies (
/settings/routing-policies). - Click + New routing policy.
- Pick a recommended starter shape, for most orgs, “Anthropic primary, OpenAI fallback, prompt caching on” works on day one.
- Tick Mark as default before saving.
policy_rules.tools.deny) lives in Routing Policies.
Step 3: Stand up an Ingestion Source
Ingestion Sources are how telemetry from anything outside the gateway lands in your unified trace store: another team’s OTLP collector, a Workato webhook, an S3 NDJSON drop, or Microsoft Copilot Studio audit logs. For a brand-new org, the cheapest first source isotel_generic, it’s available on the Apache 2.0 open-core floor (no Enterprise license required) and accepts any OTLP/HTTP push:
- Navigate to Settings → AI Governance → Ingestion Sources (
/settings/governance/ingestion-sources). - Click + New source, pick Generic OTLP (
otel_generic), fill the form, choosethirty_daysretention. - The backend mints a
lw_is_<base64url>ingest secret and shows it once in a one-time-reveal modal, copy it now. The list endpoint never returns it again. - Paste the secret into the upstream platform’s OTLP exporter as
Authorization: Bearer lw_is_<secret>. The receiver endpoint is on the same host as the rest of LangWatch.
active on the first received event. The full per-platform setup (Cowork, Workato, S3, Copilot Studio, OpenAI/Anthropic compliance APIs) lives in Ingestion Sources: most are available on Enterprise plans.
If no upstream is ready yet, skip this step. Your gateway itself is an implicit source: every Personal VK developer makes adds spans to the same trace store via the gateway’s own pipeline.
Step 4: Import the AI Tools Portal starter pack
The AI Tools Portal is the card grid every developer sees on/me. A fresh org has an empty catalog; the admin editor at /settings/governance/tool-catalog shows you a one-click Import starter pack CTA on first visit:
- Navigate to Settings → AI Governance → Tool catalog (
/settings/governance/tool-catalog). - Click Import starter pack.
- Coding assistants: Claude Code, Copilot, Cursor, Codex.
- Model providers: OpenAI, Anthropic, Bedrock, Gemini.
- External tools: empty (admins fill these in per-org with internal links).
Step 5: Invite a developer
A LangWatch org with one admin is not a particularly useful org. Invite a colleague:- Navigate to Settings → Members (
/settings/members). - Click + Add members.
- Type their email, pick a role (
Memberfor most cases,Adminif they should help configure the org), and pick which teams they belong to. - Click Send invites.
Step 6: Watch the first telemetry land
After your colleague runslangwatch login and makes one Claude Code request, two surfaces should update within seconds:
/governance, the governance home shows org-wide spend, anomalies, ingestion-source health, per-user breakdown./settings/audit-log, the audit log records every governance mutation (member invited, routing policy published, ingestion source created, virtual key minted, budget created…) with timestamp, actor, target kind, target ID, and IP.
Step 7: Set an org-wide budget ceiling
Budgets are the gateway’s hard cost gate. With a default routing policy in place, you can attach budgets at four scopes: organization, team, project, and principal. Org-wide is the broadest safety net, set this first if your org doesn’t yet have per-team budgets dialled in.- Navigate to Gateway → Budgets under any project (
/<project>/gateway/budgets). - Click + New budget.
- Pick Organization, all AI spend in the Scope dropdown. The picker also offers Team, Project, and Principal scopes for narrower caps.
- Pick a window (
Per calendar monthis the default), a USD limit, and anOn breachaction (Blockrejects requests at the limit,Warntags responses but keeps serving). - Click Create budget.
gatewayBudgets.create row (the tRPC mutation) and a gateway.budget.created row (the gateway domain event), both stamped with the same target ID for cross-system correlation.
The deep reference for budget shape, fallback semantics, and the WARN response tag header lives in Budgets.
Step 8: Write your first anomaly rule
Budgets enforce at the limit. Anomaly rules detect before it, the patterns that precede a breach (spend spike, geo-mismatch, off-hours usage). The reactor evaluatesspend_spike rules live today; other rule types are preview-only (the coverage table is honest about which is which).
Write a starter spend_spike rule:
- Navigate to Settings → AI Governance → Anomaly Rules (
/settings/governance/anomaly-rules). - Click + New anomaly rule.
- Fill in:
- Name:
Daily spend doubles vs last week - Severity:
warning - Rule type:
spend_spike - Scope:
organization - Threshold config:
- Name:
- Click Create rule.
AnomalyAlert row visible in /governance and surfaces it in the activityMonitor.recentAnomalies procedure.
Where to next
- Tighten the privacy posture: No-spy mode drops conversational content (prompts, completions, system messages) from spans before they hit ClickHouse. Three modes (
full,strip_io,strip_all); the metadata for cost attribution + governance + debugging-by-shape stays. - Export to your SIEM: every event is OCSF v1.1 mapped and replayable to a downstream SIEM (Splunk, Datadog, Sentinel) via the OCSF read API. See Compliance architecture.
- Ingest from another platform: the Ingestion Sources index has per-platform setup guides for Cowork, Workato, S3 NDJSON, Microsoft Copilot Studio, OpenAI/Anthropic compliance APIs.
- Delegate admin authority without giving full admin: RBAC roles lets you build custom roles that grant specific governance permissions (e.g.
aiTools:manageonly) withoutorganization:manage.
Common first-day errors
| Symptom | Likely cause | Fix |
|---|---|---|
Developer sees 409 no_default_routing_policy on langwatch login | Step 2 skipped or no policy marked default | Routing Policies: pick one, tick Mark as default. |
/me shows “your IT team is still setting things up” empty state | Step 4 skipped | Open /settings/governance/tool-catalog → Import starter pack. |
Ingestion source sits at awaiting_first_event forever | Source-type doesn’t have a wired adapter yet | Ingestion Sources index → State of each receiver: three rows are setup-contract-only as of this release. |
/governance doesn’t appear in your sidebar | Org’s setup-state OR-of-flags hasn’t tripped yet | Need any 3 of 5: Personal VKs, Routing Policies, Ingestion Sources, Anomaly Rules, Recent activity (30d). After Steps 2–7 above, you’ll have 4. |
Member colleague got an Access Restricted page on /settings/audit-log | Working as designed, audit log is admin-only | Either elevate them to Admin or grant a custom role with organization:manage (delegable via the CustomRolePermissions JSON column). |