> ## 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.

# Open-core licensing

> LangWatch is open-core. The Apache 2.0 floor covers Personal Virtual Keys, the AI Tools Portal, Routing Policies, and CLI debugging. Multi-source ingestion, anomaly detection, OCSF, SIEM export, and extended retention require an Enterprise plan.

LangWatch is open-core. Some governance surfaces work for every self-hosted deployment under the **Apache 2.0** license; others require a paid **Enterprise** plan. Use this map when planning a rollout:

| Surface                                                             | License    | Notes                                                                                                                                                                                      |
| ------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [Personal IDE keys](/docs/ai-gateway/governance/personal-keys)           | Apache 2.0 | Always available. The Personal Virtual Key + `langwatch login` flow is the open-core floor.                                                                                                |
| [AI Tools Portal at `/me`](/docs/ai-governance/personal-portal/overview) | Apache 2.0 | Always available. Catalog editor at `/settings/governance/tool-catalog`, three tile classes, admin-curated.                                                                                |
| [Routing Policies](/docs/ai-gateway/governance/routing-policies)         | Apache 2.0 | Always available. The gateway-side policy chain is core.                                                                                                                                   |
| [CLI debugging](/docs/ai-governance/cli-debug)                           | Apache 2.0 | Always available. CLI 409, 401, 403 catalog.                                                                                                                                               |
| [Ingestion Sources](/docs/ai-governance/ingestion-sources/index)         | Enterprise | The `otel_generic` source type at the platform default retention window is available on the Apache 2.0 floor; multiple sources and configurable retention require Enterprise.              |
| [Anomaly Rules](/docs/ai-governance/anomaly-rules)                       | Enterprise | Admin-curated detection rules + dispatch (Slack, PagerDuty, SIEM).                                                                                                                         |
| [Compliance architecture](/docs/ai-governance/compliance-architecture)   | Enterprise | OCSF, SIEM export, multi-class retention, tamper-evidence (post-GA follow-up).                                                                                                             |
| Gateway webhooks                                                    | Enterprise | Signed delivery of AI Gateway spend and budget events to your own systems, with retries, replay and a delivery log. This is the surface platforms meter and rebill their own customers on. |

In the LangWatch UI, Enterprise-only surfaces show an **"Available on Enterprise plans"** card with an upgrade CTA when the org isn't on an Enterprise plan; the same surfaces gray out the source-type dropdown to `otel_generic` for non-enterprise users.

## Per-file license headers

The repository tree is split 1:1 by license, so the directory a file lives in is its license:

| Path                                                  | License                   | SPDX identifier                   |
| ----------------------------------------------------- | ------------------------- | --------------------------------- |
| `sdks/typescript/`, `sdks/python/`, `mcp/typescript/` | MIT                       | `MIT`                             |
| Inside `platform/app/ee/`                             | Enterprise (LangWatch EE) | `LicenseRef-LangWatch-Enterprise` |
| Everything else                                       | Apache 2.0                | `Apache-2.0`                      |

The client SDKs are MIT so that integrating LangWatch never puts a copyleft
obligation on your own application. MIT still asks you to retain its copyright
and permission notice when you redistribute the SDK or a substantial portion of
it, which is the usual third-party-notices entry rather than a constraint on how
you license your own code. The rows are read most-specific
first: the SDK directories are MIT even though they sit outside `platform/app/ee/`.

The header is the first line of the file, written as `SPDX-License-Identifier: <identifier>` behind whatever the language uses for a line comment: `//` in TypeScript and Go, `#` in Python and YAML. It is a single line, no block comment, no preamble, no copyright assignment. Tooling (REUSE, GitHub linguist) reads SPDX identifiers natively, and contributors moving a file across the boundary flip one line to record the result. Recording it is not the same as making it true: the SPDX line states a file's license, it does not relicense existing contributions, so a move across the boundary needs the rights checked and any applicable notices preserved before the line changes. The Enterprise identifier is a `LicenseRef-*` because LangWatch EE is not a registered SPDX license; the canonical text lives in [`platform/app/ee/LICENSE.md`](https://github.com/langwatch/langwatch/blob/main/platform/app/ee/LICENSE.md), and the per-directory breakdown is in [`NOTICE`](https://github.com/langwatch/langwatch/blob/main/NOTICE).

The directory is what the license follows, read most-specific row first rather than as a single Apache-2.0-unless-`ee` rule. The SPDX header records the result per file, and files that predate the convention do not carry one yet.

## Enabling the Enterprise surface

Turning on the Enterprise feature surface takes a real signed license key. There is no environment-variable bypass. See [Editions and licensing](/docs/self-hosting/licensing) for how to request a key and where to set it.
