> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langchain.com/llms.txt
> Use this file to discover all available pages before exploring further.

# BYOC onboarding

> Set up a LangSmith BYOC data plane, from enabling BYOC on your organization to creating workspaces and connecting privately.

Before you start, review the [prerequisites](/langsmith/byoc#prerequisites).

<Steps>
  <Step title="Enable BYOC on your organization">
    Create an organization in LangSmith on AWS at [aws.smith.langchain.com](https://aws.smith.langchain.com), or reuse an existing one.

    Send your organization ID to the LangChain team to enable BYOC.
  </Step>

  <Step title="Create the IAM role">
    Apply the [`langsmith-byoc-role` Terraform module](https://github.com/langchain-ai/terraform/tree/main/modules/byoc/aws/langsmith-byoc-role) in your AWS account. This creates the cross-account role LangChain assumes to provision and manage the data plane.

    <Note>
      LangChain recommends a fresh AWS account dedicated to LangSmith BYOC.
    </Note>
  </Step>

  <Step title="Create the data plane">
    Navigate to **Settings > Data Planes** and create a data plane with the following parameters:

    * **Name**: Lowercase letters, digits, and hyphens, up to 24 characters.
    * **AWS region**: One of the [supported regions](/langsmith/byoc#regions-and-cloud-providers).
    * **AWS IAM role ARN**: The ARN of the role you created in the previous step, which LangSmith assumes in your account.
    * **External ID**: Must match the `ExternalId` condition in the role's trust policy.
    * **VPC CIDR range**: A private RFC 1918 range, from `/16` to `/18`.
    * **Load balancer access**: Private by default, which keeps the ingress load balancer reachable only from your VPC. Set it to **Public** to make the load balancer internet-facing.
  </Step>

  <Step title="Wait for provisioning">
    LangChain provisions the infrastructure on your behalf. The data plane moves from `Requested` to `Provisioning` to `Active`.

    <Note>
      End-to-end provisioning of a data plane takes around 60 to 90 minutes.
    </Note>

    Track its state in **Settings > Data Planes**. If the data plane transitions to `Provisioning Failed`, contact the LangChain team.
  </Step>

  <Step title="Set up private connectivity">
    Data planes are provisioned with a private endpoint by default, so you need private connectivity to reach it, such as Tailscale, AWS PrivateLink, or VPC peering.

    Find the API URL under **Settings > Data Planes**. If the frontend cannot reach your data plane, LangSmith prompts you to switch to a workspace on a data plane that is reachable, which can be a Cloud workspace.
  </Step>

  <Step title="Create workspaces">
    A workspace named `dp-<data_plane_name>` is provisioned automatically inside the new data plane. It is not accessible until the data plane is reachable.

    You can create additional workspaces in the data plane. Select the target data plane when you create each one: a workspace belongs to exactly one data plane, and a data plane can hold many workspaces.

    <Warning>
      Pick the correct data plane carefully when you create a workspace. A workspace cannot be moved to another data plane after creation.
    </Warning>
  </Step>

  <Step title="(Optional) Migrate existing data">
    If you are moving from an existing LangSmith Cloud or [self-hosted](/langsmith/self-hosted) instance, users, roles, datasets, prompts, experiments, annotation queue configuration, automation rules, and dashboards can be copied over. Traces cannot be migrated today.

    To plan a migration, contact the LangChain team.
  </Step>
</Steps>

## Next steps

* [Use your data plane](/langsmith/byoc-usage) to point applications and API clients at the right endpoint.
* [BYOC architecture](/langsmith/byoc-architecture) covers what LangChain provisions and how the planes communicate.

***

<div className="source-links">
  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>

  <Callout icon="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/langsmith/byoc-onboarding.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>
</div>
