Download OpenAPI specification:Download
This document provides an API reference, grouped by function, describing how to use the Console Connect REST API. Products available through the Console Connect API include:
This section aims to furnish a comprehensive guide for integrating the Console Connect API into your client system. It includes detailed steps and declarative code samples that demonstrate the process of configuring a client to provision Console Connect Services.
The following requirements must be met to execute the provided code samples in this guideline:
The user ID, company ID, and company username is obtained upon execution of API GET /api/auth/token. This provides information to the currently authenticated user
Info
Below is a sample curl command that will respond with the detailed information of the current authenticated user when executed.
curl -X GET https://api.consoleconnect.com/api/auth/token\
-H "Authorization: Bearer [[API key]]"
If the request was successful, it will respond with a JSON object similar to this:
{
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
"companies": [
{
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "Demo",
"username": "demo",
// other properties...
}
]
// other properties...
}
Info
Refer to Get Current User to see API's full response payload.
Take note of your user id (
id
), company id (companies[0].id
), and company username (companies[0].username
).
This endpoint returns a list of Metros a given Company has a presence at.
Info
Below is a sample curl command that accepts company username as path parameter, see List Metros for a Company for details.
curl -X GET https://api.consoleconnect.com/api/company/${companyUsername}/metro/capabilities`\
-H "Authorization: Bearer [[API key]]"
{
"results": [
{
"name": "New York",
"code": "NYC",
"country": "us",
"rir": "ARIN",
"regionIds": [
"xxxxxxxxxxxxxxxxxxxxxxxx"
],
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"deletedAt": null,
"createdAt": "2017-12-18T00:27:37.028Z",
"updatedAt": "2020-07-10T04:03:37.956Z",
"logo": null,
"description": "Sample description",
"ready": true,
"canCreateController": false,
"deleted": false,
"tags": [],
"capabilities": {
"layer2": true
},
"firstDataCenterFacilityIdInMetro": "xxxxxxxxxxxxxxxxxxxxxxxx"
}
]
}
Info
Take note of metro ID (
[0].id
)
This endpoint provides DCF filtering capability and it returns a list of Data Center Facilities (DCF) details.
Info
Below is a sample curl command that accepts (
optional
) criteria, page & page size query parameters.
curl -X GET "https://api.consoleconnect.com/v2/data-center-facility/search?criteria={}&page=1&pageSize=10"`\
-H "Authorization: Bearer [[API key]]"
[{
"company": {
"privacy": {
"network": {
"mode": "PUBLIC",
"blackListIds": [],
"whiteListIds": []
},
"community": {
"mode": "PUBLIC",
"blackListIds": [],
"whiteListIds": []
}
},
"addresses": [
{
"registered": false,
"address": "",
"city": "Hong Kong",
"state": "",
"zip": "zipcode",
"country": "HK",
"email": null,
"phone": null,
"geo": {
"type": "Point",
"coordinates": []
}
}
],
"parentIds": [],
"regionalInternetRegistry": [],
"businessRegistrationCertVerified": "UNVERIFIED",
"website": "http://www.company.com1",
"emailDomains": [],
"industry": "",
"businessDevelopmentManagerTypePreference": "UNSPECIFIED",
"isIoTDemoCompany": false
},
"username": "DCF_COMPANY_USERNAME",
"name": "SAMPLE-DCF-NAME",
"tags": [
"offnet",
"monthly-ports"
],
"dataCenterFacility": {
"airportCodes": [],
"speeds": [],
"metroId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"ready": true,
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"nniReady": true,
"brandId": null,
"canBundleCrossConnect": false
},
"stats": {
"members": 0,
"interconnections": 0,
"followers": 5,
"following": 0,
"privateArticles": 0,
"privateEvents": 0,
"privatePosts": 0,
"articles": 0,
"events": 0,
"posts": 0
},
"provider": [
"PCCWGLOBAL"
],
"selectiveQinQTunnelProvider": [],
"externalId": null,
"destinationPortOnly": false,
"verified": true,
"nnis": null,
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"bundleCrossConnectChargeId": null,
"deletedAt": null,
"createdAt": "2018-02-20T04:49:09.604Z",
"updatedAt": "2024-07-10T04:22:15.894Z",
"products": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"companyId": null,
"dataCenterFacilityId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"slug": null,
"status": "PUBLISHED",
"transactionType": "ENQUIRE",
"productType": "Data centers",
"promoted": true,
"name": "Sample Product Name",
"headline": "Sample Headline",
"description": "Demo description",
"logo": null,
"overviewImage": null,
"background": null,
"categories": [
"Data Center"
],
"tags": null,
"promoTitle": "Sample Title",
"promoHeadline": "Sample Headline",
"callToActionLabel": "Order rack",
"callToActionLink": null,
"vendorUrl": null,
"hubspotFormId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"productFamilyId": null,
"isAddon": false,
"productCode": null,
"created_at": "2021-02-16T04:18:06.026Z",
"updated_at": "2021-05-19T06:43:38.193Z"
}
],
"isFollowing": false
}]
Info
Take note of DCF company username (
[0].username
) and DCF ID ([0].id
)
This endpoint returns a list of ASNs for a specific company
Info
Below is a sample curl command that accepts company ID as path parameter, and an optional filter query parameter. The below example lists all
VERIFIED
andpublic
ASNs for a company with the specifiedcompanyId
.
curl -X GET https://api.consoleconnect.com/app-user/${companyId}/asns?filter={"where":{"status":"VERIFIED","private":false}}`\
-H "Authorization: Bearer [[API key]]"
[
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"companyId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"asn": "1234",
"asSet": "AS-KEYCOM",
"private": false,
"skipPrefixSync": false,
"status": "VERIFIED",
"ipPrefixConfiguredInIPCV4": [
"0.0.0.0/22",
"0.0.0.0/23",
"0.0.0.0/22",
"0.0.0.0/22",
"0.0.0.0/24",
"0.0.0.0/19"
],
"ipPrefixConfiguredInIPCV6": [
"0000:0000::/29",
"0000:0000::/29"
],
"ipPrefixConfiguredInSLV4": [
"0.0.0.0/22",
"0.0.0.0/23",
"0.0.0.0/22",
"0.0.0.0/22",
"0.0.0.0/24",
"0.0.0.0/19"
],
"ipPrefixConfiguredInSLV6": [
"0000:0000::/29",
"0000:0000::/29"
],
"ipPrefixLastCheckedAt": "2022-08-01T04:00:24.950Z",
"ipPrefixLastSLUpdateRequestAt": null,
"ipPrefixLastSLUpdateSuccessAt": "2022-07-27T06:42:37.410Z",
"ipPrefixLastErrorAt": "2024-08-02T00:27:07.910Z",
"deallocatedAt": null,
"ipPrefixLastErrorReason": "[object Object]",
"company_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"deleted_at": null,
"created_at": "2021-08-24T00:29:51.456Z",
"updated_at": "2024-08-02T00:27:08.040Z"
}
]
This endpoint returns a range of private ASNs
Info
Below is a sample curl command.
curl -X GET https://api.consoleconnect.com/api/private-asn/range`\
-H "Authorization: Bearer [[API key]]"
If the request was successful, it will respond with a range of ASNs similar to the JSON object below
{
"start": 4200000000,
"end": 4294967294
}
This section provides a comprehensive guide for integrating the Console Connect Price Calculator API into your client system. It also provides a detailed explanation of the API's behavior, attributes and properties of the resulting API response.
This endpoint calculates ports and layer 2 connections, it accepts an array of ports
and connections
as request body payload and responds with calculation details based on the provided payload.
Below is a detailed description of each request attributes for this API service.
Ports ports
- An array of port details and configuration.
dcf
- The Data Center Facility ID where will be located in.Note:
You may refer to Searching DCFs to obtain the
dcfId
of your DCF choice.
speed
- The desired speed of the port in Mbps.durationUnit
- Set to m
if the Data Center accepts month-to-month port orders. y
or m
y
Connections connections
- An array of layer 2 connection configuration to get pricing for.
Bandwidth bandwidth
- The desired bandwidth of the connection in Mbps.
Class of Service classOfService
- The class of service
Duration duration
- The duration details.
value
- The desired duration for this service.unit
- The unit of the provided duration value. Enum: day (d
), week (w
), month (m
), year (y
)Info
durationUnit
Enum values: day (d
), week (w
), month (m
), year (y
)
Note:
Maximum duration value by units: days:
6
| weeks:3
| months:36
| years:3
Source DCF srcDcf
- The ID of the source (A-end) Data Center Facility
Note:
You may refer to Searching DCFs to obtain the
dcfId
of your DCF choice.
Source Region srcRegion
- The ID of the source (A-end) region. (Optional
)
Destination DCF destDcf
- The ID of the destination (Z-end) Data Center Facility.
Note:
You may refer to Searching DCFs to obtain the
dcfId
of your DCF choice.
destRegion
- The ID of the destination (Z-end) region. (Optional
)Discount Code discountCode
- Promotional or partner code.
Include Cross Connect includeCrossConnect
- Set to true if your DCF supports cross connect add-on.
Note:
Only available in a 12 months contract.
See below sample curl command:
curl -X POST https://api.consoleconnect.com/api/pricing/calculate`\
-H "Authorization: Bearer [[API key]]"
--data-raw '{
"ports": [
{
"dcf: "xxxxxxxxxxxxxxxxxxxxxxxx",
"speed": 1000,
"duration": "y"
}
]
}'
Note:
For more request payload examples, refer to Ports and Connections API specs.
If the request was successful, it will respond with list/array of ports or connection pricing details:
{
"results": [
{
"type": "PORT",
"entity": {
"dcf": {
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"name": "Company A",
"popId": null,
"regionIds": null,
"metroIds": null,
"tags": null
},
"speed": 1000,
"discountId": "",
"durationUnit": "y"
},
"price": 300,
"preAuthAmount": 300,
"amountSaved": null,
"amountSavedTotal": null,
"basicTotalAmount": null,
"basicMonthlyAmount": null,
"priceCalculatorAttributes": {
"discountIds": [],
"discounts": []
}
}
]
}
Note:
To see the response attributes definition, refer to Ports and Connections API specs, under the Responses Section.
This endpoint calculates IO-D service charge rate by company & ports, it accepts company ID (companyId
), port ID (portId
), bandwidth (bandwidth
), duration value (durationValue
), duration unit (durationUnit
) and an optional discount code (discountCode
) as query parameters and responds with calculation details based on the configuration provided.
Below is a detailed description of each request attributes for this API service.
companyId
- Your company ID.Note:
You may refer to Acquiring User Details to obtain your company ID.
portId
- Your port ID.Note:
You may refer to Listing Ports for a Specific Company to obtain your port ID.
bandwidth
- The desired bandwidth or rate limit (in Mbps) for the IO-D service.durationValue
- The desired duration valuedurationUnit
- The desired duration unitInfo
durationUnit
Enum values: day (d
), week (w
), month (m
), year (y
)
Note:
Maximum duration value by units: days:
6
| weeks:3
| months:36
| years:3
See below sample curl command, configured with a duration of 6 days:
curl -X GET "https://api.test.consoleconnect.com/v2/pricing/gia/byCompanyAndPort?companyId=xxxxxxxxxxxxxxxxxxxxxxxx&portId=xxxxxxxxxxxxxxxxxxxxxxxx&bandwidth=10&durationValue=6&durationUnit=d"`\
-H "Authorization: Bearer [[API key]]"
Note
Notice the
durationValue
&durationUnit
which is equivalent to 6 days. Response may vary based on the configured duration (more
than orless
than a month). See Response Attributes for more details.
See sample response for the pricing details below:
{
"onceOff": {
"giaCost": 73.97,
"ipCosts": {
"ipv426Cost": 34.52,
"ipv427Cost": 24.66,
"ipv428Cost": 0,
"ipv429Cost": null,
"ipv430Cost": null
}
},
"burstRate": 0.004050035038912062,
"duration": {
"unit": "d",
"value": 6
}
}
This endpoint calculates IO-D service charge rate by a specific DCF, it accepts DCF ID (dcfId
), bandwidth (bandwidth
), duration value (durationValue
), duration unit (durationUnit
) and an optional discount code (discountCode
) and company ID (companyId
) as query parameters and responds with calculation details based on the configuration provided.
Below is a detailed description of each request attributes for this API service.
dcfId
- Data Center Facility (DCF) ID.Note:
you may refer to Searching DCFs to obtain the
dcfId
of your DCF choice.
bandwidth
- The desired bandwidth or rate limit (in Mbps) for the IO-D service.durationValue
- The desired duration valuedurationUnit
- The desired duration unitInfo
durationUnit
Enum values: day (d
), week (w
), month (m
), year (y
)
Note:
Maximum duration value by units: days:
6
| weeks:3
| months:36
| years:3
See below sample curl command, configured with a duration of more than a month:
curl -X GET "https://api.test.consoleconnect.com/v2/pricing/gia/byDcf?dcfId=xxxxxxxxxxxxxxxxxxxxxxxx&bandwidth=10&durationValue=2&durationUnit=y"`\
-H "Authorization: Bearer [[API key]]"
Note
Notice the
durationValue
&durationUnit
which is equivalent to 2 years. Response may vary based on the configured duration (more
than orless
than a month). See Response Attributes for more details.
See sample response for the pricing details below:
{
"contractTotals": {
"giaCost": 3420,
"ipCosts": {
"ipv426Cost": 1596,
"ipv427Cost": 1140,
"ipv428Cost": 0,
"ipv429Cost": null,
"ipv430Cost": null
}
},
"unitCosts": {
"giaCost": 142.5,
"ipCosts": {
"ipv426Cost": 66.5,
"ipv427Cost": 47.5,
"ipv428Cost": 0,
"ipv429Cost": null,
"ipv430Cost": null
}
},
"contractTotalsAmountSaved": null,
"unitCostsAmountSaved": null,
"burstRate": 0.04681165489,
"duration": {
"unit": "y",
"value": 2
}
}
This endpoint accepts DCF ID (dcfId
) and price requests (priceRequests
) as query parameters and responds with an array of price calculation details associated with the price request (priceRequests
) configuration provided in the API request.
Below is a detailed description of each request attributes for this API service.
dcfId
- Your data center facility (DCF) of choice ID.Note:
you may refer to Searching DCFs to obtain your
dcfId
Price Requests priceRequests
- A collection of different IO-D service configuration (bandwidth and duration) you desire to configure your IO-D service with.
Price Requests item's attributes/fields:
bandwidth
- The desired bandwidth or rate limit (in Mbps) for the IO-D service.durationValue
- The desired duration valuedurationUnit
- The desired duration unitInfo
durationUnit
Enum values: day (d
), week (w
), month (m
), year (y
)
Note:
Maximum duration value by units: days:
6
| weeks:3
| months:36
| years:3
See below sample curl command, which passes 2 IO-D configuration items in price requests (priceRequests
) query parameter:
Index 0
- Configured with service duration of more than a month.Index 1
- Configured with service duration of less than a month.curl -X GET "https://api.consoleconnect.com/v2/pricing/gia/bulkByDcf?dcfId=xxxxxxxxxxxxxxxxxxxxxxxx&priceRequests=[{"bandwidth":10,"durationValue":24,"durationUnit":"m"},{"bandwidth":10,"durationValue":6,"durationUnit":"d"}]"`\
-H "Authorization: Bearer [[API key]]"
Note
Notice the value of priceRequests,
index 0
's duration value and unit is equivalent to 24 months / 2 years where asindex 1
's duration value and unit is equivalent to 6 days.
The expected response for this API Service is an array of price calculation details - each price calculation item corellates with each of the item provided in the price requests (priceRequests
) query parameter for the specified DCF ID (dcfId
). See Response Attributes section below for the response details.
[
{ // Recurring - with duration of more than a month
"contractTotals": {
"giaCost": 3420,
"ipCosts": {
"ipv426Cost": 1596,
"ipv427Cost": 1140,
"ipv428Cost": 0,
"ipv429Cost": null,
"ipv430Cost": null
}
},
"unitCosts": {
"giaCost": 142.5,
"ipCosts": {
"ipv426Cost": 66.5,
"ipv427Cost": 47.5,
"ipv428Cost": 0,
"ipv429Cost": null,
"ipv430Cost": null
}
},
"contractTotalsAmountSaved": null,
"unitCostsAmountSaved": null,
"burstRate": 0.04681165489,
"duration": {
"unit": "m",
"value": 24
}
},
{ // OnceOff - with duration of less than a month
"onceOff": {
"giaCost": 73.97,
"ipCosts": {
"ipv426Cost": 34.52,
"ipv427Cost": 24.66,
"ipv428Cost": 0,
"ipv429Cost": null,
"ipv430Cost": null
}
},
"burstRate": 0.004050035038912062,
"duration": {
"unit": "d",
"value": 6
}
}
]
IO-D Pricing By DCF API
, IO-D Pricing By Company & Ports API
and IO-D Pricing By DCF (Bulk) API
share similar response structure (Recurring Response or OnceOff Response) that may vary depending on the provided duration (less than or more than a month).
Applicable charges for the service configured with duration of more
than a month. See sample response above index 0
.
Property Definition
contractTotals
- The full duration of service charge rates.giaCost
- The full duration of service charge rateipCost
- The IP Block selection/option - each option equivalent to full duration of service charge rate, chargeable on top of giaCost
.unitCosts
- Equivalent to monthly service charge rates.giaCost
- The monthly service charge rate.ipCost
- The IP Block selection/option - each option equivalent to monthly service charge rate, chargeable monthly on top of giaCost
.contractTotalsAmountSaved
- The full duration computed saved amount.unitCostsAmountSaved
- Computed monthly saved amount.burstRate
- Burst rate/Mbps charge rate.duration
- Configured duration of service.value
- The configured duration value for the service.unit
- The configured duration unit for the service. Enum:
days (d
), weeks (w
), months (m
), years (y
).Note:
Depending on your IP Block of choice, charges may apply on top of
giaCost
. See[0].contractTotals.ipCost
or[0].unitCosts.ipCost
in the response sample above for the price details.Notice
null
and0
values in both[0].contractTotals.ipCost
and[0].unitCosts.ipCost
-null
is equivalent to unavailable and0
is equivalent to free of charge.
Applicable charges for the service configured with duration of less
than a month. See sample response above index 1
.
Property Definition
onceOff
- The full duration of service charge rate and IP Block options charge rate.giaCost
- The full duration of service charge rateipCost
- The IP Block selection/option - each option equivalent to full duration of service charge rate, chargeable on top of giaCost
.burstRate
- Burst rate/Mbps charge rate.duration
- Configured duration of service.value
- The configured duration value for the service.unit
- The configured duration unit for the service in day(s) (d
) or in week(s) (w
).This section provides a detailed guide for integrating the Console Connect Port Services API through your client systems.
This endpoint accepts company username as a path parameter and responds with a list of ports owned by the specific company.
See below sample curl command:
curl -X GET https://api.consoleconnect.com/api/company/${companyUsername}/ports?deleted=false`\
-H "Authorization: Bearer [[API key]]"
{
"results": [
{
"dcpCompanyId": null,
"name": "XXXX CONNECTIVITY",
"speed": {
"value": 1000,
"name": "1000 Mbps"
},
"speedOverprovisioningFactor": 1,
"singleService": false,
"locationId": null,
"dataCenterFacilityId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"popId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"metroId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"status": "ACTIVE",
"serviceStatus": "OPEN",
"linkState": "UP",
"linkStateUpSince": null,
"linkStateSyncedAt": "2021-06-08T01:05:03.507Z",
"type": "NNI",
"isEdgePort": false,
"edgePayload": null,
"mediaType": "COPPER",
"partner": {
"type": "NONE",
"connectionSpeeds": []
},
"ip": {
"ipv4": null,
"ipv6": null
},
"capabilities": {
"model6Limit": false,
"model6LimitNumber": null,
"singleService": false
},
"activeChangedAt": "2021-06-08T01:05:33.694Z",
"firstActiveAt": "2021-06-08T01:05:03.706Z",
"updatedAt": "2023-01-24T02:08:29.005Z",
"createdAt": "2021-06-08T01:04:59.457Z",
"deleted": false,
"deletedAt": null,
"importedAt": null,
"importer": null,
"salesRecordId": "123456",
"paymentType": "plan",
"payg": null,
"onboarded": true,
"onboardedBy": "xxxxxxxxxxxxxxxxxxxxxxxx",
"onboardedAt": "2021-06-08T01:04:59.455Z",
"onboardedStatus": "COMPLETE",
"onboardedStatusDetail": null,
"onboardedDeviceName": "usw01.pop01.hkg39",
"onboardedInterfaceName": "GigabitEthernet0/0/11",
"onboardedAllocatedBandwidth": 10,
"billingId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"vlanRanges": [
{
"start": 1000,
"end": 1010
}
],
"iciLink": "A",
"reportingLabels": [
"Meeting place port"
],
"supportedServices": [
"L2"
],
"cosTransparency": null,
"cosMapping": {
"GOLD": [
""
],
"SILVERPLUS": [],
"SILVER": [
""
],
"BRONZE": []
},
"externalId": "port-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ticketLink": null,
"crossConnectXcOwner": null,
"crossConnectFullDemarc": null,
"interconnectEnabled": null,
"interconnectProvider": null,
"interconnectOrderNumber": null,
"interconnectCircuitId": null,
"interconnectCompletedAt": null,
"interconnectVlanRange": null,
"interconnectNniPortName": null,
"localLoopEnabled": null,
"localLoopId": null,
"localLoopCustomerId": null,
"localLoopProviderName": null,
"localLoopSalesRecordId": null,
"localLoopBandwidth": null,
"localLoopCompletedAt": null,
"localLoopASideAddress": null,
"localLoopASideXConnectId": null,
"localLoopZSideAddress": null,
"localLoopGsmpId": null,
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"accessCircuit": {
"crossConnectMediaType": null
},
"companyId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"capacity": {
"total": 1000,
"utilised": 365,
"remaining": 635
},
"company": {
"officeAddress": null,
"system": {
"welcomeMessage": true
},
"company": {
"industry": null,
"companySize": null,
"dateFounded": null,
"clientId": null,
"first": null,
"last": null,
"address": null,
"city": null,
"state": null,
"zip": null,
"phone": null,
"fax": null,
"businessType": "Internet Exchange",
"website": "sample.com",
"registeredName": "updatedone2",
"addresses": [
{
"geo": {
"type": "Point",
"coordinates": []
},
"primary": true,
"registered": true,
"address": "2 Stuart Road",
"city": "Tegucigalpa",
"state": "hk",
"zip": "4000",
"country": "HN",
"email": null,
"phone": "01234567891"
}
],
"partnerType": null,
"isIoTDemoCompany": false
},
"cloudProviderDetails": {
"asn": {
"range": [
4200099007,
4200099009
]
},
"cloudType": "vultr",
"companyType": "B2B",
"bgpAuthority": "PCCWGLOBAL"
},
"stats": {
"members": 186,
"interconnections": 0,
"followers": 0,
"following": 0,
"privateArticles": 0,
"privateEvents": 0,
"privatePosts": 0,
"articles": 14,
"events": 0,
"posts": 29
},
"accountManagerEmail": null,
"accountManagerId": null,
"createdAt": "2019-08-09T05:32:18.613Z",
"updatedAt": "2024-07-25T06:51:06.162Z",
"username": "qe1",
"deletedAt": null,
"deleted": false,
"verified": true,
"tags": [
"promoted"
],
"status": "ACTIVE",
"displayOrder": 0,
"external": [
{
"id": "15",
"type": "SDWAN",
"status": "UNSYNCED"
}
],
"groups": [],
"location": null,
"summary": "<p>Testing adding new image12</p>",
"headline": "wholesale",
"background": "xxxxxxxxxxxxxxxxxxxxxxxx",
"avatarId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"name": "SAMPLE NAME",
"type": "COMPANY",
"oldAvatarId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"verifiedIdentity": true,
"portsActive": 14,
"categories": [
"Analytics",
"AI",
"IoT"
],
"overviewImage": "xxxxxxxxxxxxxxxxxxxxxxxx",
"isCloudProvider": true,
"signedCompanyRefId": 4,
"signedCompanyVerified": true,
"billingAccount": "115475",
"businessRegistrationNumber": "123456",
"selectiveQinQTunnelProvider": [],
"companies": [],
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"online": false
},
"dataCenterFacility": {
"system": {
"welcomeMessage": null
},
"company": {
"privacy": {
"network": {
"mode": "PUBLIC",
"blackListIds": [],
"whiteListIds": []
},
"community": {
"mode": "PUBLIC",
"blackListIds": [],
"whiteListIds": []
}
},
"businessType": null,
"partnerType": null,
"companySize": null,
"dateFounded": null,
"registeredName": null,
"businessRegistrationCertReference": null,
"businessRegistrationCertUploadedAt": null,
"businessRegistrationCertRejectedReason": null,
"clientId": null,
"first": null,
"last": null,
"address": null,
"city": null,
"state": null,
"zip": null,
"phone": null,
"fax": null,
"addresses": [
{
"geo": {
"type": "Point",
"coordinates": []
},
"registered": false,
"address": "",
"city": "Hong Kong",
"state": "",
"zip": "zipcode",
"country": "HK",
"email": null,
"phone": null
}
],
"regionalInternetRegistry": [],
"businessRegistrationCertVerified": "UNVERIFIED",
"website": "http://www.company.com1",
"emailDomains": [],
"industry": "",
"businessDevelopmentManagerTypePreference": "UNSPECIFIED",
"isIoTDemoCompany": false
},
"dataCenterFacility": {
"airportCodes": [],
"speeds": [],
"metroId": "dataCenterFacility",
"ready": true,
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"nniReady": true,
"brandId": null,
"canBundleCrossConnect": false
},
"cloudProviderDetails": {
"asn": {
"range": []
},
"bgpAuthority": "PCCWGLOBAL",
"companyType": "DCP"
},
"stats": {
"members": 0,
"interconnections": 0,
"followers": 5,
"following": 0,
"privateArticles": 0,
"privateEvents": 0,
"privatePosts": 0,
"articles": 0,
"events": 0,
"posts": 0
},
"overviewImage": null,
"businessRegistrationNumber": null,
"signedCompanyRefId": null,
"accountManagerEmail": null,
"accountManagerId": null,
"createdAt": "2018-02-20T04:49:09.604Z",
"updatedAt": "2024-07-10T04:22:15.894Z",
"username": "hkg05",
"deletedAt": null,
"deleted": false,
"verified": true,
"tags": [
"offnet",
"monthly-ports"
],
"status": "ACTIVE",
"displayOrder": -299,
"groups": [],
"location": null,
"summary": "",
"headline": null,
"background": null,
"avatarId": null,
"name": "hkg39-Asia-HK-APAC",
"type": "DATA_CENTER_FACILITY",
"popIds": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
],
"costbookLocationId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"costbookLocation": {
"name": "ASIA 1",
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"deletedAt": null,
"createdAt": "2019-05-21T04:09:32.819Z",
"updatedAt": "2019-11-05T01:31:28.426Z",
"tags": [
"generated"
],
"gatewayIds": [],
"regionIds": [
"xxxxxxxxxxxxxxxxxxxxxxxx"
],
"regions": [
{
"name": "APAC",
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"deletedAt": null,
"createdAt": "2017-12-18T00:26:28.610Z",
"updatedAt": "2018-09-11T04:15:10.124Z",
"deleted": false,
"priceMultiplier": 1,
"insightRegion": "Asia"
}
],
"gateways": []
},
"verifiedIdentity": false,
"provider": [
"PCCWGLOBAL"
],
"destinationPortOnly": false,
"categories": [],
"nnis": null,
"isCloudProvider": false,
"l3CostbookLocationId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"bundleCrossConnectChargeId": null,
"signedCompanyVerified": false,
"selectiveQinQTunnelProvider": [],
"companies": [],
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"online": false
},
"connections": [
{
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"name": "SAMPLE NAME",
"status": "ERROR",
"speed": 10,
"type": "LAYER2",
"srcConfigTag": null,
"typeFriendly": "IBM Direct Link"
},
{
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"name": "SAMPLE NAME2",
"status": "ERROR",
"speed": 10,
"type": "LAYER2",
"srcConfigTag": null,
"typeFriendly": "IBM Direct Link"
}
],
"metro": {
"name": "Hong Kong",
"code": "HKG",
"country": "hk",
"rir": "APNIC",
"regionIds": [
"xxxxxxxxxxxxxxxxxxxxxxxx"
],
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"deletedAt": null,
"createdAt": "2017-12-18T00:45:44.120Z",
"updatedAt": "2024-02-25T05:02:47.267Z",
"logo": null,
"description": "a",
"ready": true,
"canCreateController": false,
"deleted": false,
"tags": []
}
}
]
}
Note
Take note of your port ID (
results[0].id
).
This endpoint provides details to a specific port's capabilities, it accepts company ID and port ID as path parameter.
See below sample curl command:
curl -X GET https://api.consoleconnect.com/app-user/${companyId}/ports/${portId}/info`\
-H "Authorization: Bearer [[API key]]"
If the request was successful, it will respond with a JSON object similar to this:
{
"capabilities": {
"giaStandardV1": true,
"l2TypeA": false,
"l3vpnTypeA": true,
"qinq": true
}
}
This section illustrates the creation of an order to reserve a port via the Console Connect API.
Info
Below is a sample curl command that will execute creation of port order, it accepts your company username as path parameter.
curl -X PUT https://api.consoleconnect.com/api/company/${companyUsername}/ports/orders`\
-H "Authorization: Bearer [[API key]]"
--data-raw '{
"dataCenterFacility": "DCF_Company_Username",
"speed": "1000",
"durationUnit": "y",
"portName": "SAMPLE-PORT-NAME",
"paymentType": "invoice"
}'
Note
Refer to Searching DCFs above to obtain a value for
dataCenterFacility
request body field.
This section provides detailed guide on creating L2 connection through Console Connect API Service.
This section illustrates the creation of L2 connectivity between ports through the Console Connect API Service.
The following example demonstrates a S2S (self-to-self) connection, in which a user establishes a link between two ports managed by the same organization. This setup indicates that the user has precise knowledge of the ports involved in the connection.
Info
Below is a sample curl command that will execute the creation of L2 Connection (port to port), it accepts your company username as path parameter.
curl -X PUT https://api.consoleconnect.com/api/v2/company/${companyUsername}/connections/layer2`\
-H "Authorization: Bearer [[API key]]"
--data-raw '{
"name":"DEMO-L2-S2S",
"destCompany":"DEMO-COMPANY",
"portId":"xxxxxxxxxxxxxxxxxxxxxxxx",
"destPortId":"xxxxxxxxxxxxxxxxxxxxxxxx",
"duration":12,
"durationUnit":"m",
"paymentType":"invoice",
"classOfService":"SILVER",
"speed":100,
"type":"LAYER2",
"evergreen":true
}'
Note
To obtain
portId
&destPortId
please see "Listing Ports for a Specific Company".
The following example illustrates a B2B (business-to-business) connection, where a user initiates a link between two ports managed by separate organizations. Consequently, the user does not have prior knowledge of which specific port will be used for the connection.
Note
The following sample curl command is similar to the previous example, with the only difference being the request payload, which includes
destMetroId
,destDcf
,destRegionId
, andregionId
, while excluding the destination port ID (destPortId
).
curl -X PUT https://api.consoleconnect.com/api/v2/company/${companyUsername}/connections/layer2`\
-H "Authorization: Bearer [[API key]]"
--data-raw '{
"name":"DEMO-L2-B2B",
"destCompany":"DEMO-COMPANY",
"destDcf":"xxxxxxxxxxxxxxxxxxxxxxxx",
"destMetroId":xxxxxxxxxxxxxxxxxxxxxxxx,
"destRegionId":xxxxxxxxxxxxxxxxxxxxxxxx,
"portId":"xxxxxxxxxxxxxxxxxxxxxxxx",
"regionId":"xxxxxxxxxxxxxxxxxxxxxxxx",
"duration":1,
"durationUnit":"y",
"paymentType":"invoice",
"classOfService":"SILVER",
"speed":10,
"type":"LAYER2",
"evergreen":true
}'
destMetroId
& destRegionId
execute Listing Metros for a Company then extract metro ID (results[0].id
) and region ID (results[0].regionIds[0]
).destDcf
execute Searching DCFs then extract destination DCF ([0].id
)portId
& regionId
execute "Listing Ports for a Specific Company" then extract region ID (results[0].metros.regionIds[0]
) and port ID (results[0].id
)This section provides a detailed guide for integrating Console Connect Internet On-Demand (IO-D) Service with client system through Console Connect API Service.
Note
On top of the mentioned prerequisite above, please see additional requirements to perform the following action.
This section illustrates the provisioning of IO-D service for a specified company (through company ID) configured with a private ASN
Info
Below is a sample curl command that that provisions an IO-D service for a specific company through company ID as path parameter, configured to auto assign a private ASN.
curl -X POST https://api.consoleconnect.com/app-user/${companyId}/gia-service`\
-H "Authorization: Bearer [[API key]]"
--data-raw '{
"accessPortId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"name": "Sample IO-D Name",
"rateLimit": 10,
"type": "DYNAMIC",
"privateAsn": true,
"privateAsnAutoAssign": true,
"ipBlock": 28,
"enableIpv6": false,
"autoAssignBgpKey": true,
"defaultOriginate": true,
"defaultOriginateIpv6": true,
"duration": {
"quantity": 1,
"unit": "d"
},
"paymentType": "invoice",
"ipGeoCountry": "JP",
"ipGeoCity": ""
}'
capabilities.giaStandardV1
's value is true, then your port is IO-D enabled.results[0].capacity.remaining
).required
request body field.If type
property value is DYNAMIC
Either
If privateAsn
property value is true
privateAsnAutoAssign
property value to true
OR set privateAsnRequested
field providing your private ASN.Note
A helpful endpoint is available in providing you with a range of ASNs by executing Getting Private ASN Range.
Must provide an ipBlock
If enableIpv6
property value is true
ipv6Block
Note:
Currently the only valid value for
ipv6Block
is 48.
Must either set autoAssignBgpKey
property value to true
or supply a 6-24 characters long string value to bgpKey
.
Must not set or include asnId
in the request body.
If privateAsn
property value is false
asnId
)Note
To find your public ASN ID, execute Listing Verified ASN Linked to a Company and take note of your ASN ID (
[0].id
).
Note
To add new ASN, contact Console Connect Support Team (support@consoleconnect.com) providing your ASN.
autoAssignBgpKey
property value to true
or supply a 6-24 characters long string value to bgpKey
.privateAsnRequested
in the request body.privateAsnAutoAssign
in the request body.If type
property value is STATIC
privateAsn
property value to true
.privateAsnAutoAssign
property value to trueipBlock
If enableIpv6
property value is true
ipv6Block
Note:
Currently the only valid value for
ipv6Block
is 48.
asnId
in the request body.privateAsnRequested
in the request body.bgpKey
in the request body.autoAssignBgpKey
in the request body.burstRate
involves a set of rules:This section provides a detailed guide for integrating CloudRouter Services with client systems using the Console Connect API Service.
This is useful when acquiring data that are relevant when Provisioning a new Site on an Existing VPN
Info
Below is a sample curl command that will return an array of previously provisioned CloudRouter(if there are any) that correlates with the specified companyId.
curl -X GET https://api.consoleconnect.com/app-user/${companyId}/l3vpns`\
-H "Authorization: Bearer [[API key]]"
[
{
"name": "Demo",
"status": "CREATED",
"id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"paymentMethod": "invoice",
"duration": {
"quantity": 1,
"unit": "y"
},
"bandwidth": "10GB",
"companyId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"deletedAt": null,
"createdAt": "2023-02-10T16:01:57.308Z",
"updatedAt": "2023-06-23T07:27:21.640Z",
"sites": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"companyId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"l3vpnId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"name": "London Site",
"type": "COMPANY",
"portId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"slVlanId": "119",
"rateLimit": {
"rate": 30,
"unit": "Mbps"
},
"mtu": null,
"classOfService": [
{
"name": "BRONZE",
"value": 100
},
{
"name": "SILVER",
"value": 0
},
{
"name": "GOLD",
"value": 0
}
],
"redundancySiteType": "primary",
"redundancyLinkedSiteId": null,
"status": "ACTIVE",
"simPoolId": null,
"company_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"l3vpn_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"sim_pool_id": null,
"deleted_at": null,
"created_at": "2024-04-23T06:33:22.745Z",
"updated_at": "2024-07-21T15:34:13.201Z",
"port_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"peers": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"companyId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"l3vpnSiteId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"slPeerUuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SELF",
"partner": {},
"status": "ACTIVE",
"bgpKey": "xxxxxxxxxxxxxxxxxxxxxxxx",
"asn": 64512,
"externalIp": "10.51.208.110/30",
"internalIp": "10.51.208.109/30",
"subnet": "10.51.208.108/30",
"defaultOriginate": false,
"company_id": "xxxxxxxxxxxxxxxxxxxxxxxx",
"l3vpn_site_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"deleted_at": null,
"created_at": "2024-04-23T06:35:20.932Z",
"updated_at": "2024-04-23T06:35:52.943Z"
}
],
"providerInfo": {
"city": "London",
"country": "GB",
"countryDisplayName": "United Kingdom",
"metroName": "London",
"dcfName": "SAMPLE Cloud - LD8",
"companyName": "CC API (DEMO)",
"companyUsername": "ccapidemo",
"portName": "SAMPLE PORT - NAME",
"portId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"dcfId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"metroId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"companyId": "xxxxxxxxxxxxxxxxxxxxxxxx",
"portPartner": {
"type": "NONE",
"connectionSpeeds": []
}
}
}
],
"calculatedCapacity": {
"total": 10000,
"used": 30,
"remaining": 9970
}
}
]
Info
With this array of existing CloudRouter data we could extract the L3VPN ID (
[0].sites[0].l3vpnId
) from a specific cloud router's list of sites object.
This section outlines the prerequisites and provides guidelines for provisioning a new VPN site within an existing CloudRouter VPN via Console Connect API integrated in a client system.
Note
On top of the mentioned prerequisite above, please see additional requirements to perform the following action.
Info
Below is a sample curl command that will execute creation of a new site within an existing CloudRouter VPN, it accepts company ID and l3vpn ID as path parameter.
curl -X POST https://api.consoleconnect.com/app-user/${companyId}/l3vpns/${l3vpnId}/site`\
-H "Authorization: Bearer [[API key]]"
--data-raw '{
"name":"SAMPLE NAME",
"accessCircuit":{
"classOfService":[
{"name":"BRONZE","value":50},
{"name":"SILVER","value":50},
{"name":"GOLD","value":0}
],
"rateLimit":{"unit":"Mbps","value":100},
"portId":"PORT_ID"
},
"peer":{"type":"SELF"},
"discountCode":""
}'
Note
The API execution above is an example of
SELF
peer type( sites created on one of your active Console Connect Ports. ), see more details here.