Also check: Editions and licensing, Data and telemetry, Instant Evals, Environment variables.
The two hosts
Connect talks to two hosts, split by what the data is, so a network rule can allow one without the other and prove from the firewall that no content leaves.
The usage report and the license sync are two channels that are never merged: the report is optional and the sync is a license term. Data and telemetry covers both, and the usage report dictionary lists every field of the report.
What leaves the install
Each service states what it sends before you switch it on. Your traces, datasets, saved prompts and your own model provider keys stay on your infrastructure whichever services are on.Activate with a code
A fresh install starts on the open source baseline with no account and no license. LangWatch issues a license in one of two forms, and the install tells them apart by shape:- An activation code,
LW-XXXX-XXXX-XXXX-XXXX, single use by default. The install redeems it over outbound HTTPS toconnect.langwatch.ai, so it needs outbound access to that host. - A signed license key, a long base64 string also delivered as a
.langwatch-licensefile. It works offline.
LANGWATCH_LICENSE_KEY variable or app.license.key Helm value. See Editions and licensing for the full comparison.
- Open Settings, License.
- Choose Enter activation code, paste the code, and choose Activate License.
- The install posts the code to
connect.langwatch.aiand receives the signed license and its entitlements. The services the license names are on at once.
LANGWATCH_LICENSE_KEY or app.license.key instead redeems it once at startup. See An activation code in the variable.
The license refreshes on the daily sync from then on, so a renewal or a change of seats reaches the install without a new key by email. Refresh license on the same page fetches it now instead of waiting for the sync.
The paste and the file upload stay on the License page for an air-gapped install, which receives a signed license key from LangWatch and enters it with Enter license key or Upload license file. Neither needs a connection. The page detects the form, so a value pasted under the other option is still accepted. The install still sends the daily usage report unless you switch it off, see Air-gapped installs and existing licenses.
Endpoints and variables
The endpoints default to LangWatch’s own hosts, so you name them only when LangWatch gave you different ones. A default install sets none of these.
Both endpoints must be
https; plain http is accepted for a loopback host only, for a developer running both sides on one machine. Restart the app and the workers after changing any of them.
Outbound rules
Connect needs two destinations open, both on port 443:HTTPS_PROXY (and NO_PROXY for the hosts that skip it) on the app and the worker pods. The install sends its hosted calls and its license sync through the proxy when any of HTTPS_PROXY, HTTP_PROXY or NO_PROXY is set.
Settings, Checkup has a button that reaches both hosts from the install and, when one is blocked, names the host and port the rule has to allow.
The instance id
The instance id is a UUID the install mints into its own database the first time it needs one and never rewrites, so it survives restarts, backups and hostname changes. It carries no organization name. LangWatch binds your license to the first install that presents it. A second install running a copy of the database presents another id and is refused withconnect_wrong_instance. If you rebuilt or moved an install on purpose, ask LangWatch to reset the binding, or set LANGWATCH_CONNECT_INSTANCE_ID to the old id before the first boot of the new install.
What an admin sees in Settings, Connect
Settings, Connect is on a self-hosted install only, next to License and Checkup. Every member of the organization can open it; changing a service or the cap needs organization management rights.
Switching a service on or off takes effect within a minute, with no restart.
What does the license sync send
Two minutes after boot and once a day after that, the install posts toconnect.langwatch.ai: a license token derived from its signed license key (a hash, not the key itself), its instance id, the app version it runs, and two seat counts, members and lite members.
LangWatch answers with the current license for this install, signed by the same key pair that signed the one you activated. A renewed or changed license reaches the install this way, and the install applies it through the same validation a pasted key gets.
Seats
The licensed seat count is a hard cap: the seat past it is refused, on a connected license as on an offline one. To add seats, ask LangWatch. LangWatch changes the seats on your license, invoices the added seats prorated to the end of the term, and the install picks the new license up on the next sync or when an admin presses Refresh license on the License page. Existing members are never locked out by a seat change; only the next invitation past the cap is refused.License renewal
A renewed or reissued license reaches the install in the sync answer. There is no key to receive by email and paste, and Refresh license fetches it now. A delivered license that does not verify is not applied. The install keeps the license it has and shows the failure in Settings, Connect.Instant Evals through Connect
An install whose license names Instant Evals judges through LangWatch. The license turns them on, with no release flag to set. A self-hosted install cannot judge with a key of its own, so without Connect its eval functions are published as unavailable. Judging on your own infrastructure is planned for a later release. An organization whose admin switched it off publishes the eval functions as unavailable, so a query never comes back with judged columns that are all empty. When a sentence typed in trace search can’t be judged, the popover under the search bar says why:
On an install that judges through LangWatch, the “Instant Evals can’t run right now” popover also names both addresses, so check that they are still reachable.
With
RELEASE_INSTANT_EVALS=1 set, the four popovers above never show: a sentence that can’t be judged gets “Instant Evals can’t run right now” instead, whatever the reason. An install that judges through LangWatch needs no flag, so remove it there to get the popover that says why.
Judging is charged at the list rate, 0.0546 USD per million input tokens the judge reads, and counts against your cap. The 1 USD free budget of the Cloud free plan does not apply here: your commit and your cap govern instead. See Limits and cost for what a run reads and costs.
Managed models
With Managed models on, the LangWatch AI Gateway in your install can call a model LangWatch runs by spelling the model with alangwatch/ prefix:
langwatch/ prefix reaches the LangWatch slot. A model with another provider prefix, for example openai/gpt-5-mini, stays with that provider, including its retries. A bare model name never reaches LangWatch either. In an organization whose only provider is the LangWatch slot, the gateway refuses a bare name with model_not_recognized.
Calls served by the LangWatch slot are metered against the same cap as every other hosted service.
Air-gapped installs and existing licenses
An install whose license names no hosted service runs no license sync and calls no hosted service, and the licensed seat count is enforced as a hard cap. It still sends the daily usage report. Data and telemetry lists what else can leave on a user action. Upgrading to a release that carries Connect changes an existing offline license in no way: it verifies with the same key, enforces the same cap, and the usage report goes where it always went unless you switch it off. The signed license key is where you check it: decode it and look forconnectServices. A license without that field, which is every license issued before this release, reaches no hosted service.
For an install that must prove the absence rather than derive it, set app.connect.disabled: true (or LANGWATCH_CONNECT_DISABLED=true). It refuses every hosted call, the license sync and the usage report, whatever the license says.
Check the wiring
Settings, Checkup reports whether the install is correctly wired: the data stores, the license, the last sync, the last usage report, and a button that reaches both LangWatch hosts and names the host and port a rule has to allow.langwatch doctor prints the same rows from a terminal.