Create Service Profile

Step 1: Authenticate

Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication.

Refer to Generating Client ID and Client Secret under the Getting Access Token section for instructions on how to create client ID and client secret and refer to Requesting Access and Refresh tokens section for instructions on how to call Oauth API to validate and authenticate your credentials.

If you are unaware of your user credentials for Equinix Fabric, contact your local Equinix Service Desk.

Step 2: Create Seller Profile

POST /ecx/v3/l2/serviceprofiles
Method POST
URL or Endpoint /ecx/v3/l2/serviceprofiles
Headers Authorization, Content-Type
Query Parameters Not applicable
Body Parameters additionalBuyerInfo [{captureInEmail, datatype, description, mandatory, name }], alertPercentage, allowCustomSpeed, apiAvailable, authKeyLabel, connectionAccessibility, connectionNameLabel, ctagLabel, description, equinixManagedPortAndVlan, features {cloudReach, testProfile}, integrationId, namedTags[...], ports[{crossConnectId, id, inTrail, metroCode, sellerRegion, sellerRegionDescription, xa{}}], private, requiredRedundancy, speedBands[{speed, unit}], speedFromAPI, tagType, uuid, status, vlanSameAsPrimary, name, onBandwidthThresholdNotification[...], onProfileApprovalRejectNotification[...], onVcApprovalRejectionNotification[...], privateUserEmails[...]}

The POST connections API creates a Layer 2 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.

If you are unaware of how to obtain an authorization token, refer to Requesting Access and Refresh tokens section under the Getting Access Token.

The following screenshots show a sample curl request to create a layer 2 service profile and a sample JSON response for this API.


Private Profile

Copy
curl -X
POST "http://api.equinix.com/ecx/v3/l2/serviceprofiles"
-H "content-type: application/json"
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
-d '{
  "name": "JohnDoe_Private_ServiceProfile",
  "privateUserEmails": [],
  "onProfileApprovalRejectNotification": [
    "John.Doe@example.com"
  ],
  "onBandwidthThresholdNotification": [
    "John.Doe@example.com"
  ],
  "onVcApprovalRejectionNotification": [
    "John.Doe@example.com"
  ],
  "connectionNameLabel": "Connection",
  "ctagLabel": "",
  "equinixManagedPortAndVlan": false,
  "allowOverSubscription": false,
  "overSubscription": "",
  "apiAvailable": false,
  "integrationId": "",
  "private": true,
  "features": {
    "cloudReach": true,
    "testProfile": false
  },
  "requiredRedundancy": false,
  "tagType": null,
  "vlanSameAsPrimary": false,
  "enableAutoGenerateServiceKey": null,
  "additionalBuyerInfo": [],
  "ports": [
    {
      "id": "8cb83fdb-6651-6514-bbe0-38389cc0acfa",
      "metroCode": "SV"
    },
    {
      "id": "8cb83fdb-661d-61d4-bbe0-38389cc0acfa",
      "metroCode": "SV"
    }
  ],
  "allowCustomSpeed": false,
  "speedFromAPI": false,
  "speedBands": [
    {
      "speed": 50,
      "unit": "MB"
    },
    {
      "speed": 200,
      "unit": "MB"
    },
    {
      "speed": 500,
      "unit": "MB"
    },
    {
      "speed": 1000,
      "unit": "MB"
    }
  ]
}

Public Profile

Copy
curl -X
POST "http://api.equinix.com/ecx/v3/l2/serviceprofiles"
-H "content-type: application/json"
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
-d '{
  "name": "JohnDoe_ServiceProfile",
  "privateUserEmails": [],
  "onProfileApprovalRejectNotification": [
    "John.Doe@example.com"
  ],
  "onBandwidthThresholdNotification": [
    "John.Doe@example.com"
  ],
  "onVcApprovalRejectionNotification": [
    "John.Doe@example.com"
  ],
  "alertPercentage": "85",
  "authKeyLabel": "Authentication Secret Key",
  "connectionNameLabel": "Connection",
  "ctagLabel": "",
  "equinixManagedPortAndVlan": true,
  "allowOverSubscription": true,
  "overSubscription": "10x",
  "apiAvailable": true,
  "integrationId": "Direct-01",
  "private": false,
  "features": {
    "cloudReach": true,
    "testProfile": false
  },
  "requiredRedundancy": true,
  "tagType": "CTAGED",
  "vlanSameAsPrimary": true,
  "enableAutoGenerateServiceKey": false,
  "additionalBuyerInfo": [],
  "ports": [
    {
      "id": "8cb83fdb-6671-6714-bbe0-38389cc0acfa",
      "metroCode": "SV"
    }
  ],
  "allowCustomSpeed": false,
  "speedFromAPI": true
}

