Step 3: Create Connection
Post Connections
POST /ecx/v3/l2/connections
|
Method |
POST |
URL or End Point |
/ecx/v3/l2/connections |
Headers |
Authorization, Content-Type |
Query Parameters |
Not applicable |
Body Parameters |
primaryName, primaryPortUUID, primaryVlanSTag, primaryVlanCTag, profileUUID, authorizationKey, speed, speedUnit, notifications [...], purchaseOrderNumber, sellerRegion, sellerMetroCode, secondaryName, secondaryPortUUID, secondaryVlanSTag, secondaryVlanCTag, primaryZSideVlanCTag, secondaryZSideVlanCTag |
|
The POST connections API creates a Layer 2 Connection between your port and the destination service profile. The authorization token and content-type are the only headers that are passed to this API and a response is received based on the values passed.
The following screenshots show sample curl requests to create layer 2 redundant enterprise connection using Dot1q and QinQ ports and a sample JSON response for this API.
Redundant Connection from a Dot1Q port to a service profile with a Dot1Q port
curl -X
POST "https://api.equinix.com/ecx/v3/l2/connections"
-H "content-type: application/json"
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
-d '{
"primaryName": "JohnDoe_Dot1Q_To_Dot1Q",
"profileUUID": "7a73af1a-3d74-47ac-b778-6bf455d1174e",
"speed": 50,
"speedUnit": "MB",
"notifications": [
"JohnDoe@equinix.com"
],
"purchaseOrderNumber": "1234567890",
"authorizationKey": "xxxxxxxx",
"primaryPortUUID": "4f891d3b-973e-73e0-bae0-30ac1885197a",
"primaryVlanSTag": "873",
"secondaryName": "JohnDoe_Dot1Q_To_Dot1Q_2",
"secondaryVlanSTag": "873",
"secondaryPortUUID": "7g831d3b-9740-7420-bae0-30ac1885127a",
"sellerMetroCode": "SV"
}
Redundant Connection from a Dot1Q port to a service profile with a QinQ port
curl -X
POST "https://api.equinix.com/ecx/v3/l2/connections"
-H "content-type: application/json"
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
-d '{
"primaryName": "JohnDoe_Dot1Q_To_QinQ",
"profileUUID": "31b7263f-7e6a-42d0-859e-80a7fd3b9609",
"speed": 50,
"speedUnit": "MB",
"notifications": [
"JohnDoe@equinix.com"
],
"purchaseOrderNumber": "1234567890",
"authorizationKey": "xxxxxxxx",
"primaryPortUUID": "7f891d3b-973e-73e0-bae0-30ac1885197a",
"primaryVlanSTag": "335",
"secondaryName": "JohnDoe_Dot1Q_To_QinQ_2",
"secondaryVlanSTag": "335",
"secondaryPortUUID": "7f891d3b-9740-7400-bae0-30ac1885197a",
"sellerRegion": "us-sv",
"sellerMetroCode": "SV",
"primaryZSideVlanCTag": "421",
"secondaryZSideVlanCTag": "521"
}
Redundant Connection from a QinQ port to a service profile with a Dot1Q port
curl -X
POST "https://api.equinix.com/ecx/v3/l2/connections"
-H "content-type: application/json"
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
-d '{
"primaryName": "JohnDoe_QinQ_To_Dot1Q",
"profileUUID": "2a73af1a-3c74-47ac-b778-6bf455d1174e",
"speed": 50,
"speedUnit": "MB",
"notifications": [
"JohnDoe@equinix.com"
],
"purchaseOrderNumber": "1234567890",
"authorizationKey": "xxxxxxxx",
"primaryPortUUID": "6f891d3b-972d-73d0-bae3-30ac1995197a",
"primaryVlanSTag": "771",
"primaryVlanCTag": "117",
"secondaryName": "JohnDoe_QinQ_To_Dot1Q2",
"secondaryPortUUID": "7f892d5b-993f-73f0-bae0-32ad1889197a",
"secondaryVlanSTag": "881",
"secondaryVlanCTag": "118",
"sellerMetroCode": "SV"
}
Redundant Connection from a QinQ port to a service profile with a QinQ port
curl -X
POST "https://api.equinix.com/ecx/v3/l2/connections"
-H "content-type: application/json"
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
-d '{
{
"primaryName": "JohnDoe_QinQ_To_QinQ",
"profileUUID": "32b7273f-7e7a-43d0-859e-81a7fd3b9609",
"speed": 50,
"speedUnit": "MB",
"notifications": [
"JohnDoe@equinix.com"
],
"purchaseOrderNumber": "1234567890",
"authorizationKey": "xxxxxxxx",
"primaryPortUUID": "7f891d3b-96d3-6d30-bae0-30ac1885197a",
"primaryVlanSTag": "499",
"secondaryName": "JohnDoe_QinQ_To_QinQ2",
"secondaryVlanSTag": "2456",
"secondaryPortUUID": "7f21d3b-93d3-6d30-cae0-33ac2895297a",
"sellerRegion": "us-sv",
"sellerMetroCode": "SE"
}
The description of the body parameters is as follows:
Body Parameter Name |
Mandatory |
Type |
Example values |
Applicable values |
Description |
primaryName |
Yes |
string |
JohnDoe_Dot1Q_To_Dot1Q |
|
Name of the primary connection - An alpha-numeric 24 characters string which can include only hyphens and underscores ('-' & '_'). |
primaryPortUUID |
Yes |
string |
7f891d3b-973d-73d0-bae0-30ac1885197a |
|
Unique identifier of the buyer primary port from which the connection would originate. |
primaryVlanSTag |
Yes |
integer |
640 |
|
S-Tag/Outer-Tag of the primary connection - A numeric character ranging from 2 - 4094.
|
primaryVlanCTag |
Yes |
string |
641 |
|
C-Tag/Inner-Tag of the primary connection - A numeric character ranging from 2 - 4094. |
profileUUID |
Yes |
string |
84c6616c-573a-447d-a478-9fab8fff284d |
|
Unique identifier of the provider's service profile. |
speed |
Yes |
integer |
50 |
|
Speed/Bandwidth you would like to allocate to the connection. If you do not know the speed, you can call the validateAuthorizationkey API and query using the ExpressRoute service key to obtain the speed.
|
speedUnit |
Yes |
string |
MB |
|
Unit of the speed or bandwidth you would like to allocation to the connection. |
notifications |
Yes |
array |
johnDoe@equinix.com |
|
An array of email ids you would like to notify when there are any updates on your connection. Example Object: ["user@organization.com", "user@eu.company.com"] |
purchaseOrderNumber |
No |
string |
123456789 |
|
An optional field to link the purchase order numbers to the connection on Equinix which would get reflected on the invoice. |
authorizationKey |
No |
string |
|
|
An optional field based on the service profile you want to connect to. |
sellerMetroCode |
Yes |
string |
DC |
|
Provider location where you would like to connect. If the sellerMetroCode is empty, the metro code of the port is set as the default seller metro code. |
sellerRegion |
No |
string |
us-sv |
|
An optional field that needs to be passed if requested by the service profile you intend to connect to. |
secondaryName |
Yes |
string |
JohnDoe_QinQ_To_QinQ2 |
|
Name of the secondary connection - An alpha-numeric 24 characters string which can include only hyphens and underscores ('-' & '_'). |
secondaryPortUUID |
Yes |
string |
7f891d3b-973d-73d0-bae0-30ac1885197a |
|
Unique identifier of the buyer secondary port from which the secondary connection would originate. |
secondaryVlanSTag |
Yes |
string |
442 |
|
S-Tag/Outer-Tag of the secondary connection - A numeric character ranging from 2 to 4094. |
secondaryVlanCTag |
Yes |
string |
542 |
|
C-Tag/Inner-Tag of the secondary connection - A numeric character ranging from 2 to 4094. |
primaryZSideVlanCTag |
Yes |
string |
558 |
|
C-Tag/Inner-Tag of the primary connection on the Z side. This is only applicable for "Manual" peering. (i.e. namedTag = "Manual") |
secondaryZSideVlanCTag |
Yes |
string |
542 |
|
C-Tag/Inner-Tag of the secondary connection on the Z side. This is only applicable for "Manual" peering. (i.e. namedTag = "Manual")
|
The following table indicates the tagging criteria to be followed when a buyer/customer (A-side) wants to connect to a seller/service profile (Z-side). Ensure to add the correct S tag or C tag based on your port type.
Port Type (A-side) |
Vlan S-tag required |
Vlan C-tag required |
ZSide Vlan C-tag required |
Port Type ( Z-side) |
Dot1Q port |
Yes |
No |
Yes |
QinQ port |
Dot1Q port |
Yes |
No |
No |
Dot1Q port |
QinQ port |
Yes |
Yes |
No |
Dot1Q port |
QinQ port |
Yes |
No |
No |
QinQ port |
If you get “Access Denied” error, contact your local Equinix Service Desk for Equinix Cloud Exchange Fabric Portal access.
{
"message": "Connection Saved Successfully",
"primaryConnectionId": "9999a8-0e07-44d0-944c-88a25d8d28f7"
"secondaryConnectionId": "888d4c1-5444-4511-b2e4-51f06f062974"
}
The description of the response payload is as follows:
Field Name |
Type |
Example values |
Description |
message |
string |
Connection Saved Successfully |
Indicates the status of the API call. |
primaryConnectionID |
string |
9999a8-0e07-44d0-944c-88a25d8d28f7 |
Indicates the primary connection ID.
|
secondaryConnectionId |
string |
888d4c1-5444-4511-b2e4-51f06f062974 |
Indicates the secondary connection ID. |
When a connection is created, the connection transitions through various states within the Equinix infrastructure. These states can be monitored using the response attributes of the API /ecx/v3/l2/connections/{connId}. The "status" attribute indicates the connection status in Equinix and the "providerStatus" indicates the status at the enterprise's end.
Equinix States under /ecx/v3/l2/connections/{connId} |
"status" attribute values |
"providerStatus" attribute values |
Description |
PENDING_APPROVAL |
NOT_AVAILABLE |
Connection request has been sent to seller and is awating approval. |
The seller must approve or reject the connection at this point or the "status" and "providerStatus" would remain unchanged.
|
PROVISIONING
or
REJECTED
|
NOT_AVAILABLE |
Connection establishment in progress.
or
The seller has rejected the connection.
|
PROVISIONED |
AVAILABLE |
Connection established.
|

When an end user deletes a connection using the API /ecx/v3/l2/connections/{connId} the connection transitions through the following states within the Equinix infrastructure.
Equinix States under /ecx/v3/l2/connections/{connId} |
"status" attribute values |
"providerStatus" attribute values |
Description |
PENDING_DELETE |
AVAILABLE |
Deletion request has been sent to seller and is awating approval. |
The seller must approve this delete request to disconnect the connection and to stop billing. Keep in mind that should the seller fail to approve the deletion request, the connection would still be considered active and charged accordingly.
|
DEPROVISIONING
|
AVAILABLE |
Connection disbandment in progress.
or
The seller has rejected the request.
|
DEPROVISIONED |
NOT_AVAILABLE |
Connection deleted.
|
Rename the primaryName to John_Demo_Connection.