---
title: "Create a Virtual Cross Connect"
method: POST
path: "/virtual_cross_connects"
tags: ["Virtual Cross Connects"]
---

# Create a Virtual Cross Connect

`POST /virtual_cross_connects`

Create a new Virtual Cross Connect.<br /><br />For AWS and GCE, you have the option of creating the primary connection first and the secondary connection later. You also have the option of disabling the primary and/or secondary connections at any time and later re-enabling them. With Azure, you do not have this option. Azure requires both the primary and secondary connections to be created at the same time and they can not be independantly disabled.

## Request body

- VirtualCrossConnectCreate
  - `id` string, uuid — Identifies the resource.
  - `record_type` string — Identifies the type of the resource.
  - `created_at` string — ISO 8601 formatted date-time indicating when the resource was created.
  - `updated_at` string — ISO 8601 formatted date-time indicating when the resource was updated.
  - `network_id` string, uuid — The id of the network associated with the interface.
  - `name` string — A user specified name for the interface.
  - `status` 'created' | 'provisioning' | 'provisioned' | 'deleting' — The current status of the interface deployment.
  - `cloud_provider` 'aws' | 'azure' | 'gce' — The Virtual Private Cloud with which you would like to establish a cross connect.
  - `cloud_provider_region` string — The region where your Virtual Private Cloud hosts are located.<br /><br />The available regions can be found using the /virtual_cross_connect_regions endpoint.
  - `bgp_asn` number — The Border Gateway Protocol (BGP) Autonomous System Number (ASN). If null, value will be assigned by Telnyx.
  - `bandwidth_mbps` number — The desired throughput in Megabits per Second (Mbps) for your Virtual Cross Connect.<br /><br />The available bandwidths can be found using the /virtual_cross_connect_regions endpoint.
  - `primary_enabled` boolean — Indicates whether the primary circuit is enabled. Setting this to `false` will disable the circuit.
  - `primary_cloud_account_id` string — The identifier for your Virtual Private Cloud. The number will be different based upon your Cloud provider.
  - `primary_telnyx_ip` string — The IP address assigned to the Telnyx side of the Virtual Cross Connect.<br /><br />If none is provided, one will be generated for you.<br /><br />This value should be null for GCE as Google will only inform you of your assigned IP once the connection has been accepted.
  - `primary_cloud_ip` string — The IP address assigned for your side of the Virtual Cross Connect.<br /><br />If none is provided, one will be generated for you.<br /><br />This value should be null for GCE as Google will only inform you of your assigned IP once the connection has been accepted.
  - `primary_bgp_key` string — The authentication key for BGP peer configuration.
  - `secondary_enabled` boolean — Indicates whether the secondary circuit is enabled. Setting this to `false` will disable the circuit.
  - `secondary_cloud_account_id` string — The identifier for your Virtual Private Cloud. The number will be different based upon your Cloud provider.<br /><br />This attribute is only necessary for GCE.
  - `secondary_telnyx_ip` string — The IP address assigned to the Telnyx side of the Virtual Cross Connect.<br /><br />If none is provided, one will be generated for you.<br /><br />This value should be null for GCE as Google will only inform you of your assigned IP once the connection has been accepted.
  - `secondary_cloud_ip` string — The IP address assigned for your side of the Virtual Cross Connect.<br /><br />If none is provided, one will be generated for you.<br /><br />This value should be null for GCE as Google will only inform you of your assigned IP once the connection has been accepted.
  - `secondary_bgp_key` string — The authentication key for BGP peer configuration.
  - `region_code` string, required — The region the interface should be deployed to.

## Response `200`

Successful response

- object
  - `data` VirtualCrossConnectCombined
    - `id` string, uuid — Identifies the resource.
    - `record_type` string — Identifies the type of the resource.
    - `created_at` string — ISO 8601 formatted date-time indicating when the resource was created.
    - `updated_at` string — ISO 8601 formatted date-time indicating when the resource was updated.
    - `network_id` string, uuid — The id of the network associated with the interface.
    - `name` string — A user specified name for the interface.
    - `status` 'created' | 'provisioning' | 'provisioned' | 'deleting' — The current status of the interface deployment.
    - `region_code` string — The region interface is deployed to.
    - `region` Region — unresolved $ref
    - `cloud_provider` 'aws' | 'azure' | 'gce' — The Virtual Private Cloud with which you would like to establish a cross connect.
    - `cloud_provider_region` string — The region where your Virtual Private Cloud hosts are located.
    - `bgp_asn` number — The Border Gateway Protocol (BGP) Autonomous System Number (ASN).
    - `bandwidth_mbps` number — The desired throughput in Megabits per Second (Mbps) for your Virtual Cross Connect.
    - `primary_enabled` boolean — Indicates whether the primary circuit is enabled.
    - `primary_cloud_account_id` string — The identifier for your Virtual Private Cloud.
    - `primary_telnyx_ip` string — The IP address assigned to the Telnyx side of the Virtual Cross Connect.
    - `primary_cloud_ip` string — The IP address assigned for your side of the Virtual Cross Connect.
    - `primary_bgp_key` string — The authentication key for BGP peer configuration.
    - `primary_routing_announcement` boolean — Whether

## Other responses

- `422` — Unprocessable entity. Check the 'detail' field in response for details.
- `default` — Unexpected error

## Changes

- **2026-05-14** `50870cc05614` — 1 breaking, 20 info
  - the `data` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - added the optional property `data/bandwidth_mbps` to the response with the `200` status
  - added the optional property `data/bgp_asn` to the response with the `200` status
  - added the optional property `data/cloud_provider` to the response with the `200` status
  - …17 more
- **2026-05-14** `a144ff96b4ac` — 1 breaking, 19 warning, 1 info
  - the `data` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - removed the optional property `data/bandwidth_mbps` from the response with the `200` status
  - removed the optional property `data/bgp_asn` from the response with the `200` status
  - removed the optional property `data/cloud_provider` from the response with the `200` status
  - …17 more
- **2026-05-08** `30cb1ddce91b` — 1 breaking, 20 info
  - the `data` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - added the optional property `data/bandwidth_mbps` to the response with the `200` status
  - added the optional property `data/bgp_asn` to the response with the `200` status
  - added the optional property `data/cloud_provider` to the response with the `200` status
  - …17 more

[Change history](https://skmtc.dev/team-telnyx/apis/telnyx-api/changes/virtual_cross_connects/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api.md) · [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api/revisions/3f3befefc607/schema)
