Tunnels are in alpha. To request access for your organization, contact our sales team.
How tunnels work
- An organization admin creates a tunnel in LangSmith.
- You run the connector inside your network and configure it with the tunnel’s ID, an API key, and one or more targets. A target is a name mapped to a private address, for example
litellmmapped tohttp://litellm.internal:4000. - The connector connects outbound to LangSmith over HTTPS (port 443). Nothing connects in to your network, and the connector exposes no ports.
- Each HTTP target gets a tunnel URL. You use that URL in LangSmith wherever you would use the service’s address.
- When a LangSmith feature calls a tunnel URL, LangSmith checks that the caller belongs to the tunnel’s organization and sends the request to the connector, which forwards it to the target.
Set up a tunnel
To create a tunnel, you need the Organization Admin or Organization Operator role. You also need a place inside your network to run the connector: a Kubernetes cluster or a Docker host that can reach your services and make outbound HTTPS connections.Open Tunnels settings
In LangSmith, go to Settings, then select Tunnels under Infrastructure.

Create the tunnel
Select Create tunnel. Enter a name and an optional description, then select Create tunnel.

Copy the connector configuration
The new tunnel shows Waiting for connector. Its Connector Configuration section shows the tunnel ID and the settings the connector needs, as environment variables or as a YAML file. Copy them, and replace the example targets with your own (see Targets).

Create an API key for the connector
In Settings > API Keys, create an organization-scoped service key with the Organization Admin or Organization Operator role. The connector uses this key to connect to LangSmith. Store it where your connector can read it, and do not commit it to source control.
Run the connector
Run the connector inside your network. If your organization is not in the GCP US region, set the endpoint to your region’s API URL:The connector honors
- Kubernetes (Helm)
- Docker
Store the API key in a Secret, then install the Add
langsmith-connector chart:--set config.endpoint=<endpoint> for a region other than GCP US. The chart mounts the key as a file and the connector reads it again on every reconnect, so you can rotate the key in the Secret without restarting the connector.Run a single replica. One connector already keeps two redundant connections to LangSmith.HTTPS_PROXY if your network requires an outbound proxy. Set LOG_LEVEL=debug to log every request it forwards. With Helm, set it through connector.deployment.extraEnv.Check that the tunnel is connected
Within a few seconds of the connector starting, the tunnel shows Connected and lists each target the connector serves, with its tunnel URL.
To check a target from your own machine, send a request to its tunnel URL with an API key for the organization:The response comes from your service. A request without a valid API key returns

403 with connection access denied.If the tunnel stays at Waiting for connector, check the connector’s logs. Each time the connector fails to connect, it logs a warning with the reason and retries. Common causes are an API key without the Organization Admin or Organization Operator role, a wrong tunnel ID, or a disabled tunnel.Targets
Each target is a name and an address:- Name: 1 to 63 characters. It starts with a lowercase letter and contains only lowercase letters, digits, and underscores.
- Address:
http://host:portorhttps://host:port, with no path. LangSmith can reach only HTTP and HTTPS targets.
helm upgrade.
Use a tunnel URL
Select Copy tunnel URL next to a target to copy its URL. Tunnel URLs look likehttps://<handle>.tunnels.smith.langchain.com, with the region in the domain for other regions (for example, tunnels.eu.smith.langchain.com). You can also list a tunnel’s targets and URLs with GET /v1/connections/{tunnel_id}/targets.
You can use a tunnel URL in place of a service address in:
- Model configurations and custom model endpoints, as the base URL. This covers the Playground, experiments, and online evaluators that use the model.
- LangSmith Fleet, as a model’s base URL or an MCP server URL.
- MCP servers that use OAuth, for the token endpoint. The authorization endpoint must stay reachable from the browser, so it cannot be a tunnel URL.
- Tunnel URLs use HTTPS only.
- Requests through a tunnel do not follow redirects.
- A model reached through a tunnel needs its own API key in its configuration. LLM auth proxy credentials are not sent through a tunnel.
- Your target must start responding within 30 seconds. A single request can stream for up to 1 hour, and request bodies can be up to 32 MiB.
Security
Outbound-only connection
The connector makes an outbound WebSocket connection over TLS to your region’s LangSmith API endpoint on port 443. You do not open inbound ports or change firewall rules for LangSmith, and the connector pod exposes no ports.Authentication and authorization
- Connector: The connector authenticates with an organization API key that has permission to connect tunnels. LangSmith accepts the connector only while the tunnel is enabled.
- Each request: LangSmith authorizes every request to a tunnel URL. The caller must be a LangSmith service acting for a member of the tunnel’s organization, or must present an API key for that organization. The tunnel must be enabled. A tunnel URL is not a secret and grants no access by itself.
What your network exposes
- LangSmith sends the connector only a target name. The connector looks the name up in its own configuration and refuses names it does not have, so LangSmith can reach only the targets you configure.
- The connector does not connect to cloud metadata addresses.
- For HTTP targets, the target’s host and port are shared with LangSmith so requests carry the right
Hostheader.
Headers
LangSmith removes its own credentials and identity headers before a request reaches your service:X-Service-Key, X-Api-Key, X-Tenant-Id, X-Organization-Id, X-User-Id, X-Data-Plane-Auth, Cookie, and any header that starts with X-Langsmith- or X-Langchain-. Authorization passes through, so a service that authenticates with a bearer token works without changes.
If your service authenticates with its own X-Api-Key or Cookie header, LangSmith features deliver the header you configure to your service. Headers named after LangSmith’s identity headers, such as X-Tenant-Id, never reach your service.
Encryption
- Traffic between LangSmith and the connector travels inside the TLS-encrypted WebSocket connection.
- LangSmith terminates TLS for tunnel URLs and handles each request in memory to route it to your connector.
- Between the connector and your service, use an
https://target to encrypt traffic. The connector verifies the service’s certificate against the system certificate authorities. To trust a private certificate authority, setSSL_CERT_FILEon the connector. Traffic tohttp://targets is not encrypted inside your network.
Logging and data storage
LangSmith does not log request or response bodies sent through a tunnel. For failed requests, LangSmith logs the tunnel, organization, target, status, and error. LangSmith stores only the routing information needed to reach your connector. The connector does not log request or response bodies either. By default it logs only failures, such as a target it cannot reach. At debug level, it also logs each request’s target, address, duration, and size.Revoke access
To stop LangSmith from reaching your services, disable or delete the tunnel in Settings > Tunnels. LangSmith then rejects requests to its tunnel URLs and refuses new connector connections. You can also stop the connector, or revoke its API key.Connect these docs to your agent of choice via MCP for real-time answers.