The description of the body parameters is as follows:

Body Parameter Name Mandatory Type Example values Applicable values Description
name Yes string JohnDoe_ServiceProfile User-defined name of the service profile connection.

Supply an alpha-numeric string, which can include hyphens and underscores ('-' & '_') as special characters (no other special characters are allowed).

Max Length: 24 characters
privateUserEmails No array [string] An array of user email addresses, where each user identified has the permission to access this service profile.

Example: ["user@example.com", "user2@example.com"]
onProfileApprovalRejectNotification Yes array [string] John.Doe@example.com An array of email address that are notified when there are any updates on your profile.

Example: ["user@example.com", "user2@example.com"]
onBandwidthThresholdNotification Yes array [string] John.Doe@example.com An array of email addresses that are notified when a bandwidth threshold has been triggered.

Example: ["user@example.com", "user2@example.com"]
onVcApprovalRejectionNotification Yes array [string] John.Doe@example.com An array of email addresses that are notified when a virtual connection has been approved or rejected.

Example: ["user@example.com", "user2@example.com"]
alertPercentage Yes string 85 Specifies the port bandwidth threshold percentage.If the bandwidthlimit is met or exceeded, an alert is sent to the seller.

Range: 0 - 100
authKeyLabel No string Authentication Secret Key The Authentication Key service allows Service Providers with QinQ ports to accept groups of connections or VLANs from Dot1q port customers. This is similar to having S-Tag/C-Tag capabilities.
connectionNameLabel Yes string Connection User-defined name of the connection.

Supply an alpha-numeric string, which can include hyphens and underscores ('-' & '_') as special characters (no other special characters are allowed).

Max Length: 24 characters
ctagLabel No string User-defined name of the C-Tag/Inner-Tag of the connection

Range: 2 - 4094.
equinixManagedPortAndVlan boolean true Only applicable only if APIavailable is set true, this setting indicates whether or not the port and VLAN details are managed by Equinix.
allowOverSubscription Yes boolean true Regardless of the utilization, the Equinix service will continue to add connections to your links until the oversubscription limit is reached.

By selecting this service, you acknowledge that you will manage the decisions on when to increase the capacity ofthese links.
overSubscription No string 10x You can set an alert to indicate when a percentage of your profile has been sold.

Service providers can use this feature to sent an alert when more more ports need to be added or when a new service profile needs to be created.
apiAvailable Yes boolean true API integration allows you to complete connection provisioning in less than five minutes. Without API Integration, additional manual steps are required, and the provisioning will likely take longer.
integrationId No string Direct-01

Specifies the API integration ID that was provided to the customer during onboarding. You can validate your API integration ID using the validateIntegrationId API.

If you are unaware of your integration ID, contact your local Equinix Service Desk.

private Yes boolean false Indicates whether or not this profile is private.

If private, the profile is only available for creating connections when the correct permissions have been granted (i.e. not public like AWS/Azure/Oracle/Google, etc.).
features Yes string Contains feature-related information, such as cloudReach and testProfile.
cloudReach Yes boolean true Indicates whether or not connections to this profile can be created from remote metros.
testProfile Yes boolean false Indicates whether or not this profile can be used for test connections.
requiredRedundancy Yes boolean true Specifies whether or not your connections require redundancy.

If set to yes, then users need to create a secondary redundant connection.
tagType No string CTAGED Specifies additional tagging information required by the seller profile.
vlanSameAsPrimary Yes boolean true Indicates whether or not the VLAN ID of the secondary connection is the same as the primary connection.
enableAutoGenerateServiceKey No boolean false If set to yes, this flag indicates that multiple connections can be createdwith the same authorization key toconnect to this service profile after the first connection has been approved by the seller.
additionalBuyerInfo No array [string] An array containing a maximum of 10 custom fields that you can use to gatheradditional information.
ports Yes string Where will your service be available?

Choose the locations where your customers will be able to access your services. The locations specified need at least one active port present in order to qualify as an available zone.
id Yes string 8cb83fdb-6671-6714-bbe0-38389cc0acfa The Equinix-assigned ID of the port.
metroCode Yes string SV The metro where the port resides.
allowCustomSpeed Yes boolean false This flag specifies whether or not customers can enter a custom port speed.
speedFromAPI Yes boolean true This flag specifies whether or not the speed is derived from an API request.

If you get "Access Denied" error, contact your local Equinix Service Desk for Equinix Fabric Portal access.

Copy
{
    "uuid": "36bfb968-1e4b-4973-baa0-35d2904944de"
}

The description of the response payload is as follows:

Field Name Type Example values Description
uuid string 36bfb968-1e4b-4973-baa0-35d2904944de Indicates the ID of the service profile created.