Back to top

Megaport API

The Megaport API allows customers to interact with the business in the same way as the Web and Mobile clients.

Security

The following API endpoints are used for authentication. Virtually every call requires a TOKEN that can be obtained following a successful login. The UUID recorded in the “session” field is what you need to supply as the X-Auth-Token header for authentication of subsequent API calls.

All API calls are made over SSL/TLS, and every call is validated against the calling user account for appropriate permissions.

We support two factor authentication by way of a Time-based One Time Password (TOTP) algorithm as defined by IETF RFC 6238, and supported by the Google Authenticator mobile app on iOS and Android.

Login with User Details

POST/v2/login?username={username}&password={password}&oneTimePassword={oneTimePassword}

Example URI

POST /v2/login?username=username&password=password&oneTimePassword=oneTimePassword
URI Parameters
HideShow
username
string (required) 

your username

password
string (required) 

your password

oneTimePassword
string (optional) 

a one time password as part of two factor authentication

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "permissions": {
    "1544f278-ec03-11e5-9ce9-5e5517507c66": [
      "financials",
      "agent_create_employee",
      "agent_create_sub_agency",
      "tickets",
      "approve_order",
      "admin",
      "services",
      "tools",
      "modify_service",
      "create_employee",
      "marketing",
      "graphs",
      "end_user",
      "place_order",
      "company_admin",
      "create_sub_agency",
      "virtual_employee",
      "notifications"
    ]
  },
  "sourceIp": "103.252.15.1",
  "username": "admin",
  "firstName": "admin",
  "lastName": "admin",
  "companyName": "ADMIN",
  "loginDate": 1441066380875,
  "expiryDate": null,
  "locale": null,
  "timeZone": null,
  "session": "1544f278-ec03-11e5-9ce9-5e5517507c66",
  "language": null,
  "userAgent": null,
  "personId": 2,
  "personUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
  "companyId": 1,
  "companyUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
  "channelPartner": null,
  "region": null
}

Login with Token

POST/v2/login/{token}

Example URI

POST /v2/login/token
URI Parameters
HideShow
token
UUID (required) 

valid session token

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "permissions": {
    "1544f278-ec03-11e5-9ce9-5e5517507c66": [
      "financials",
      "agent_create_employee",
      "agent_create_sub_agency",
      "tickets",
      "approve_order",
      "admin",
      "services",
      "tools",
      "modify_service",
      "create_employee",
      "marketing",
      "graphs",
      "end_user",
      "place_order",
      "company_admin",
      "create_sub_agency",
      "virtual_employee",
      "notifications"
    ]
  },
  "sourceIp": "103.252.15.1",
  "username": "admin",
  "firstName": "admin",
  "lastName": "admin",
  "companyName": "ADMIN",
  "loginDate": 1441066380875,
  "expiryDate": null,
  "locale": null,
  "timeZone": null,
  "session": "1544f278-ec03-11e5-9ce9-5e5517507c66",
  "language": null,
  "userAgent": null,
  "personId": 2,
  "personUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
  "companyId": 1,
  "companyUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
  "channelPartner": null,
  "region": null
}

Logout

GET/v2/logout/{token}

Example URI

GET /v2/logout/token
URI Parameters
HideShow
token
UUID (required) 

valid session token

Response  200
HideShow
Headers
Content-Type: application/json

Change Password

POST/v2/password/change?oldPassword={oldPassword}&newPassword={newPassword}

Example URI

POST /v2/password/change?oldPassword=oldPassword&newPassword=newPassword
URI Parameters
HideShow
oldPassword
Text (required) 

current password

newPassword
Text (required) 

new password

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json

Lists Used for Ordering

For the majority of calls within the Megaport API you will be operating upon ID values for various resources - things like data centre locations, Internet Exchange points etc. The following API calls detail the processes of obtaining lists of various items with relevance to the API functions.

Locations

The locations end point will return a list of data centres in which you can order a Megaport. The id field will be used in subsequent API calls for orders.

GET/v2/locations

  • Request + Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

GET /v2/locations
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message": "List all locations",
    "data": [
        {
            "country": "Bulgaria",
            "liveDate": 1500940800000,
            "siteCode": "sof-tc1",
            "networkRegion": "MP1",
            "address": {
                "country": "Bulgaria",
                "city": "Sofia",
                "street": "10 5030 St",
                "postcode": "1592",
                "suburb": null,
                "state": null
            },
            "campus": "campus_deprecated",
            "latitude": 42.66905,
            "products": {
                "megaport": [
                    1,
                    10
                ],
                "mcr": false
            },
            "market": "BG",
            "metro": "Sofia",
            "name": "3DC/Telecity Sofia",
            "vRouterAvailable": false, // Note that vRouterAvailable is the same as products.mcr and for any new integrations, products.mcr should be used.
            "id": 137,
            "status": "Active",
            "longitude": 23.394033
        },
        {
            "country": "Canada",
            "liveDate": 1485129600000,
            "siteCode": "mtl-4dg",
            "networkRegion": "MP1",
            "address": {
                "country": "Canada",
                "city": "Montreal",
                "street": "2900 Avenue Marie Curie",
                "postcode": "H4S 2C2",
                "suburb": "Saint-Laurent",
                "state": "QC"
            },
            "campus": "campus_deprecated",
            "latitude": 45.48622,
            "products": {
                "megaport": [
                    1,
                    10
                ],
                "mcr": false
            },
            "market": "CA",
            "metro": "Montreal",
            "name": "4Degres Colocation - Montreal",
            "vRouterAvailable": false,
            "id": 163,
            "status": "Active",
            "longitude": -73.755165
        },
    ]
}

Partner Megaports

This end point will return a list of all public partner Megaports. The id field will be used in subsequent API calls for orders.

GET/v2/dropdowns/partner/megaports

  • Request + Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

GET /v2/dropdowns/partner/megaports
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "All Partner Megaports",
  "data": [
    {
      "connectType": "AWS",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "productName": "Amazon (ap-southeast-2) (Global Switch)",
      "companyUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "companyName": "Amazon Corporate Services Pty Ltd",
      "locationId": 3,
      "speed": 10000,
      "rank": 68
    },
    {
      "connectType": "AWS",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "productName": "Amazon (ap-southeast-2) (Equinix SY3)",
      "companyUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "companyName": "Amazon Corporate Services Pty Ltd",
      "locationId": 6,
      "speed": 10000,
      "rank": 61
    },
    {
      "connectType": "DEFAULT",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "productName": "Spectrum Networks MEGAPORT at Global Switch",
      "companyUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "companyName": "Spectrum Networks",
      "locationId": 3,
      "speed": 10000,
      "rank": 7
    },
    {
      "connectType": "DEFAULT",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "productName": "[9974] - APEXn MEGAPORT at NextDC S1",
      "companyUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "companyName": "APEXn Pty Ltd",
      "locationId": 10,
      "speed": 10000,
      "rank": 4
    },
    {
      "connectType": "DEFAULT",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "productName": "Equinix Megaport Service",
      "companyUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "companyName": "Harbour IT Pty Ltd",
      "locationId": 2,
      "speed": 10000,
      "rank": 4
    }
  ]
}

Internet eXchanges IX

GET/v2/product/ix/types?locationId=

This end point will return a list of all available IX Types for a given Location.

  • Parameters + locationId (required, locationId) … Location Identifier

    • Request + Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

GET /v2/product/ix/types?locationId=
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Available IX types for location 6",
  "data": [
    {
      "secondaryIPv4": "103.26.70.2",
      "secondaryIPv6": "2001:dea:0:20::2",
      "primaryIPv4": "103.26.70.1",
      "name": "Brisbane IX",
      "state": "QLD",
      "asn": "58942",
      "primaryIPv6": "2001:dea:0:20::1"
    },
    {
      "secondaryIPv4": "103.26.68.2",
      "secondaryIPv6": "2001:dea:0:10::2",
      "primaryIPv4": "103.26.68.1",
      "name": "Sydney IX",
      "state": "NSW",
      "asn": "58941",
      "primaryIPv6": "2001:dea:0:10::1"
    },
    {
      "secondaryIPv4": "103.26.71.2",
      "secondaryIPv6": "2001:dea:0:30::2",
      "primaryIPv4": "103.26.71.1",
      "name": "Melbourne IX",
      "state": "VIC",
      "asn": "58943",
      "primaryIPv6": "2001:dea:0:30::1"
    },
    {
      "secondaryIPv4": "43.243.22.2",
      "secondaryIPv6": "2001:dea:0:40::2",
      "primaryIPv4": "43.243.22.1",
      "name": "Auckland IX",
      "state": "NZ",
      "asn": "63839",
      "primaryIPv6": "2001:dea:0:40::1"
    }
  ]
}

Standard API Orders

Price check in aisle three (overview)

The standard use case for this API call assumes that the cost of services is well known in advance. We provide a validation end point that checks your potential order, and also provides the price you will be charged for the service you are about to request.

The central concept for ordering services is the Design. The Megaport.al GUI has extensive support for Designs, which are potential network configurations which can be named, saved, validated, priced up, and ultimately ordered. A Design consists of some meta-data, along with a serviceRequestObject that describes at least one Megaport (new or existing), combined with one or more new connectivity services (VXC and or IX). Once a Design is complete, it can be saved with a name (and retrieved later), and placed as an order. The overall workflow is:

  • Add a new or existing Megaport

  • Add one or more IX and or VXC services

  • Save the design

  • Run a pre-flight validation of the Design

  • Place the Order

The central object is the Megaport (physical port) to which associated VXC and IX services will be associated. To order a new Megaport, you require (at a minimum) the following information:

[
        {
          "productName": "My New Port",
          "term": 24,
          "productType": "MEGAPORT",
          "portSpeed": 10000,
          "locationId": 3,
          "associatedIxs": [ ],
          "associatedVxcs": [ ]
        }
    ]
  • productName - this is the friendly name for the port

  • term - the number of months commitment term, acceptable values are 1/12/24/36

  • productType - a MEGAPORT is what we are buying here

  • portSpeed - (required) you can choose from 1000, 10000, or 100000 Mbps (1G, 10G, or 100G (where available))

  • locationId - this is taken from the location list (retrieved earlier) and provides the id of the data center in which you are requesting the port

  • associatedIxs, associatedVxcs are optional if you want to tie these services to the port at this stage

If you already have a Megaport, and wish to add services to it, you just need to fill out the associatedIxs and/or associatedVxcs.

Here is an order for a new VXC on an existing Megaport:

[
        {
          "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
          "associatedVxcs": [
            {
              "productName": "New VXC",
              "rateLimit": 550,
              "aEnd": {
                "vlan": 102
              },
              "bEnd": {
                "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
                "vlan": 101
              }
            }
          ]
        }
    ]
  • productUid - this is taken from the list services end point, and identifies the Megaport to which you want to add a VXC

  • associatedVxcs - this is a list of one or more VXC objects, consisting of

  • productName - will appear on the invoice

  • rateLimit - how fast do you need it to go

  • aEnd - this is always the parent Megaport, and you get to populate the VLAN

  • bEnd - this can be one of your Megaports, or one belonging to another member of the ecosystem, identified by its productUid. You can also specify a VLAN for this end, but if you don’t own it, it could be changed by the owner.

In a similar way, you can add an IX service to an existing Megaport:

[
        {
          "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
          "associatedIxs": [
            {
              "productName": "My Melbourne IX",
              "networkServiceType": "Melbourne IX",
              "asn": 12345,
              "macAddress": "00:00:00:00:00:00",
              "rateLimit": 500,
              "vlan": 101
            }
          ]
        }
    ]
  • productUid - this is taken from the list services end point, and identifies the Megaport to which you want to add an IX service

  • associatedIxs - this is a list of one or more IX objects, consisting of

  • productName - will appear on the invoice

  • networkServiceType - this is essentially the location of the IX, taken from the list of IXs available to a given Megaport.

  • asn - your Autonymous System Number

  • rateLimit - how fast do you need it to go

  • macAddress - in the usual format

  • vlan - optional, but if provided must be unique for a given megaport

Ordering several services at once

You can combine several service orders into the once API call - it is really just a case of combining the last three examples:

[
        {
          "productName": "My New Port",
          "term": 24,
          "productType": "MEGAPORT",
          "portSpeed": 10000,
          "locationId": 3,
          "associatedIxs": [
            {
              "productName": "My Melbourne IX",
              "networkServiceType": "Melbourne IX",
              "asn": 12345,
              "macAddress": "00:01:00:00:00:00",
              "rateLimit": 500,
              "vlan": 101
            }
          ],
          "associatedVxcs": [
            {
              "productName": "New VXC",
              "rateLimit": 550,
              "aEnd": {
                "vlan": 102
              },
              "bEnd": {
                "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
                "vlan": 101
              }
            }
          ]
        }
    ]

In this case, we have just ordered a new Megaport, with an associated IX service, as well as a VXC!

When you have placed an order, we will give you the identifiers for the services that have just been created:

{
      "message": "Order processed",
      "data": "Port [1544f278-ec03-11e5-9ce9-5e5517507c66] created. Created child services IX [1544f278-ec03-11e5-9ce9-5e5517507c66] VXC [1544f278-ec03-11e5-9ce9-5e5517507c66]"
    }

Validate Port Order

Performs a pre-flight validation of the Design to ensure that all parameters presented are within range and acceptable to the provisioning system back-end. Does not commit the order at this stage.

POST/v2/networkdesign/validate

Example URI

POST /v2/networkdesign/validate
Request
HideShow
+ Headers
        X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        Content-Type: application/json
Body
[
       {
          "locationId":36,
          "term":1,
          "locationUid":null,
          "productName":"test",
          "productType":"MEGAPORT",
          "createDate":1452475039656,
          "portSpeed":1000, // Required: 1000, 10000, or 100000 Mbps (1G, 10G, or 100G (where available))
          "virtual":false, // False for port, true for MCR
          "market":"SG"
       }
    ]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation passed",
  "data": [
    {
      "price": {
        "hourlySetup": null,
        "dailySetup": null,
        "monthlySetup": 0,
        "hourlyRate": null,
        "dailyRate": null,
        "monthlyRate": 500,
        "currency": "SGD",
        "key": "region#SG&speed#1000&term#1&currency#SGD",
        "empty": false
      },
      "serviceName": "test",
      "productType": "MEGAPORT",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "market": "SG"
    }
  ]
}

Buy Port

Performs a the order request whereby the submitted information is passed directly to the provisioning system back-end for processing. This will commit the order.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
+ Headers
        X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        Content-Type: application/json
Body
[
        {
            "locationId":36,
            "term":12,
            "productName":"test",
            "productType":"MEGAPORT",
            "createDate":1452475039656,
            "portSpeed":1000, // Required: 1000, 10000, or 100000 Mbps (1G, 10G, or 100G (where available))
            "virtual":false,
            "market":"SG"
        }
    ]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message" : "Port [1544f278-ec03-11e5-9ce9-5e5517507c66] created. ",
       "data" : [
          {
            "serviceName" : "test",
            "name" : "test",
            "technicalServiceId" : 39,
            "technicalServiceUid" : "1544f278-ec03-11e5-9ce9-5e5517507c66",
            "requestedDate" : 1467702470389,
            "currentEstimatedDelivery" : nil,
            "companyName" : "company",
            "companyId" : 126,
            "billingContactName" : nil,
            "billingContactId" : nil,
            "adminContactName" : nil,
            "adminContactId" : nil,
            "technicalContactName" : nil,
            "technicalContactId" : nil,
            "salesName" : nil,
            "salesId" : nil,
            "billableId" : 16,
            "billableUsageAlgorithm" : "NOT_POST_PAID",
            "productType" : "MEGAPORT",
            "provisioningStatus" : "DEPLOYABLE",
            "inAdvanceBillingStatus" : "NOT_ACTIVATED",
            "provisioningItems" : [],
            "tags" : [],
            "vxcDistanceBand" : nil,
            "intercapPath" : nil,
            "marketplaceVisibility" : true,
            "vxcPermitted" : true,
            "createDate" : 1467702470389,
            "terminationDate" : nil,
            "contractStartDate" : 1467640800000,
            "rateType" : "MONTHLY",
            "trialAgreement" : false,
            "payerCompanyId" : nil,
            "minimumSpeed" : nil,
            "maximumSpeed" : nil,
            "errorMessage" : nil,
            "market" : "Australia",
            "accountManager" : nil,
            "promptUid" : nil,
            "components" : [],
            "attribtes" : [],
            "aLocation" : nil,
            "bLocation" : nil,
            "aLocationId" : nil,
            "bLocationId" : nil,
            "shortTechnicalServiceUid" : "1544f278"
        }
    ]
}

Validate MCR Order

Performs a pre-flight validation of the Design to ensure that all parameters presented are within range and acceptable to the provisioning system back-end. Does not commit the order at this stage.

POST/v2/networkdesign/validate

Example URI

POST /v2/networkdesign/validate
Request
HideShow
+ Headers
        X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        Content-Type: application/json
Body
[
       {
          "locationId":68,
          "term":1,
          "locationUid":null,
          "productName":"test",
          "productType":"MEGAPORT",
          "createDate":1452475039656,
          "portSpeed":1000,
          "virtual":true, // Note: Virtual true => MCR
          "market":"US",
          "config": { // Note: The config for the ASN is only required if you don't want to use the Megaportal default asn (133937)
            "mcrAsn": 42
         }
       }
    ]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation passed",
  "data": [
    {
      "price": {
        "hourlySetup": 0,
        "dailySetup": 0,
        "monthlySetup": 0,
        "hourlyRate": 0,
        "dailyRate": 0,
        "monthlyRate": 350,
        "fixedRecurringCharge": 0,
        "postPaidBaseRate": "no base rate",
        "longHaulMbpsRate": 2,
        "mbpsRate": 2,
        "currency": "USD",
        "key": "no key",
        "productType": "MEGAPORT",
        "forceProductChange": null,
        "empty": false
      },
      "serviceName": "test",
      "productType": "MEGAPORT",
      "productUid": "b70af199-30bc-45ce-b154-94ee5dc5efb8",
      "market": "US",
      "metro": "Ashburn"
    }
  ]
}

Buy MCR

Performs a the order request whereby the submitted information is passed directly to the provisioning system back-end for processing. This will commit the order.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
+ Headers
        X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        Content-Type: application/json
Body
[
  {
    "locationId": 68,
    "term": 1,
    "locationUid": null,
    "productName": "test",
    "productType": "MEGAPORT",
    "createDate": 1452475039656,
    "portSpeed": 1000,
    "virtual": true,
    "market": "US",
    "config": {
      "mcrAsn": 42
    }
  }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Port [33a701b4-038f-4182-a03b-cbc63d2caf4a] created. ",
  "data": [
    {
      "serviceName": "test",
      "name": "test",
      "secondaryName": null,
      "technicalServiceId": 20266,
      "technicalServiceUid": "33a701b4-038f-4182-a03b-cbc63d2caf4a",
      "requestedDate": 1529913030580,
      "configuredDate": null,
      "currentEstimatedDelivery": null,
      "companyName": "Megaport Lab",
      "companyId": 1153,
      "billingContactName": null,
      "billingContactId": null,
      "adminContactName": null,
      "adminContactId": null,
      "technicalContactName": null,
      "technicalContactId": null,
      "salesName": null,
      "salesId": null,
      "billableId": 19844,
      "billableUsageAlgorithm": "POST_PAID_HOURLY_SPEED_MCR",
      "productType": "MEGAPORT",
      "provisioningStatus": "DEPLOYABLE",
      "inAdvanceBillingStatus": "NOT_ACTIVATED",
      "provisioningItems": [],
      "tags": [],
      "vxcDistanceBand": null,
      "intercapPath": null,
      "marketplaceVisibility": true,
      "vxcPermitted": true,
      "vxcAutoApproval": false,
      "createDate": 1529913030580,
      "terminationDate": null,
      "contractStartDate": 1529848800000,
      "rateType": "MONTHLY",
      "trialAgreement": false,
      "payerCompanyId": null,
      "minimumSpeed": null,
      "maximumSpeed": null,
      "rateLimit": 1000,
      "errorMessage": null,
      "market": "USA",
      "accountManager": null,
      "promptUid": null,
      "components": [],
      "attributes": [],
      "aLocation": null,
      "bLocation": null,
      "aLocationId": null,
      "bLocationId": null,
      "attributeTags": {},
      "createdBy": "dca8286a-590e-4c20-8c13-d42c54481537",
      "buyoutPort": false,
      "virtual": true,
      "shortTechnicalServiceUid": "33a701b4"
    }
  ]
}

Validate IX Order

Performs a pre-flight validation of the IX Order request to ensure that all parameters presented are within range and acceptable to the provisioning system back-end. Does not commit the order at this stage.

POST/v2/networkdesign/validate

Example URI

POST /v2/networkdesign/validate
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
[
  {
    "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
    "associatedIxs": [
      {
        "productName": "My Singapore IX",
        "networkServiceType": "Singapore IX",
        "asn": 12345,
        "macAddress": "00:11:22:33:44:55",
        "rateLimit": 500,
        "vlan": 101
      }
    ]
  }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation passed",
  "data": [
    {
      "price": {
        "hourlySetup": 0,
        "dailySetup": 0,
        "monthlySetup": 0,
        "hourlyRate": 0,
        "dailyRate": 0,
        "monthlyRate": 0,
        "currency": "SGD",
        "key": null,
        "empty": false
      },
      "serviceName": "My Singapore IX",
      "productType": "IX",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66"
    }
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation failed",
  "data": [
    {
      "serviceName": "My Singapore IX",
      "productType": "IX",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "error": "Interface 2627 already has Singapore IX, and only one is permitted"
    }
  ]
}

Buy IX

Performs a the order request whereby the submitted information is passed directly to the provisioning system back-end for processing. This will commit the order.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
[
  {
    "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
    "associatedIxs": [
      {
        "productName": "My Singapore IX",
        "networkServiceType": "Singapore IX",
        "asn": 12345,
        "macAddress": "00:11:22:33:44:55",
        "rateLimit": 500,
        "vlan": 101
      }
    ]
  }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message" : "IX [544f278-ec03-11e5-9ce9-5e5517507c66] created. ",
       "data" : [
          {
            "serviceName" : "Brisbane IX",
            "name" : "Brisbane IX",
            "technicalServiceId" : 35,
            "technicalServiceUid" : "544f278-ec03-11e5-9ce9-5e5517507c66",
            "requestedDate" : 1467704239895,
            "currentEstimatedDelivery" : nil,
            "companyName" : "company name",
            "companyId" : 37,
            "billingContactName" : nil,
            "billingContactId" : nil,
            "adminContactName" : nil,
            "adminContactId" : nil,
            "technicalContactName" : nil,
            "technicalContactId" : nil,
            "salesName" : nil,
            "salesId" : nil,
            "billableId" : 352,
            "billableUsageAlgorithm" : "NOT_POST_PAID",
            "productType" : "IX",
            "provisioningStatus" : "DEPLOYABLE",
            "inAdvanceBillingStatus" : "NOT_ACTIVATED",
            "provisioningItems" : [],
            "tags" : [],
            "vxcDistanceBand" : "INTERCAP",
            "intercapPath" : "AB",
            "marketplaceVisibility" : true,
            "vxcPermitted" : true,
            "createDate" : 1467704239895,
            "terminationDate" : nil,
            "contractStartDate" : 1467640800000,
            "rateType" : "MONTHLY",
            "trialAgreement" : false,
            "payerCompanyId" : nil,
            "minimumSpeed" : nil,
            "maximumSpeed" : nil,
            "errorMessage" : nil,
            "publicGraph" : true,
            "market" : "Singapore",
            "accountManager" : nil,
            "promptUid" : nil,
            "components" : [],
            "attribtes" : [],
            "aLocation" : nil,
            "bLocation" : nil,
            "aLocationId" : nil,
            "bLocationId" : nil,
            "shortTechnicalServiceUid" : "544f278"
        }
    ]
}

Validate VXC Order

Performs a pre-flight validation of the VXC Order request to ensure that all parameters presented are within range and acceptable to the provisioning system back-end. Does not commit the order at this stage.

POST/v2/networkdesign/validate

Example URI

POST /v2/networkdesign/validate
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/jsonn)
Body
[
  {
    "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
    "associatedVxcs": [
      {
        "productName": "My New VXC",
        "rateLimit": 550,
        "aEnd": {
          "vlan": 102
        },
        "bEnd": {
          "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
          "vlan": 101
        }
      }
    ]
  }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation passed",
  "data": [
    {
      "price": {
        "hourlySetup": null,
        "dailySetup": 0,
        "monthlySetup": 0,
        "hourlyRate": null,
        "dailyRate": 50,
        "monthlyRate": 500,
        "currency": "SGD",
        "key": "distanceBand#metro&rateType#monthly&region#SG&currency#SGD",
        "empty": false
      },
      "serviceName": "My New VXC",
      "productType": "VXC",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "market": "SG"
    }
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation failed",
  "data": [
    {
      "serviceName": "My New VXC",
      "productType": "VXC",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "error": "A and B end of VXC are on different networks"
    }
  ]
}

Buy VXC

Performs a the order request whereby the submitted information is passed directly to the provisioning system back-end for processing. This will commit the order.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
[
  {
    "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
    "associatedVxcs": [
      {
        "productName": "My New VXC",
        "rateLimit": 550,
        "aEnd": {
          "vlan": 102
        },
        "bEnd": {
          "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
          "vlan": 101
        }
      }
    ]
  }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message": "VXC [1544f278-ec03-11e5-9ce9-5e5517507c66] created",
    "data" : [
        {
          "createDate" : 1467704245970,
          "vxcOrderId" : 109,
          "payerMegaPortId" : 73,
          "nonPayerMegaPortId" : 74,
          "payerMegaPortName" : "test",
          "nonPayerMegaPortName" : "test",
          "payerCompanyId" : 50,
          "nonPayerCompanyId" : 50,
          "salesId" : nil,
          "payerCompanyName" : "company name",
          "nonPayerCompanyName" : "company name",
          "payerMegaPortNsId" : 105,
          "nonPayerMegaPortNsId" : 107,
          "payerVlanId" : 101,
          "nonPayerVlanId" : 102,
          "payerApproverName" : "selenium selenium-1467704201",
          "payerApproverId" : 233,
          "nonPayerApproverName" : "selenium selenium-1467704201",
          "nonPayerApproverId" : 234,
          "payerApproval" : 23423432,
          "nonPayerApproval" : 123422,
          "fixedTerm" : true,
          "duration" : 1,
          "rollover" : true,
          "serviceName" : "from test to test",
          "payerStatus" : "APPROVED",
          "nonPayerStatus" : "APPROVED",
          "speed" : 500,
          "distanceBand" : "INTERCAP",
          "intercapPath" : "AB",
          "awsId" : nil,
          "promoCode" : nil,
          "rateType" : "MONTHLY",
          "vxcJTechnicalServiceId" : 36,
          "vxcJTechnicalServiceUid" : "1544f278-ec03-11e5-9ce9-5e5517507c66",
          "provisionDate" : 1467704245825,
          "orderType" : "NEW",
          "monthlyDiscountAmount" : nil,
          "discountMonths" : nil,
          "amazonDirectConnectConfigDto" : nil,
          "amsixConnectConfigDto" : nil,
          "rate" : nil,
          "setup" : nil,
          "asn" : nil,
          "bgpPassword" : nil,
          "usageAlgorithm" : "TIME_AT_RATE",
          "costCentre" : nil,
          "azureServiceKey" : nil,
          "serviceKey" : nil,
          "connectType" : "DEFAULT",
          "fullyApproved" : true
          }
        ]
  }

Service Keys

Service keys are used within the Megaport.al context to identify a request path to activate a VXC towards a given Megaport. They may be single use or multiple use, pre approved or upon request to the issuing entity, and have maximum speeds and validity periods attached. Note that only a single-use service key may contain a VLAN id as multiple use keys cannot re-use this same VLAN so it will be auto populated.

GET/v2/service/key

Example URI

GET /v2/service/key
URI Parameters
HideShow
productIdOrUid
UUID (optional) 

list keys linked to the given MEGAPORT

key
UUID (optional) 

get details for single key

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Found [1] service keys",
  "data": [
    {
      "key": "a04f9c5e-402e-40a2-b4ce-2887d3fa49e8",
      "createDate": 1448946905811,
      "companyId": 1153,
      "companyUid": "18f1ad83-0d75-41b2-99b7-b5ffe225a0d9",
      "companyName": "Megaport Lab",
      "description": null,
      "productId": 123,
      "productUid": "221d9846-eab9-41e8-8074-346cd3570a28",
      "productName": "Lab 10G Megaport in Sydney",
      "vlan": 1001,
      "maxSpeed": 10000,
      "preApproved": true,
      "singleUse": true,
      "lastUsed": null,
      "active": true,
      "validFor": null,
      "valid": true
    }
  ]
}

POST/v2/service/key

Example URI

POST /v2/service/key
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
{
  "productUid": "221d9846-eab9-41e8-8074-346cd3570a28",
  "vlan": 1001,
  "singleUse": true,
  "maxSpeed": null,
  "preApproved": true,
  "description": "Documentation Service Key",
  "active": true,
  "validFor": {
    "start": 1446438929356,
    "end": 1449030932662
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "New service key [980497b6-32ef-42ee-b6a6-c6fd79451fdf] generated",
  "data": {
    "key": "980497b6-32ef-42ee-b6a6-c6fd79451fdf",
    "createDate": 1449031709865,
    "companyId": 1153,
    "companyUid": "18f1ad83-0d75-41b2-99b7-b5ffe225a0d9",
    "companyName": "Megaport Lab",
    "description": "Leo's testing service key",
    "productId": 123,
    "productUid": "221d9846-eab9-41e8-8074-346cd3570a28",
    "productName": "Lab 10G Megaport in Sydney",
    "productDto": {
      "productUid": "221d9846-eab9-41e8-8074-346cd3570a28",
      "productName": "Lab 10G Megaport in Sydney",
      "productType": "MEGAPORT",
      "provisioningStatus": "CONFIGURED",
      "createDate": 1448410450021,
      "portSpeed": 10000,
      "terminateDate": null,
      "market": "AU",
      "locationId": 6,
      "associatedVxcs": [],
      "associatedIxs": [],
      "resources": {
        "interface": {
          "description": "Megaport Lab",
          "port_speed": 10000,
          "resource_type": "interface",
          "demarcation": "",
          "media": "LR/LX",
          "name": "Ethernet1/1"
        }
      }
    },
    "vlan": 1001,
    "maxSpeed": 10000,
    "preApproved": true,
    "singleUse": true,
    "lastUsed": null,
    "active": true,
    "validFor": {
      "start": 1446438929356,
      "end": 1449030932662
    },
    "valid": false
  }
}

PUT/v2/service/key

Example URI

PUT /v2/service/key
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
{
  "key": "980497b6-32ef-42ee-b6a6-c6fd79451fdf",
  "productId": 123,
  "vlan": 1101,
  "singleUse": true,
  "maxSpeed": null,
  "preApproved": true,
  "description": "Documentation Service Key",
  "active": true,
  "validFor": {
    "start": 1446438929356,
    "end": 1449030932662
  }
}

Cloud Partner API Orders

Who are the Cloud Partners?

Megaport has pre-integrated into the leading cloud service providers to make it even easier for you to set up a VXC directly into your cloud infrastructure.

We currently offer automated configuration and connection to the following partners:

  • Amazon Web Services (DirectConnect)

  • Microsoft Azure (ExpressRoute)

  • Google

  • Oracle (FastConnect)

  • AMSIX

  • Alibaba Cloud

  • WebAir

Each cloud partner has a different way of configuring their services, and we cover each one in turn below.

When creating a VXC to a cloud partner, the first step is usually to identify which Megaport to use for the B end of the connection. For AWS, this is just a case of looking up the list of partner ports (/v2/dropdowns/partner/megaports) and looking for those ports where the connectType is ‘AWS’. For other service providers, you first need to create the virtual network or circuit in the partner’s portal, and then use the identifier to look up available ports. This is the approach taken with Microsoft Azure and Oracle Cloud.

Once the B end has been chosen, there is usually a small amount of extra partner-specific config data that we need in order to light up the VXC. We generically call this partnerConfigs and it can look something like this:

"partnerConfigs": {
              "connectType": "AWS",
              "type": "private",
              "asn": 65105,
              "ownerAccount": "684021030471",
              "authKey": "***",
              "prefixes": "10.0.1.0/24",
              "customerIpAddress": null,
              "amazonIpAddress": null
            }

We can accept this data in either the ‘associatedVxc’ data structure directly, or in the bEnd data structure.

Finally, if you’d like to become a cloud partner to Megaport and facilitate your customers connecting to your cloud infrastructure via the Megaport network fabric, please contact sales@megaport.com for details.

Validate VXC to Cloud Partner

VXC services ordered to cloud partners are validated in the same way as for standard VXC orders.

POST/v2/networkdesign/validate

Example URI

POST /v2/networkdesign/validate
Request
HideShow
+ Headers
    X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Content-Type: application/json
Body
[
        {
          "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
          "associatedVxcs": [
            {
              "productName": "My Amazon Direct Connect",
              "rateLimit": "100",
              "partnerConfigs": {
                "connectType": "AWS",
                "name": "Amazon name for service", // Optional (defaults to MEGAPORT). This will appear in the Configure AWS.
                "type": "private",
                "asn": 65105,
                "ownerAccount": "684021030471",
                "authKey": "***", // Note that on GET of /product/productUid?incResources=true it will be part of resources/aws_virtualinterface
                "prefixes": "10.0.1.0/24",
                "customerIpAddress": null,
                "amazonIpAddress": null
              },
              "aEnd": {
                "vlan": 101
              },
              "bEnd": {
                "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66"
              }
            }
          ]
        }
    ]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation passed",
  "data": [
    {
      "price": {
        "hourlySetup": null,
        "dailySetup": 0,
        "monthlySetup": 0,
        "hourlyRate": null,
        "dailyRate": 50,
        "monthlyRate": 500,
        "currency": "SGD",
        "key": "distanceBand#metro&rateType#monthly&region#SG&currency#SGD",
        "empty": false
      },
      "serviceName": "My Amazon Direct Connect",
      "productType": "VXC",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "market": "SG"
    }
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Validation failed",
  "data": [
    {
      "serviceName": "My Amazon Direct Connect",
      "productType": "VXC",
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
      "error": "Prefix (10.0.3.0/24) must be a publicly routable network"
    }
  ]
}

AWS - Buy

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
+ Headers
    X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Content-Type: application/json
Body
[
  {
    "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
    "associatedVxcs": [
      {
        "productName": "My Amazon Direct Connect",
        "rateLimit": "100",
        "partnerConfigs": {
          "connectType": "AWS",
          "type": "private",
          "asn": 65105,
          "ownerAccount": "684021030471",
          "authKey": "***",
          "prefixes": "10.0.1.0/24",
          "customerIpAddress": null,
          "amazonIpAddress": null
        },
        "aEnd": {
          "vlan": 101
        },
        "bEnd": {
          "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66"
        }
      }
    ]
  }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message": "VXC [1544f278-ec03-11e5-9ce9-5e5517507c66] created. ",
    "data" : [
      {
        "createDate" : 1467705044025,
        "vxcOrderId" : 19,
        "payerMegaPortId" : 37,
        "nonPayerMegaPortId" : 38,
        "payerMegaPortName" : "test",
        "nonPayerMegaPortName" : "test",
        "payerCompanyId" : 32,
        "nonPayerCompanyId" : 32,
        "salesId" : nil,
        "payerCompanyName" : "company name",
        "nonPayerCompanyName" : "company name",
        "payerMegaPortNsId" : 56,
        "nonPayerMegaPortNsId" : 58,
        "payerVlanId" : 101,
        "nonPayerVlanId" : 102,
        "payerApproverName" : "payer",
        "payerApproverId" : 31,
        "nonPayerApproverName" : "Megaport null",
        "nonPayerApproverId" : 118,
        "payerApproval" : 1434,
        "nonPayerApproval" : 1460,
        "fixedTerm" : true,
        "duration" : 1,
        "rollover" : true,
        "serviceName" : "from test to test",
        "payerStatus" : "APPROVED",
        "nonPayerStatus" : "APPROVED",
        "speed" : 100,
        "distanceBand" : "INTERCAP",
        "intercapPath" : "AB",
        "awsId" : nil,
        "promoCode" : nil,
        "rateType" : "MONTHLY",
        "vxcJTechnicalServiceId" : 21,
        "vxcJTechnicalServiceUid" : "1544f278-ec03-11e5-9ce9-5e5517507c66",
        "provisionDate" : 1467705043859,
        "orderType" : "NEW",
        "monthlyDiscountAmount" : nil,
        "discountMonths" : nil,
        "amazonDirectConnectConfigDto" : {
                "type" : "private",
                "asn" : 1234,
                "ownerAccount" : "92932494",
                "authKey" : "0123",
                "customerIpAddress" : "null",
                "amazonIpAddress" : "null",
                "prefixes" : "10.0.1.0/24",
                "name" : nil
        },
      "amsixConnectConfigDto" : nil,
      "rate" : nil,
      "setup" : nil,
      "asn" : nil,
      "bgpPassword" : nil,
      "usageAlgorithm" : "TIME_AT_RATE",
      "costCentre" : nil,
      "azureServiceKey" : nil,
      "serviceKey" : nil,
      "connectType" : "AWS",
      "fullyApproved" : true
    }
  ]
}

Azure - step 1 - Lookup

Ordering an ExpressRoute is a two step process. The first step is to use the service key and ensure there is a free Port that can be used. For example, in the response below, note that the second port listed has ‘vxc’:null and so can be used, while the first cannot.

GET/v2/secure/Azure/{service_key}

Example URI

GET /v2/secure/Azure/service_key
URI Parameters
HideShow
service_key
UUID (required) 

Azure service key

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Successful lookup",
  "data": {
    "bandwidth": 50,
    "megaports": [
      {
        "port": 100,
        "type": "primary",
        "vxc": 200,
        "productId": 100,
        "productUid": "a4f54ebc-0fa2-492f-a713-1ed7d49dca1c",
        "name": "Brisbane Primary",
        "nServiceId": 1001,
        "description": "Azure ExpressRoute at BNE",
        "companyId": 100,
        "companyUid": "f823af68-1f04-4d26-909a-7a76fa7f2d74",
        "companyName": "Microsoft Australia",
        "portSpeed": 10000,
        "locationId": 3,
        "state": "QLD",
        "country": "Australia"
      },
      {
        "port": 120,
        "type": "secondary",
        "vxc": null,
        "productId": 120,
        "productUid": "e269447e-5601-4575-9c23-32fe5a9f8605",
        "name": "Brisbane Secondary",
        "nServiceId": 1003,
        "description": "Azure ExpressRoute at BNE B",
        "companyId": 1475,
        "companyUid": "f823af68-1f04-4d26-909a-7a76fa7f2d74",
        "companyName": "Microsoft Australia",
        "portSpeed": 10000,
        "locationId": 3,
        "state": "QLD",
        "country": "Australia"
      }
    ],
    "resource_type": "Azure_connection",
    "service_key": "63dasd3c-f578-430d-b67a-0bdfgcfdfg152f",
    "vlan": 300
  }
}

Azure - step 2 - Buy

The second step is a standard buy VXC request using the details from above. Ensure that you select a Megaport in the same network region as the Megaport from the lookup request above as the vlan aEnd. For example in the request above, the locationId is ‘3’ for the available Megaport with productUid ‘e269447e-5601-4575-9c23-32fe5a9f8605’. Use the locations endpoint to check the region. Ensure you use the details of the megaport from which you wan to connect as the vlan aEnd and the details of the spare megaport from the Azure lookup request above as the vlan bEnd. Details required productUid and vlan.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
[
    { 
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66", //port UID of your Megaport (A End)
      "associatedVxcs": [
        {
          "productName": "My New VXC",
          "rateLimit": 550,
          "aEnd": {
            "vlan": 102
          },
          "bEnd": {
            "productUid": "e269447e-5601-4575-9c23-32fe5a9f8605", //retrieved port UID from the Azure service key lookup
            "vlan": 300 //retrieved VLAN from the Azure service key lookup
            "partnerConfig" : {
              "connectType": "AZURE",
              "serviceKey": "63dasd3c-f578-430d-b67a-0bdfgcfdfg152f", //service key from step 1 above
              "peers": [
                {
                  "type": "private"
                },
                {
                  "type": "microsoft"
                }
              ] // 'private' AND/OR 'microsoft' are valid peer types when connecting from MCR. Otherwise omit this field. 
            },
          }
        }
      ]
    }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Order processed",
  "data": "Created child services [] [VXC 1544f278-ec03-11e5-9ce9-5e5517507c66]"
}

Oracle - step 1 - Lookup

Ordering a VXC to Oracle is a two step process, and assumes that a virtual circuit has already been purchased in the Oracle portal and that you have the virtual circuit id on hand. The first step is to use the Oracle circuit id to look up the associated Megaports and ensure there is a free Port that can be used. For example, in the response below, note that the second port listed has ‘vxc’:null and so can be used, while the first cannot.

GET/v2/secure/oracle/

  • Parameters + circuit_id (required) … Oracle circuit id, eg ocid1.virtualcircuit.oc1.phx.aaaaaaaantxgcsdtkpbegkgxs73bluiggcpdauxz345ncrnd3atqwgihj5aq

    • Request
      • Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

GET /v2/secure/oracle/
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    message: "Successful lookup",
    data: {
        bandwidth: null,
        csp_id: "ocid1.virtualcircuit.oc1.phx.aaaaaaaantxgcsdtkpbegkgxs73bluiggcpdauxz345ncrnd3atqwgihj5aq",
        megaports: [
            {
                port: 5073,
                vxc: 1234,
                productId: 5073,
                productUid: "46c71b6d-115e-4de4-8894-4f40d0fdbc98",
                name: "Oracle BMCS (us-phoenix-1) (1)",
                nServiceId: 10419,
                description: "Oracle at CyrusOne Chandler",
                companyId: 5039,
                companyUid: "8ea83603-445c-40c6-94cf-67967a18beb9",
                companyName: "Oracle",
                portSpeed: 10000,
                locationId: 147,
                state: "AZ",
                country: "USA"
            },
            {
                port: 5070,
                vxc: null,
                productId: 5070,
                productUid: "0c6efa2f-ba70-41c4-a3b4-51708adb969c",
                name: "Oracle BMCS (us-phoenix-1) (2)",
                nServiceId: 10415,
                description: "Oracle at CyrusOne Chandler",
                companyId: 5039,
                companyUid: "8ea83603-445c-40c6-94cf-67967a18beb9",
                companyName: "Oracle",
                portSpeed: 10000,
                locationId: 147,
                state: "AZ",
                country: "USA"
            }
        ],
        resource_type: "csp_connection"
    }
}

Oracle - step 2 - Buy

The second step is a standard buy VXC request using the details from above. Ensure that you select a Megaport in the same network region as the Megaport from the lookup request above as the vlan aEnd. For example in the request above, the locationId is ‘3’ for the available Megaport with productUid ‘e269447e-5601-4575-9c23-32fe5a9f8605’. Use the locations endpoint to check the region. Ensure you use the details of the megaport from which you wan to connect as the vlan aEnd and the details of the spare megaport from the Oracle lookup request above as the vlan bEnd. Details required productUid and vlan.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
+ Headers
    X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Content-Type: application/json
Body
[
    {
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66", //port UID of your Megaport (A End)
      "associatedVxcs": [
        {
          "productName": "My New VXC",
          "rateLimit": 550,
          "aEnd": {
            "vlan": 102
          },
          "bEnd": {
            "productUid": "0c6efa2f-ba70-41c4-a3b4-51708adb969c", // retrieved port UID from the Oracle circuit lookup
            "vlan": 300, // Overridden by value from CSP in the case of Oracle or Azure, but otherwise honoured.
            "partnerConfig" : {
                "connectType": "ORACLE",
                "virtualCircuitId": "ocid1.virtualcircuit.oc1.phx.aaaaaaaantxgcsdtkpbegkgxs73bluiggcpdauxz345ncrnd3atqwgihj5aq" // Circuit id from step 1 above
            },
          }
        }
      ]
    }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Order processed",
  "data": "Created child services [] [VXC 1544f278-ec03-11e5-9ce9-5e5517507c66]"
}

Alibaba - Buy

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
[
    {
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66", //port UID of your Megaport (A End)
      "associatedVxcs": [
        {
          "rateLimit": 1000,
          "productName": "Example Alibaba VXC",
          "aEnd": {
            "vlan": 90,
          },
          "bEnd": {
            "productUid": "87b52c63-ede7-48ab-bfa1-0eaa33ced7b0", //port UID of your Alibaba CSP Port (B End)
            "partnerConfig": {
              "vbrOwnerId": "5234561292937849",
              "connectType": "ALIBABA",
            }
          }
        }
      ]
    }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Order processed",
  "data": "Created child services [] [VXC 1544f278-ec03-11e5-9ce9-5e5517507c66]"
}

Google - step 1 - Lookup

Ordering a VXC to Google is a two step process, and assumes that a pairing key has already been obtained in the Google portal and that you have the pairing key on hand. The first step is to use the Google pairing key to look up the associated Megaports and ensure there is a free Port that can be used. For example, in the response below, note that the second port listed has ‘vxc’:null and so can be used, while the first cannot.

Google requires that the banwidth on the VXC matches one of the predefined bandwidths in the returned list.

GET/v2/secure/google/{pairing_key}

Example URI

GET /v2/secure/google/pairing_key
URI Parameters
HideShow
pairing_key
string (required) 

Google pairing key, eg 00000000-0000-0000-0000-000000000000/region/zone

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message": "Successful lookup",
    "data": {
        "bandwidths": [
        50,
        100,
        200,
        300,
        400,
        500,
        1000,
        2000,
        5000,
        10000
        ],
        "megaports": [
        {
            "port": 13687,
            "vxc": {
                // existing vxc object
            },
            "productId": 13687,
            "productUid": "2c9337ba-b6a6-44cc-851c-58315060a0e3",
            "name": "New York (lga-zone2-1422)",
            "nServiceId": 30890,
            "description": "Google Inc at Digital Realty NYC1",
            "companyId": 90,
            "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
            "companyName": "Google Inc",
            "portSpeed": 10000,
            "locationId": 62,
            "state": "NY",
            "country": "USA"
        },
        {
            "port": 12515,
            "vxc": null,
            "productId": 12515,
            "productUid": "2fa8c6c5-314f-4d14-8fb6-e1f7f86bdacc",
            "name": "Ashburn (iad-zone2-1)",
            "nServiceId": 28349,
            "description": "Google Inc at zColo 21635 Red Rum Drive",
            "companyId": 90,
            "companyUid": "29ba879b-45c8-48eb-bd97-618d0f20ea04",
            "companyName": "Google Inc",
            "portSpeed": 10000,
            "locationId": 84,
            "state": "VA",
            "country": "USA"
        }
        ],
        "resource_type": "csp_connection"
    }
}

Google - step 2 - Buy

The second step is a standard buy VXC request using the details from above to determine the port and bandwidth.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
[
    {
      "productUid": "d5f4a3c6-06d3-4cfa-9d4e-8ce6ec0b6dbd"", //port UID of your Megaport (A End)
      "associatedVxcs": [
        {
            "rateLimit": 100, // from list of google supported bandwidths in lookup
            "productName": "Example Google VXC",
            "productUid": "6058acf0-410b-11e8-b3ce-150bacf9bc67",
            "aEnd": {
                "vlan": 90,
            },
            "bEnd": {
                "productUid": "7bab4547-ff88-43f9-a1de-3df637522fa5", // port Uid from lookup
                "partnerConfig": {
                    "connectType": "GOOGLE",
                    "pairingKey": "fbbf41b1-9513-4837-a91a-22a8bb065704/us-west1/2",
                }
            },
            "productType": "VXC",
            }
      ]
    }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Order processed",
  "data": "Created child services [] [VXC 1544f278-ec03-11e5-9ce9-5e5517507c66]"
}

Nutanix - step 1 - Lookup

Ordering a Nutanix Xi DirectConnect subscription is a two step process. The first step is to use the service key and ensure there is a free Port that can be used. For example, in the response below, note that the port listed has ‘vxc’:null and so can be used.

GET/v2/secure/nutanix/{serviceKey}

Example URI

GET /v2/secure/nutanix/serviceKey
URI Parameters
HideShow
serviceKey
UUID (required) 

Nutanix service key

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Successful lookup",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
  "data": {
    "bandwidth": 450,
    "connectType": "NUTANIX",
    "megaports": [
      {
        "port": 7206,
        "vxc": null,
        "productId": 7206,
        "productUid": "0e0c1127-6b79-4155-b762-c8c260cd9adf",
        "name": "10000Mbps Port at Digital Realty ASH1",
        "nServiceId": 15619,
        "description": "Nutanix, Inc. at Digital Realty ASH1",
        "companyId": 5273,
        "companyUid": "0dda2b1b-6129-4916-adbe-417cefdcaef4",
        "companyName": "Nutanix, Inc.",
        "portSpeed": 10000,
        "locationId": 140,
        "state": "VA",
        "country": "USA"
      }
    ],
    "resource_type": "csp_connection",
    "serviceKey": "76025b4f-3a27-48da-a8bd-880a5e05c886"
  }
}

Nutanix - step 2 - Buy

The second step is a standard buy VXC request using the details from above. Ensure that you select a Megaport in the same network region as the Megaport from the lookup request above as the vlan aEnd. For example in the request above, the locationId is ‘140’ for the available Megaport with productUid ‘0e0c1127-6b79-4155-b762-c8c260cd9adf’. Use the locations endpoint to check the region. Ensure you use the details of the megaport from which you wan to connect as the vlan aEnd and the details of the spare megaport from the Nutanix lookup request above as the vlan bEnd. Details required productUid and vlan.

POST/v2/networkdesign/buy

Example URI

POST /v2/networkdesign/buy
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
[
    {
      "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66", //port UID of your Megaport (A End)
      "associatedVxcs": [
        {
          "productName": "Nutanix Xi DirectConnect",
          "rateLimit": 450, // This must be the rate limit obtained from step 1 above
          "aEnd": {
            "vlan": 102
          },
          "bEnd": {
            "productUid": "e269447e-5601-4575-9c23-32fe5a9f8605", //retrieved port UID from the Nutanix service key lookup
            "partnerConfig" : {
              "connectType": "NUTANIX",
              "serviceKey": "{{serviceKey}}" //service key from step 1 above
            }
          }
        }
      ]
    }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Order processed",
  "data": "Created child services [] [VXC 1544f278-ec03-11e5-9ce9-5e5517507c66]"
}

Price

As far as pricing goes, you can ask two questions:

  • how much will it cost for a NEW service at a given location

  • what will I be charged for this service next month, optionally if I change the speed - this obviously only applies to those services that can change speed

New Port Price

GET/v2/pricebook/megaport?locationId={locationId}&speed={speed}&term={term}&virtual=false

Example URI

GET /v2/pricebook/megaport?locationId=locationId&speed=speed&term=term&virtual=false
URI Parameters
HideShow
locationId
Integer (required) 

A end location

speed
Integer (required) 

Port speed in Mbps, one of 1000 Mbps, 10000 Mbps, 100000 Mbps

term
Integer (required) 

Contract term, one of 1, 12, 24, 36; early termination fees apply

virtual
Boolean (optional) 

standard physical port when set to false

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Megaport Charges",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
  "data": {
    "monthlySetup": 0,
    "monthlyRate": 350,
    "fixedRecurringCharge": 350,
    "longHaulMbpsRate": 0,
    "mbpsRate": 0,
    "currency": "AUD",
    "productType": "MEGAPORT"
  }
}

New MCR Price

GET/v2/pricebook/megaport?locationId={locationId}&speed={speed}&virtual=true

Example URI

GET /v2/pricebook/megaport?locationId=locationId&speed=speed&virtual=true
URI Parameters
HideShow
locationId
Integer (required) 

A end location

speed
Integer (required) 

Port speed in Mbps, one of 100 Mbps, 500 Mbps, 1000 Mbps, 2000 Mbps, 3000 Mbps, 4000 Mbps, 5000 Mbps

virtual
Boolean (required) 

MCR (‘virtual router’) when set to true

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Megaport Charges",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
  "data": {
    "monthlySetup": 0,
    "monthlyRate": 825,
    "fixedRecurringCharge": 0,
    "longHaulMbpsRate": 2,
    "mbpsRate": 2,
    "currency": "AUD",
    "productType": "MEGAPORT"
  }
}

New VXC Price

GET/v2/pricebook/vxc?aLocationId={aLocationId}&speed={speed}&bLocationId={bLocationId}

Example URI

GET /v2/pricebook/vxc?aLocationId=aLocationId&speed=speed&bLocationId=bLocationId
URI Parameters
HideShow
aLocationId
Integer (required) 

A end location

speed
Integer (required) 

speed in Mbps

bLocationId
Integer (required) 

B/Z end location

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "VXC charges for new orders",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
  "data": {
    "monthlySetup": 0,
    "monthlyRate": 300,
    "fixedRecurringCharge": 100,
    "longHaulMbpsRate": 0.2,
    "mbpsRate": 0.2,
    "currency": "EUR",
    "productType": "VXC",
    "forceProductChange": null
  }
}

New IX Price

GET/v2/pricebook/ix?ixType={ixType}&portLocationId={locationId}&speed={speed}

Example URI

GET /v2/pricebook/ix?ixType=ixType&portLocationId=locationId&speed=speed
URI Parameters
HideShow
ixType
String (required) 

IX Type, eg Ashburn IX

locationId
Integer (required) 

Port location

speed
Integer (required) 

speed in Mbps

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "IX charges for new orders",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
  "data": {
    "monthlySetup": 0,
    "monthlyRate": 160,
    "fixedRecurringCharge": 100,
    "longHaulMbpsRate": 0.6,
    "mbpsRate": 0.6,
    "currency": "GBP",
    "productType": "IX",
    "forceProductChange": null
  }
}

Speed Change Check Price

This applies to all services that can change speed - VXC, MCR and IX

GET/v2/product/{productUid}/rating/{year}/{month}?newSpeed={rateLimit}

Example URI

GET /v2/product/productUid/rating/year/month?newSpeed=rateLimit
URI Parameters
HideShow
productUid
UUID (required) 

Unique Product ID

year
Integer (required) 

the usage year - ie the ‘current year’

month
Integer (required) 

the usage month (Jan = 1) - ie the ‘current month’

rateLimit
Integer (optional) 

new speed in Mbps

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Product [{productUid}] Pricing",
  "terms": "This data is subject to the Acceptable Use Policy https:\/\/www.megaport.com\/legal\/acceptable-use-policy",
  "data": {
    "boxes": [],
    "total": 56.128803623099,
    "mbpsRate": 0.25,
    "oldPrice": 156.79,
    "changes": [],
    "longTermMonthly": 125,
    "delta": -100.66,
    "startOfMonth": 1535724000000,
    "currency": "EUR",
    "forceProductChange": null
  }
}

The total is what you can expect on the next invoice - in this case it is EUR 56 representing a pro rated partial month.
The longTermMonthly is the regular monthly invoice amount, assuming no speed changes
The delta is the difference from the previous expected invoice amount, and the the new expected amount based on the speed change (this service started at 1G and this speed change was to go down to 100M)

Lifecycle Action Change Price Check

GET/v2/product/{productUid}/action/{action}/charges

Example URI

GET /v2/product/productUid/action/action/charges
URI Parameters
HideShow
productUid
UUID (required) 

Unique Product ID

action
LifecycleAction (required) 

CANCEL, TERMINATE:

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Charges of cancelling service [1544f278-ec03-11e5-9ce9-5e5517507c66]",
  "data": {
    "terminationDate": 1455927684451,
    "payOutContract": 8175.623841641716,
    "ixPriceCheck": [
      {
        "terminationDate": 1455927684451,
        "payOutContract": 0,
        "total": 0,
        "productId": 1269,
        "contractEndDate": null,
        "remainingDays": 0,
        "currency": "AUD",
        "productName": "Melbourne IX at Global Switch Sydney",
        "productType": "IX",
        "recurringCharge": 30
      },
      {
        "terminationDate": 1455927684451,
        "payOutContract": 0,
        "total": 0,
        "productId": 1287,
        "contractEndDate": 1439474400000,
        "remainingDays": 0,
        "currency": "AUD",
        "productName": "Auckland IX at Global Switch Sydney",
        "productType": "IX",
        "recurringCharge": 50
      },
      {
        "terminationDate": 1455927684451,
        "payOutContract": 0,
        "total": 0,
        "productId": 1206,
        "contractEndDate": 1438437600000,
        "remainingDays": 0,
        "currency": "AUD",
        "productName": "Sydney IX at Global Switch Sydney",
        "productType": "IX",
        "recurringCharge": 0
      },
      {
        "terminationDate": 1455927684451,
        "payOutContract": 0,
        "total": 0,
        "productId": 1279,
        "contractEndDate": 1439128800000,
        "remainingDays": 0,
        "currency": "AUD",
        "productName": "Brisbane IX at Global Switch Sydney",
        "productType": "IX",
        "recurringCharge": 22
      }
    ],
    "total": 9833.752224823822,
    "productId": 1205,
    "vxcPriceCheck": [
      {
        "terminationDate": 1455927684451,
        "payOutContract": 1658.128383182106,
        "total": 1658.128383182106,
        "productId": 1278,
        "contractEndDate": 1499522400000,
        "remainingDays": 504.56846700231483,
        "currency": "AUD",
        "productName": "VXC - Contact Space",
        "productType": "VXC",
        "recurringCharge": 100
      },
      {
        "terminationDate": 1455927684451,
        "payOutContract": 0,
        "total": 0,
        "productId": 1554,
        "contractEndDate": 1447387200000,
        "remainingDays": 0,
        "currency": "AUD",
        "productName": "Opticom-FieldSolutions",
        "productType": "VXC",
        "recurringCharge": 220
      }
    ],
    "contractEndDate": 1498917600000,
    "remainingDays": 497.56846700231483,
    "currency": "AUD",
    "productName": "FSG-SYD-MPORT1",
    "productType": "MEGAPORT",
    "recurringCharge": 500
  }
}

Invoices

All Invoices

The invoices end point will return a list of invoices for a given company.

GET/v2/invoice

Example URI

GET /v2/invoice
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Invoices for company 1413",
  "data": [
    {
      "invoiceId": 2967,
      "companyName": "Sample comapny",
      "companyId": 1413,
      "commitDate": 1443761205326,
      "emailDate": null,
      "currencyEnum": "SGD",
      "grandTotal": 1070,
      "previousInvoiceDate": null,
      "lineItems": [],
      "lineItemTotal": 1000,
      "status": "COMMITTED",
      "taxRate": 0.07,
      "taxTotal": 70,
      "allocated": 0,
      "dueAmount": 1070,
      "triggerDate": null,
      "unmodified": true,
      "invoiceNumber": "INV002967",
      "billRunDto": null,
      "paymentTermInDays": null,
      "dueDate": 1446353205338,
      "consumerId": 1413,
      "supplierId": 817,
      "previousInvoiceId": null,
      "marketTaxTotal": null,
      "marketGrandTotal": null,
      "marketLineItemTotal": null,
      "marketCurrencyEnum": null,
      "aggregatedTaxes": [],
      "grandTotalDisplay": "$1,070",
      "dueDateDisplay": "01/11/2015",
      "mixedCurrency": false
    },
    {
      "invoiceId": 2598,
      "companyName": "Sample comapny",
      "companyId": 1413,
      "commitDate": 1442207786536,
      "emailDate": null,
      "currencyEnum": "SGD",
      "grandTotal": -106.425715078,
      "previousInvoiceDate": null,
      "lineItems": [],
      "lineItemTotal": -99.46328512,
      "status": "COMMITTED",
      "taxRate": 0.07,
      "taxTotal": -6.962429958,
      "allocated": 0,
      "dueAmount": -106.425715078,
      "triggerDate": null,
      "unmodified": true,
      "invoiceNumber": "INV002598",
      "billRunDto": null,
      "paymentTermInDays": null,
      "dueDate": 1444799786548,
      "consumerId": 1413,
      "supplierId": 817,
      "previousInvoiceId": null,
      "marketTaxTotal": null,
      "marketGrandTotal": null,
      "marketLineItemTotal": null,
      "marketCurrencyEnum": null,
      "aggregatedTaxes": [],
      "grandTotalDisplay": "$-106.43",
      "dueDateDisplay": "14/10/2015",
      "mixedCurrency": false
    },
    {
      "invoiceId": 3278,
      "companyName": "Sample comapny",
      "companyId": 1413,
      "commitDate": 1448945274351,
      "emailDate": null,
      "currencyEnum": "SGD",
      "grandTotal": 1070,
      "previousInvoiceDate": null,
      "lineItems": [],
      "lineItemTotal": 1000,
      "status": "COMMITTED",
      "taxRate": 0.07,
      "taxTotal": 70,
      "allocated": 0,
      "dueAmount": 1070,
      "triggerDate": null,
      "unmodified": true,
      "invoiceNumber": "INV003278",
      "billRunDto": null,
      "paymentTermInDays": null,
      "dueDate": 1451537274364,
      "consumerId": 1413,
      "supplierId": 817,
      "previousInvoiceId": null,
      "marketTaxTotal": null,
      "marketGrandTotal": null,
      "marketLineItemTotal": null,
      "marketCurrencyEnum": null,
      "aggregatedTaxes": [],
      "grandTotalDisplay": "$1,070",
      "dueDateDisplay": "31/12/2015",
      "mixedCurrency": false
    },
    {
      "invoiceId": 3210,
      "companyName": "Sample comapny",
      "companyId": 1413,
      "commitDate": 1446515310059,
      "emailDate": null,
      "currencyEnum": "SGD",
      "grandTotal": 1070,
      "previousInvoiceDate": null,
      "lineItems": [],
      "lineItemTotal": 1000,
      "status": "COMMITTED",
      "taxRate": 0.07,
      "taxTotal": 70,
      "allocated": 0,
      "dueAmount": 1070,
      "triggerDate": null,
      "unmodified": true,
      "invoiceNumber": "INV003210",
      "billRunDto": null,
      "paymentTermInDays": null,
      "dueDate": 1449107310072,
      "consumerId": 1413,
      "supplierId": 817,
      "previousInvoiceId": null,
      "marketTaxTotal": null,
      "marketGrandTotal": null,
      "marketLineItemTotal": null,
      "marketCurrencyEnum": null,
      "aggregatedTaxes": [],
      "grandTotalDisplay": "$1,070",
      "dueDateDisplay": "03/12/2015",
      "mixedCurrency": false
    },
    {
      "invoiceId": 3576,
      "companyName": "Sample comapny",
      "companyId": 1413,
      "commitDate": 1451891735404,
      "emailDate": null,
      "currencyEnum": "SGD",
      "grandTotal": 1070,
      "previousInvoiceDate": null,
      "lineItems": [],
      "lineItemTotal": 1000,
      "status": "COMMITTED",
      "taxRate": 0.07,
      "taxTotal": 70,
      "allocated": 0,
      "dueAmount": 1070,
      "triggerDate": null,
      "unmodified": true,
      "invoiceNumber": "INV003576",
      "billRunDto": null,
      "paymentTermInDays": null,
      "dueDate": 1454483735409,
      "consumerId": 1413,
      "supplierId": 817,
      "previousInvoiceId": null,
      "marketTaxTotal": null,
      "marketGrandTotal": null,
      "marketLineItemTotal": null,
      "marketCurrencyEnum": null,
      "aggregatedTaxes": [],
      "grandTotalDisplay": "$1,070",
      "dueDateDisplay": "03/02/2016",
      "mixedCurrency": false
    }
  ]
}

Single Invoice

GET/v2/invoice/{invoiceId}

Example URI

GET /v2/invoice/invoiceId
URI Parameters
HideShow
invoiceId
integer (required) 

valid Invoice ID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Found invoice 2967",
  "data": {
    "invoiceId": 2967,
    "companyName": "Sample comapny",
    "companyId": 1413,
    "commitDate": 1443761205326,
    "emailDate": null,
    "currencyEnum": "SGD",
    "grandTotal": 1070,
    "previousInvoiceDate": 1442207786536,
    "lineItems": [
      {
        "crmUid": null,
        "billableUid": null,
        "charge": null,
        "chargeAsDouble": 1000,
        "description": "MEGAPORT recurring",
        "end": 1446300000000,
        "glCode": null,
        "invoiceUid": null,
        "nominalDueDate": 1443621600000,
        "productCode": null,
        "start": 1443621600000,
        "tax": null,
        "taxAsDouble": 70,
        "taxRate": null,
        "total": null,
        "totalAsDouble": 1070,
        "uid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
        "bundleCode": null,
        "billableCode": "MEGAPORT",
        "chargeType": "RECURRING",
        "tariffType": null,
        "billingEventKey": null,
        "quantity": 1,
        "chargeUnits": null,
        "chargedFromTo": "From 01/10/2015 to 01/11/2015",
        "chargedFromToExclusive": "From 01/10/2015 to 31/10/2015",
        "billableId": 1246,
        "invoiceOrdinal": 904,
        "currency": "SGD",
        "taxAppliedDtos": [],
        "chargePeriod": {
          "start": 1443621600000,
          "end": 1446300000000
        }
      }
    ],
    "lineItemTotal": 1000,
    "status": "COMMITTED",
    "taxRate": 0.07,
    "taxTotal": 70,
    "allocated": 0,
    "dueAmount": 1070,
    "triggerDate": 1443794399999,
    "unmodified": true,
    "invoiceNumber": "INV002967",
    "billRunDto": {
      "accountQuantity": 31,
      "end": 1443760964682,
      "invoiceQuantity": 15,
      "runValue": 8295.34645545,
      "runValueEXGST": 7752.660238739,
      "committedValue": 117308.94214865,
      "start": 1443760963151,
      "effectiveBillingDate": 1443794399999,
      "ytdValue": null,
      "billRunId": 264,
      "type": "MONTHLY",
      "supplierName": "Megaport Operations Singapore Pte Ltd",
      "xeroSyncAmountExGST": null
    },
    "paymentTermInDays": 30,
    "dueDate": 1446353205338,
    "consumerId": 1413,
    "supplierId": 817,
    "previousInvoiceId": 2598,
    "marketTaxTotal": 70,
    "marketGrandTotal": 1070,
    "marketLineItemTotal": 1000,
    "marketCurrencyEnum": "SGD",
    "aggregatedTaxes": [],
    "grandTotalDisplay": "$1,070",
    "dueDateDisplay": "01/11/2015",
    "mixedCurrency": false
  }
}

Single Invoice as PDF

GET/v2/invoice/{invoiceId}/pdf

Example URI

GET /v2/invoice/invoiceId/pdf
URI Parameters
HideShow
invoiceId
integer (required) 

valid Invoice ID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json

General

Get Product List

GET/v2/products

Example URI

GET /v2/products
Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Found 3 Products",
  "data": [
    {
      "productUid": "d185d0b7-3e99-4071-8e00-5e096aa6b1f5",
      "productName": "My MEGAPORT at NextDC B1",
      "productType": "MEGAPORT",
      "provisioningStatus": "LIVE",
      "createDate": 1378155885117,
      "portSpeed": 10000,
      "terminateDate": null,
      "market": "AU",
      "locationId": 5,
      "locked": false,
      "associatedVxcs": [
        {
          "productUid": "bdd834aa-d295-4521-8369-373c0e8aa496",
          "nServiceId": 337,
          "productName": "VXC between NextDC B1 and NextDC S1",
          "productType": "VXC",
          "rateLimit": 100,
          "distanceBand": "INTERCAP",
          "locked": false,
          "provisioningStatus": "LIVE",
          "aEnd": {
            "productUid": "d185d0b7-3e99-4071-8e00-5e096aa6b1f5",
            "productName": "My MEGAPORT at NextDC B1",
            "locationId": 5,
            "vlan": 42
          },
          "bEnd": {
            "productUid": "f7f318e2-1cce-4a94-922f-3d8aac1c8290",
            "productName": "My MEGAPORT at NextDC S1",
            "locationId": 10,
            "vlan": 42
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1387169421114
        },
        {
          "productUid": "56b12a10-1cf4-4264-aac1-2922320c6aa9",
          "nServiceId": 1378,
          "productName": "100MB VXC - SEN to AWS",
          "productType": "VXC",
          "rateLimit": 100,
          "distanceBand": "INTERCAP",
          "locked": false,
          "provisioningStatus": "LIVE",
          "aEnd": {
            "productUid": "d185d0b7-3e99-4071-8e00-5e096aa6b1f5",
            "productName": "My MEGAPORT at NextDC B1",
            "locationId": 5,
            "vlan": 153
          },
          "bEnd": {
            "productUid": "0789710a-2bba-4ba6-aaa5-f7f40d48d20a",
            "productName": "AWS (ap-southeast-2)",
            "locationId": 6,
            "vlan": 1428
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1426743214686
        },
        {
          "productUid": "15e4d4fe-81f1-43f1-8190-92ad0eabaabf",
          "nServiceId": 2283,
          "productName": " 100MB VXC - TPA\/Smartclinics to AWS GS",
          "productType": "CXC",
          "rateLimit": 100,
          "distanceBand": "INTERCAP",
          "provisioningStatus": "LIVE",
          "aEnd": {
            "productUid": "d185d0b7-3e99-4071-8e00-5e096aa6b1f5",
            "productName": "My MEGAPORT at NextDC B1",
            "locationId": 5,
            "vlan": 840
          },
          "bEnd": {
            "productUid": "7baec0f3-a1e7-4b67-adcd-dcb437af485a",
            "productName": "AWS (ap-southeast-2)",
            "locationId": 3,
            "vlan": 409
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1446845595620
        }
      ],
      "associatedIxs": [
        {
          "productUid": "7aa50b65-73e9-4320-bc16-4b81d80e53f6",
          "locationId": 5,
          "term": null,
          "locationUid": null,
          "productName": "IX Brisbane at NextDC B1",
          "productType": "IX",
          "provisioningStatus": "LIVE",
          "nServiceId": 102,
          "rateLimit": null,
          "promoCode": null,
          "deployDate": null,
          "vlan": 46,
          "macAddress": "00:8e:f8:a5:a5:81",
          "asn": 38195,
          "networkServiceType": "Brisbane IX",
          "createDate": 1429004970576,
          "publicGraph": false
        }
      ],
      "resources": {
        "cross_connect": {

        },
        "interface": {
          "demarcation": "NextDC B1\n20 Wharf Street, Brisbane\nType: Single Mode Fibre Pair\nPorts: B1-2G-GJ-37, ports 3+4\n",
          "description": "My Company",
          "id": 333,
          "media": "LR",
          "name": "Ethernet1\/4",
          "port_speed": 10000,
          "resource_type": "interface",
          "supported_speeds": [
            10000
          ],
          "up": 1
        }
      }
    },
    {
      "productUid": "cc80272b-d2a6-4f9b-8182-cc3df7ad16a5",
      "productName": "My MEGAPORT at NextDC M1",
      "productType": "MEGAPORT",
      "provisioningStatus": "LIVE",
      "createDate": 1387152015341,
      "portSpeed": 10000,
      "terminateDate": null,
      "market": "AU",
      "locationId": 4,
      "associatedVxcs": [

      ],
      "associatedIxs": [
        {
          "productUid": "ddca53d8-d1ed-4431-a7bc-f8672967200e",
          "locationId": 4,
          "term": null,
          "locationUid": null,
          "productName": "IX Melbourne at NextDC M1",
          "productType": "IX",
          "provisioningStatus": "LIVE",
          "nServiceId": 358,
          "rateLimit": 5000,
          "promoCode": null,
          "deployDate": null,
          "vlan": 3972,
          "macAddress": "aa:4e:24:9a:ae:00",
          "asn": 38195,
          "networkServiceType": "Melbourne IX",
          "createDate": 1429005053856,
          "publicGraph": false
        }
      ],
      "resources": {
        "cross_connect": {

        },
        "interface": {
          "demarcation": "NextDC M1\n826 Lorimer Street, Port Melbourne\nType: Single Mode Fibre Pair\nPorts: M1-IQ6-B6, ports 63+64\n",
          "description": "My Company",
          "id": 976,
          "media": "LR",
          "name": "Ethernet3\/10",
          "port_speed": 10000,
          "resource_type": "interface",
          "supported_speeds": [
            10000
          ],
          "up": 1
        }
      }
    },
    {
      "productUid": "f7f318e2-1cce-4a94-922f-3d8aac1c8290",
      "productName": "My MEGAPORT at NextDC S1",
      "productType": "MEGAPORT",
      "provisioningStatus": "LIVE",
      "createDate": 1383539027172,
      "portSpeed": 10000,
      "terminateDate": null,
      "market": "AU",
      "locationId": 10,
      "associatedVxcs": [
        {
          "productUid": "d8ff0e68-f9ea-4f80-8798-dd1c87d3f624",
          "nServiceId": 3567,
          "productName": 200MB MP1 CDN Fill Transit - S1",
          "productType": "VXC",
          "rateLimit": 200,
          "distanceBand": "METRO",
          "provisioningStatus": "LIVE",
          "aEnd": {
            "productUid": "5dbda72b-aa91-4af7-ab5f-90214a865f5e",
            "productName": "PORT: The MEGAPORT at Equinix SY1\/2",
            "locationId": 2,
            "vlan": 51
          },
          "bEnd": {
            "productUid": "f7f31aa2-1cce-4a94-922f-3d8aac1c8290",
            "productName": "My MEGAPORT at NextDC S1",
            "locationId": 10,
            "vlan": 51
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1457581725612
        },
        {
          "productUid": "705aaba2-d2d9-4a40-bed3-8de9cd922a49",
          "nServiceId": 1701,
          "productName": "100MB VXC - NNT to AWS - NEW",
          "productType": "VXC",
          "rateLimit": 100,
          "distanceBand": "METRO",
          "provisioningStatus": "LIVE",
          "aEnd": {
            "productUid": "f7f318e2-1cce-4a94-922f-3d8aac1c8290",
            "productName": "My MEGAPORT at NextDC S1",
            "locationId": 10,
            "vlan": 2105
          },
          "bEnd": {
            "productUid": "0789710a-2bba-4ba6-aaa5-f7f40d48d20a",
            "productName": "AWS (ap-southeast-2)",
            "locationId": 6,
            "vlan": 1727
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1436327406015
        },
        {
          "productUid": "5772d9c5-8043-4768-af3a-20cfc7c53377",
          "nServiceId": null,
          "productName": "VXC",
          "productType": "VXC",
          "rateLimit": null,
          "distanceBand": "INTERCAP",
          "provisioningStatus": "FAILED",
          "aEnd": {
            "productUid": null,
            "productName": null,
            "locationId": null
          },
          "bEnd": {
            "productUid": null,
            "productName": null,
            "locationId": null
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1441920916933
        },
        {
          "productUid": "bdd834aa-d295-4521-8369-373c0e8aa496",
          "nServiceId": 337,
          "productName": "VXC between NextDC B1 and NextDC S1",
          "productType": "VXC",
          "rateLimit": 100,
          "distanceBand": "INTERCAP",
          "provisioningStatus": "LIVE",
          "aEnd": {
            "productUid": "d185d0b7-3e99-4071-8e00-5e096aa6b1f5",
            "productName": "My MEGAPORT at NextDC B1",
            "locationId": 5,
            "vlan": 42
          },
          "bEnd": {
            "productUid": "f7f318e2-1cce-4a94-922f-3d8aac1c8290",
            "productName": "My MEGAPORT at NextDC S1",
            "locationId": 10,
            "vlan": 42
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1387169421114
        },
        {
          "productUid": "4f1ed955-2066-431c-9ae8-703968aa0ab4",
          "nServiceId": 2004,
          "productName": "100MB VXC - TPA\/Smartclinics to AWS EQX",
          "productType": "VXC",
          "rateLimit": 100,
          "distanceBand": "METRO",
          "provisioningStatus": "LIVE",
          "aEnd": {
            "productUid": "f7faa8e2-1cce-4a94-922f-3d8aac1c8290",
            "productName": "My MEGAPORT at NextDC S1",
            "locationId": 10,
            "vlan": 841
          },
          "bEnd": {
            "productUid": "0789710a-2bba-4ba6-aaa5-f7f40aa8d20a",
            "productName": "AWS (ap-southeast-2)",
            "locationId": 6,
            "vlan": 2739
          },
          "vxcApprovalStatus": null,
          "vxcApprovalMessage": null,
          "vxcApprovalUid": null,
          "createDate": 1444102413521
        }
      ],
      "associatedIxs": [
        {
          "productUid": "cfcaa5e3-a2d5-4e8d-b61f-eb48992c2bca",
          "locationId": 10,
          "term": null,
          "locationUid": null,
          "productName": "IX Sydney at NextDC S1",
          "productType": "IX",
          "provisioningStatus": "LIVE",
          "nServiceId": 359,
          "rateLimit": 2000,
          "promoCode": null,
          "deployDate": null,
          "vlan": 46,
          "macAddress": "aa:4e:24:78:e8:05",
          "asn": 38195,
          "networkServiceType": "Sydney IX",
          "createDate": 1429005055538,
          "publicGraph": false
        }
      ],
      "resources": {
        "cross_connect": {

        },
        "interface": {
          "demarcation": "NextDC S1\n4 Eden Park Drive, Macquarie Park\nType: Single Mode Fibre Pair\nPorts: S1-GH5-b12, ports 1+2\n",
          "description": "My Company",
          "id": 1003,
          "media": "LR",
          "name": "Ethernet1\/2",
          "port_speed": 10000,
          "resource_type": "interface",
          "supported_speeds": [
            10000
          ],
          "up": 1
        }
      }
    }
  ]
}

Get Product Details

GET/v2/product/{productUid}

Example URI

GET /v2/product/productUid
URI Parameters
HideShow
productUid
UUID (required) 

Unique Product ID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Found Product 1544f278-ec03-11e5-9ce9-5e5517507c66",
  "data": {
    "productUid": "1544f278-ec03-11e5-9ce9-5e5517507c66",
    "productName": "10G Megaport",
    "productType": "MEGAPORT",
    "provisioningStatus": "LIVE",
    "createDate": 1437433843814,
    "portSpeed": 10000,
    "terminateDate": null,
    "market": "SG",
    "locationId": 36,
    "locked": false,
    "associatedVxcs": [],
    "associatedIxs": [],
    "resources": {
      "interface": {
        "description": "description",
        "id": 2627,
        "resource_type": "interface",
        "media": "LR/LX",
        "port_speed": 10000,
        "demarcation": "Equinix SG1\n20 Ayer Rajah Crescent\nRack L4B-COLO3-R1703\nType: Single Mode Fibre Pair\nPort: L4B-COLO3-R1703-SHF45, port SM07\n",
        "name": "Ethernet1/7"
      }
    }
  }
}

Update Product Details - PORT

Note: You can only update a service when its provisioning status is configured or live.

PUT/v2/product/{productUid}

Example URI

PUT /v2/product/productUid
URI Parameters
HideShow
productUid
UUID (required) 

Unique Product ID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Body
{
    "name": "Name of the MCR or Megaport",
    "costCentre": "Name of the cost centre",
    "marketplaceVisibility": true, // Boolean, true or false
    "rateLimit": 5000 // Only applicable to MCR. Must be one of 100, 500, 1000, 2000, 3000, 4000, 5000
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Product [cc80272b-d2a6-4f9b-8182-cc3df7ad16a5] has been updated",
  "data": {
    "serviceName": "ACMEn MEGAPORT at NextDC M1",
    "name": "ACMEn MEGAPORT at NextDC M1",
    "technicalServiceId": 2,
    "technicalServiceUid": "aa80272b-d2a6-4f9b-8182-cc3df7ad16a5",
    "requestedDate": 1387152015341,
    "currentEstimatedDelivery": null,
    "companyName": "ACMEnetworks",
    "companyId": 1,
    "billingContactName": null,
    "billingContactId": null,
    "adminContactName": null,
    "adminContactId": null,
    "technicalContactName": null,
    "technicalContactId": null,
    "salesName": null,
    "salesId": null,
    "billableId": 2,
    "billableUsageAlgorithm": "NOT_POST_PAID",
    "productType": "MEGAPORT",
    "provisioningStatus": "LIVE",
    "inAdvanceBillingStatus": "ACTIVE",
    "provisioningItems": [],
    "tags": [],
    "vxcDistanceBand": null,
    "intercapPath": null,
    "marketplaceVisibility": true,
    "vxcPermitted": true,
    "createDate": 1387152015341,
    "terminationDate": null,
    "contractStartDate": 1404136800000,
    "rateType": "MONTHLY",
    "trialAgreement": false,
    "payerCompanyId": null,
    "minimumSpeed": null,
    "maximumSpeed": null,
    "errorMessage": null,
    "market": "Australia",
    "accountManager": null,
    "promptUid": null,
    "components": [],
    "attribtes": [],
    "shortTechnicalServiceUid": "aa80272b"
  }
}

Update Product Details - VXC

Note: You can only update a service when its provisioning status is configured or live.

PUT/v2/product/vxc/{productUid}

Example URI

PUT /v2/product/vxc/productUid
URI Parameters
HideShow
productUid
UUID (required) 

Unique Product ID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
{
  "name": "testing 123",
  "rateLimit": 5000,
  "aEndVlan": 101,
  "bEndVlan": 202
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "VXC 1 has been updated",
  "data": {
    "serviceName": "testing 123",
    "name": "testing 123",
    "technicalServiceId": 1,
    "technicalServiceUid": "baa834aa-d295-4521-8369-373c0e832496",
    "requestedDate": 1387169421114,
    "currentEstimatedDelivery": null,
    "companyName": null,
    "companyId": null,
    "billingContactName": null,
    "billingContactId": null,
    "adminContactName": null,
    "adminContactId": null,
    "technicalContactName": null,
    "technicalContactId": null,
    "salesName": null,
    "salesId": null,
    "billableId": 1,
    "billableUsageAlgorithm": "TIME_AT_RATE",
    "productType": "VXC",
    "provisioningStatus": "LIVE",
    "inAdvanceBillingStatus": "ACTIVE",
    "provisioningItems": [],
    "tags": [],
    "vxcDistanceBand": "INTERCAP",
    "intercapPath": "BS",
    "marketplaceVisibility": true,
    "vxcPermitted": true,
    "createDate": 1387169421114,
    "terminationDate": null,
    "contractStartDate": 1456754400000,
    "rateType": "MONTHLY",
    "trialAgreement": true,
    "payerCompanyId": null,
    "minimumSpeed": null,
    "maximumSpeed": null,
    "errorMessage": null,
    "market": "Australia",
    "accountManager": null,
    "promptUid": null,
    "components": [],
    "attribtes": [],
    "shortTechnicalServiceUid": "baa834aa"
  }
}

Update Product Details - IX

Note: You can only update a service when its provisioning status is configured or live.

You can specify any of the optional fields below and only those fields will be updated.

PUT/v2/product/ix/{productUid}

Example URI

PUT /v2/product/ix/productUid
URI Parameters
HideShow
productUid
UUID (required) 

Unique Product ID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Body
{
    "name": "Company IX at Location", // (optional, string) Name of the IX
    "rateLimit": 500, // (optional, integer) Rate limit in mbps
    "costCentre": "My Port Account", // (optional, string) For invoicing purposes
    "vlan": 1650, // (optional, integer)
    "macAddress": "01:02:0f:04:58:20", // (optional, string)
    "asn": 136999, // (optional, integer) *be very careful about changing this*
    "publicGraph": false, // (optional, boolean)
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "IX Service 1 has been updated",
  "data": {
    "serviceName": "Test345",
    "name": "Test345",
    "technicalServiceId": 919,
    "technicalServiceUid": "aaca53d8-d1ed-4431-a7bc-f8672967200e",
    "requestedDate": 1429005053856,
    "currentEstimatedDelivery": null,
    "companyName": "ACMEnetworks",
    "companyId": 1,
    "billingContactName": null,
    "billingContactId": null,
    "adminContactName": null,
    "adminContactId": null,
    "technicalContactName": null,
    "technicalContactId": null,
    "salesName": null,
    "salesId": null,
    "billableId": 881,
    "billableUsageAlgorithm": "NOT_POST_PAID",
    "productType": "IX",
    "provisioningStatus": "LIVE",
    "inAdvanceBillingStatus": "ACTIVE",
    "provisioningItems": [],
    "tags": [],
    "vxcDistanceBand": "METRO",
    "intercapPath": null,
    "marketplaceVisibility": true,
    "vxcPermitted": true,
    "createDate": 1429005053856,
    "terminationDate": null,
    "contractStartDate": 1404136800000,
    "rateType": "MONTHLY",
    "trialAgreement": true,
    "payerCompanyId": null,
    "minimumSpeed": null,
    "maximumSpeed": null,
    "errorMessage": null,
    "market": "Australia",
    "accountManager": null,
    "promptUid": null,
    "components": [
      {
        "description": "ACMEnetworks Melbourne IX at NextDC M1",
        "jservice_id": 1,
        "nservice_id": 3,
        "resources": [
          {
            "asn": 5,
            "customer_asn": 5,
            "customer_ip_address": "1.26.71.30",
            "id": 391,
            "isp_asn": 5,
            "isp_ip_address": "1.26.71.1",
            "max_prefixes": 1000,
            "password": null,
            "resource_type": "bgp_connection",
            "up": 1
          },
          {
            "asn": 5,
            "customer_asn": 5,
            "customer_ip_address": "1.26.71.30",
            "id": 392,
            "isp_asn": 3,
            "isp_ip_address": "1.26.71.2",
            "max_prefixes": 1000,
            "password": null,
            "resource_type": "bgp_connection",
            "up": 1
          },
          {
            "asn": 5,
            "customer_asn": 5,
            "customer_ip_address": "2aa1:dea:0:30::1e",
            "id": 393,
            "isp_asn": 5,
            "isp_ip_address": "2aa1:dea:0:30::1",
            "max_prefixes": 100,
            "password": null,
            "resource_type": "bgp_connection",
            "up": 0
          },
          {
            "asn": 31195,
            "customer_asn": 38195,
            "customer_ip_address": "2aa1:dea:0:30::1e",
            "id": 394,
            "isp_asn": 58911,
            "isp_ip_address": "2aa1:dea:0:30::2",
            "max_prefixes": 100,
            "password": null,
            "resource_type": "bgp_connection",
            "up": 0
          },
          {
            "demarcation": "NextDC M1\n826 Lorimer Street, Port Melbourne\nType: Single Mode Fibre Pair\nPorts: M1-IR1-C6, ports \n",
            "description": "ACMEnetworks",
            "id": 976,
            "media": "LR",
            "name": "Ethernet3/10",
            "port_speed": 10000,
            "resource_type": "interface",
            "supported_speeds": [
              10000
            ],
            "up": 1
          },
          {
            "address": "1.26.1.30/24",
            "description": "APEXnetworks",
            "id": 440,
            "resource_type": "ip_address",
            "version": 4
          },
          {
            "address": "2aa1:dea:0:30::1e/64",
            "description": "ACMEnetworks",
            "id": 441,
            "resource_type": "ip_address",
            "version": 6
          },
          {
            "id": 1284,
            "mac_address": "cc:aa:24:9a:ae:0a",
            "rate_limit_mbps": 5000,
            "resource_type": "vpls_interface",
            "vlan": 3972
          }
        ],
        "status": "Active",
        "type": "Melbourne IX"
      }
    ],
    "attribtes": [],
    "shortTechnicalServiceUid": "aaca53d8"
  }
}

Update Product Lifecycle Action

Note: You can only update a product when its provisioning status is CONFIGURED or LIVE.

When you CANCEL a service, you are giving 30 days notice. The service will remain operational until the end of the 30th day, at which time it will be decommissioned. At any time before decommissioning, you may UN_CANCEL the service, and it will revert to LIVE status, and it will continue as if nothing has happened.

When you CANCEL_NOW, the service is decommissioned immediately, and cannot be recovered by an UN_CANCEL.

POST/v2/product/action/

  • Parameters + productUid (required, UUID) … Unique Product ID + action (required, String) … Product lifecycle actions, can be: CANCEL, UN_CANCEL or CANCEL_NOW

    • Request
      • Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

POST /v2/product/action/
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Action [CANCEL Service 2019] has been done."
}

Lock product to prevent editing

Note: You must have company_admin privilege for this to succeed.

POST/v2/product/lock

  • Parameters + productUid (required, UUID) … Unique Product ID

    • Request
      • Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

POST /v2/product/lock
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message": "Service locked",
    "data": {
        // Other data
        "locked": true,
    }
}

DELETE/v2/product/lock

  • Parameters + productUid (required, UUID) … Unique Product ID

    • Request
      • Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

DELETE /v2/product/lock
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    "message": "Service unlocked",
    "data": {
        // Other data
        "locked": false,
    }
}

Interface Logs

GET/v2/product/{productUid}/logs

Example URI

GET /v2/product/productUid/logs
URI Parameters
HideShow
productUid
UUID (required) 

Unique Product ID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Product [1544f278-ec03-11e5-9ce9-5e5517507c66] Logs",
  "data": [
    {
      "count": 1,
      "event": "bgpUp",
      "message": "syd-sy1-rs1 (103.26.68.125): BGP session established",
      "resource_id": 1441,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444719089283
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (103.26.68.125): Incoming connection from 103.26.68.125 (port 14933) accepted",
      "resource_id": 1441,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444719366973
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (103.26.68.125): Started",
      "resource_id": 1441,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444692350204
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (103.26.68.125): Startup delayed by 60 seconds",
      "resource_id": 1441,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444691540032
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (103.26.68.125): Down",
      "resource_id": 1441,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444691516707
    },
    {
      "count": 1,
      "event": "bgpDown",
      "message": "syd-sy1-rs1 (103.26.68.125): BGP session closed",
      "resource_id": 1441,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444691493446
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (103.26.68.125): Error: Hold timer expired",
      "resource_id": 1441,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444692449028
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-gs-rs2 (2001:dea:0:10::7d): Started",
      "resource_id": 1444,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444350035293
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-gs-rs2 (2001:dea:0:10::7d): Initializing",
      "resource_id": 1444,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444350005262
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-gs-rs2 (2001:dea:0:10::7d): Adding protocol ",
      "resource_id": 1444,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444349975006
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (2001:dea:0:10::7d): Started",
      "resource_id": 1443,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444349183935
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (2001:dea:0:10::7d): Initializing",
      "resource_id": 1443,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444349180871
    },
    {
      "count": 1,
      "event": "bgp",
      "message": "syd-sy1-rs1 (2001:dea:0:10::7d): Adding protocol ",
      "resource_id": 1443,
      "resource_type": "bgp_connection",
      "service_id": 2033,
      "time": 1444349851164
    }
  ]
}

Bandwidth Usage

Note that you can also call without the mbps in the URL to get bps.

GET/v2/graph/mbps?productIdOrUid=&to=&from=

  • Parameters + productIdOrUid (required, UUID) … Unique Product ID as retrieved from previous call to GET /v2/products + from (required, milliseconds since epoch) - you can use a tool such as https://www.epochconverter.com/ for conversion to and from dates. + to (required, milliseconds since epoch)

    • Request
      • Headers X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Content-Type: application/json

Example URI

GET /v2/graph/mbps?productIdOrUid=&to=&from=
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "Graph data for product [cc12272b-d2a6-4f9b-81c2-cc3df7ad16a5] from May 30 2016 11:00 PM to May 31 2016 11:00 PM",
  "data": {
    "nServiceId": -1,
    "width": 289,
    "jServiceId": "-1",
    "start": 1464649200000,
    "end": 1464735600000,
    "name": "ACME Networks MEGAPORT at NextDC M1",
    "in_octets": [],
    "out_octets": [],
    "in_bps": [],
    "out_bps": [],
    "in_packets": [],
    "out_packets": [],
    "in_errors": [],
    "out_errors": [],
    "in_mbps": [
      0.85380197333333,
      1.21542136,
      0.92033024,
      1.0661178133333,
      1.11067056,
      2.20373224,
      2.4851037333333,
      1.0962995733333,
      0.80993394666667,
      0.99405813333333,
      0.96422538666667,
      2.14919576,
      0.97721170666667,
      1.17602016,
      1.2898101866667,
      1.7422700266667,
      1.2997608533333,
      0.98350632,
      1.4171506666667,
      1.1230410133333,
      0.61177232,
      0.75004088,
      0.89660642666667,
      1.0057857333333,
      1.1311252,
      0.86506714666667,
      1.2696421866667,
      1.0255496,
      1.3496448266667,
      0.70172176,
      1.3561847733333,
      0.69531189333333,
      0.88616114666667,
      0.87406069333333,
      0.91923061333333,
      1.0821417866667,
      1.3795397866667,
      3.45961096,
      3.26625544,
      1.2248250933333,
      1.27553224,
      1.4963203733333,
      1.36895656,
      0.91641061333333,
      0.62774248,
      0.69104808,
      0.67678058666667,
      0.78559037333333,
      1.2094001066667,
      0.89294674666667,
      1.1232457866667,
      1.2954396533333,
      0.89099685333333,
      0.97897656,
      0.86914512,
      1.1333186666667,
      1.0345220266667,
      0.88453565333333,
      0.93952592,
      1.0384718666667,
      1.03931496,
      0.93973045333333,
      1.0082384,
      1.27973976,
      0.81694538666667,
      0.74607141333333,
      0.77830021333333,
      1.0809624,
      1.0730682933333,
      0.87371309333333,
      0.82536408,
      0.75015330666667,
      1.5948559733333,
      1.07668832,
      0.92604493333333,
      0.71017842666667,
      0.61447522666667,
      0.86981506666667,
      0.63460730666667,
      0.867894,
      0.71389989333333,
      1.4496485333333,
      2.6537699733333,
      1.67561928,
      0.89305968,
      0.76571488,
      1.0385366666667,
      0.78316706666667,
      0.78555082666667,
      1.0517237066667,
      0.90219437333333,
      1.07015376,
      0.82829338666667,
      1.0112544533333,
      0.71873346666667,
      0.76427098666667,
      0.9278484,
      0.54898848,
      0.61583506666667,
      0.53868282666667,
      0.56037626666667,
      0.60040058666667,
      0.86275088,
      1.2827131466667,
      0.56551322666667,
      0.70580568,
      0.241686,
      0.29084184,
      0.35906925333333,
      0.36586490666667,
      0.27447109333333,
      0.15440589333333,
      0.17364136,
      0.19115322666667,
      0.30803362666667,
      0.44422989333333,
      0.22880384,
      0.39605432,
      0.49447266666667,
      0.13454866666667,
      0.1746688,
      0.61545696,
      0.17831672,
      0.13290024,
      0.96372613333333,
      1.35536992,
      0.29689925333333,
      0.35527528,
      0.24410706666667,
      0.3348152,
      0.10929584,
      0.36091794666667,
      0.36894834666667,
      0.42820986666667,
      0.24752885333333,
      0.17155701333333,
      0.2143856,
      0.24484,
      0.14086416,
      0.403162,
      0.20744653333333,
      0.1775412,
      0.32070378666667,
      0.32189701333333,
      0.06992784,
      0.16830736,
      0.12952533333333,
      0.20351557333333,
      0.22057738666667,
      0.20927090666667,
      0.65189197333333,
      0.25903458666667,
      0.14889858666667,
      0.27340056,
      0.20891181333333,
      0.23151850666667,
      0.50904752,
      0.33055405333333,
      0.14976672,
      0.20967189333333,
      0.21225861333333,
      0.19351565333333,
      0.37043370666667,
      0.14783770666667,
      0.21034784,
      0.1581016,
      0.0807852,
      0.11442312,
      0.06105552,
      0.14557784,
      0.089150533333333,
      0.12848269333333,
      0.09025608,
      0.04813328,
      0.34949810666667,
      0.087938773333333,
      0.055090613333333,
      0.1103944,
      0.15072192,
      0.068397466666667,
      0.067805333333333,
      0.087564266666667,
      0.08221752,
      0.17067392,
      0.07762928,
      0.14744301333333,
      0.12993733333333,
      0.10472048,
      0.04822936,
      0.09423232,
      0.056923173333333,
      0.04638992,
      0.045033653333333,
      0.0626864,
      0.044752026666667,
      0.065036026666667,
      0.06708744,
      0.057037653333333,
      0.09760184,
      0.097877386666667,
      0.15178941333333,
      0.10633909333333,
      0.1039124,
      0.19268581333333,
      0.056824613333333,
      0.064771146666667,
      0.050969733333333,
      0.045721386666667,
      0.06908752,
      0.09650184,
      0.080062933333333,
      0.11376592,
      0.10261928,
      0.091325013333333,
      0.14429154666667,
      0.10047562666667,
      0.17753112,
      0.078029866666667,
      0.078842826666667,
      0.068956746666667,
      0.07639872,
      0.093683333333333,
      0.25163002666667,
      0.27330746666667,
      0.08602048,
      0.12942584,
      0.22788816,
      0.21164848,
      0.084978373333333,
      0.15767248,
      0.18831941333333,
      0.11331789333333,
      0.12865,
      0.069970373333333,
      0.092964,
      0.079214586666667,
      0.27998349333333,
      0.064554426666667,
      0.041070186666667,
      0.079494186666667,
      0.077242533333333,
      0.06637376,
      0.045262213333333,
      0.080788906666667,
      0.054157093333333,
      0.072091573333333,
      0.08177344,
      0.2220948,
      0.079305066666667,
      0.083953973333333,
      0.10984624,
      0.06899968,
      0.078543706666667,
      0.099407973333333,
      0.12896224,
      0.07130208,
      0.45144813333333,
      0.1710248,
      0.15843866666667,
      0.08942304,
      0.082813866666667,
      0.07728848,
      0.58083458666667,
      0.14379618666667,
      0.32525944,
      0.21811842666667,
      0.29101992,
      0.17757693333333,
      0.39519858666667,
      0.49794362666667,
      0.45195378666667,
      0.40543922666667,
      0.37205053333333,
      0.33330704,
      0.73956544,
      0.57811853333333,
      0.71120173333333,
      0.82509978666667,
      1.0030554666667,
      2.1810586133333,
      1.04152872,
      1.1171902133333,
      1.0944066666667,
      0.71524250666667,
      0.5157112,
      0.53352413333333,
      0.65825266666667,
      1.3454450666667,
      0.80062728
    ],
    "out_mbps": [
      7.0139396,
      7.88587192,
      7.11239096,
      6.59968864,
      12.364253786667,
      11.131756266667,
      11.41301016,
      7.4652222933333,
      8.96636168,
      6.3973369333333,
      7.1551867466667,
      7.9866135733333,
      6.95113616,
      8.6867123733333,
      9.29906192,
      6.7560547733333,
      6.6793637066667,
      5.5036948266667,
      2.9444491466667,
      4.2095521866667,
      4.9656645333333,
      6.82541888,
      4.7036174133333,
      8.8441912266667,
      10.252125013333,
      11.073263626667,
      9.9961239733333,
      8.50659336,
      9.2109301333333,
      8.2023642933333,
      8.8917142133333,
      6.4739585333333,
      15.99731928,
      8.4468886933333,
      8.8364820266667,
      9.3032121866667,
      7.74957176,
      8.8490185333333,
      10.722192133333,
      9.5927821866667,
      9.1096006933333,
      8.6649607466667,
      6.1959335466667,
      3.2597924533333,
      4.0716598133333,
      10.78535688,
      9.2687173866667,
      7.1013422933333,
      4.81495776,
      4.1671578933333,
      3.02211656,
      5.30343272,
      5.2036367466667,
      7.8649244533333,
      11.552840906667,
      8.6714663466667,
      9.0456077333333,
      5.6576774933333,
      6.5019030133333,
      7.57377704,
      7.4138062133333,
      7.1148631733333,
      6.67740848,
      10.401302746667,
      2.4357012,
      6.4387288533333,
      7.9021868266667,
      5.4498448,
      4.9301664,
      6.52349336,
      6.28322152,
      6.5851385333333,
      6.7146236,
      5.1271079733333,
      2.89398576,
      3.9467011733333,
      2.5357038933333,
      4.7232015466667,
      3.7110894666667,
      5.46824824,
      1.622964,
      2.4597673066667,
      3.0687304266667,
      2.2375103466667,
      3.5670514666667,
      3.3555332533333,
      3.65532928,
      5.88244944,
      2.32124,
      1.7857516533333,
      1.66289744,
      2.63268032,
      1.7600515466667,
      3.1820279466667,
      1.8329277066667,
      3.3316524,
      2.7499848266667,
      1.8958863466667,
      2.29198872,
      1.0978747733333,
      1.4423869866667,
      1.25779304,
      1.3592470666667,
      0.86302453333333,
      0.92147232,
      1.29656568,
      1.87085736,
      2.1602688266667,
      1.6362538666667,
      1.9718454666667,
      1.91547088,
      1.2975170666667,
      1.9363750133333,
      2.04645904,
      1.82192224,
      1.2939156,
      1.34280832,
      1.56015032,
      1.50547648,
      1.85220576,
      1.6740518933333,
      1.6275747466667,
      1.66257304,
      1.8515826933333,
      2.2051652,
      1.79874424,
      1.32631296,
      1.2484514133333,
      1.7564011466667,
      1.3309231733333,
      1.4897478133333,
      2.37576912,
      4.2789256533333,
      3.75475256,
      1.1963513866667,
      1.2438248266667,
      1.8010948533333,
      1.2660529866667,
      1.3859280533333,
      1.5206160533333,
      1.3865487466667,
      1.9298106666667,
      1.75148752,
      1.84741608,
      1.4595924533333,
      1.89062416,
      1.4741423466667,
      2.3138094933333,
      1.3107473333333,
      2.02089544,
      1.9417146933333,
      1.56259992,
      1.47420552,
      1.2199676,
      2.47719432,
      2.7514470133333,
      1.88698576,
      3.2356983466667,
      1.324132,
      1.7494216266667,
      2.0640439733333,
      1.5284281866667,
      1.39832608,
      1.8060240266667,
      1.3095941333333,
      1.31993288,
      1.1768710933333,
      1.34566088,
      1.4394115466667,
      1.26734504,
      1.18268312,
      1.7801820533333,
      1.21028776,
      1.1586349066667,
      1.1903156,
      1.8156477866667,
      1.3066696533333,
      2.0046168,
      1.8327948,
      1.9226313866667,
      1.5282302933333,
      1.93423088,
      1.14834992,
      2.6576972,
      0.36272178666667,
      1.11918952,
      1.8664829066667,
      0.7773976,
      0.23720197333333,
      0.29977136,
      0.26900682666667,
      0.23715013333333,
      0.44351357333333,
      0.79377546666667,
      0.4488068,
      0.34934314666667,
      0.31419210666667,
      0.55421352,
      0.61141048,
      0.52884962666667,
      0.34654277333333,
      0.40446634666667,
      0.23278424,
      0.40118032,
      0.17722253333333,
      0.41713208,
      0.45472061333333,
      0.21769477333333,
      0.31094176,
      0.59042877333333,
      0.72571925333333,
      0.59545146666667,
      0.70849005333333,
      0.92422496,
      3.1421810933333,
      0.27210418666667,
      0.32090672,
      0.41335349333333,
      0.36778352,
      0.41774968,
      0.30808506666667,
      0.34891533333333,
      0.46404624,
      0.28323685333333,
      0.26962352,
      0.49161621333333,
      0.43820173333333,
      0.49759768,
      0.51838602666667,
      0.52511653333333,
      0.45294632,
      0.28725637333333,
      0.18648048,
      0.084206853333333,
      0.267206,
      0.18830496,
      0.07774968,
      0.076270186666667,
      0.24486213333333,
      0.12434290666667,
      0.20176368,
      0.36727442666667,
      0.3993164,
      0.54078725333333,
      0.40957208,
      0.97638661333333,
      1.3373827466667,
      0.11222074666667,
      0.13245157333333,
      0.31208536,
      0.3968844,
      0.3153712,
      0.36963301333333,
      0.40490557333333,
      0.47697949333333,
      0.60294869333333,
      0.31383066666667,
      0.42282402666667,
      0.58225738666667,
      0.43083354666667,
      0.36184893333333,
      0.64802613333333,
      0.48916053333333,
      0.51855248,
      0.42051909333333,
      0.93405922666667,
      0.35692416,
      0.45737277333333,
      0.73403949333333,
      0.60097984,
      0.65955197333333,
      1.01176488,
      0.92510146666667,
      1.6099233066667,
      15.210368133333,
      15.27227608,
      14.464618533333,
      15.814345946667,
      15.788935786667,
      12.713233866667,
      17.93438,
      8.86054456,
      3.9925668,
      3.22097728,
      2.8534460266667,
      2.1667310933333,
      4.73959008,
      2.98626664,
      4.3189869333333
    ]
  }
}

Documents

Regenerate LOA

GET/v2/product/{productId}/loa

Example URI

GET /v2/product/productId/loa
URI Parameters
HideShow
productId
String UUID or Integer (required) 

Unique Product ID, or product UUID

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/pdf

New VXC Price

GET/v2/pricebook/vxc?aLocationId={aLocationId}&speed={speed}&bLocationId={bLocationId}

Example URI

GET /v2/pricebook/vxc?aLocationId=aLocationId&speed=speed&bLocationId=bLocationId
URI Parameters
HideShow
aLocationId
Integer (required) 

A end location

speed
Integer (required) 

speed in Mbps

bLocationId
Integer (required) 

B/Z end location

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "VXC charges for new orders",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
  "data": {
    "monthlySetup": 0,
    "monthlyRate": 300,
    "fixedRecurringCharge": 100,
    "longHaulMbpsRate": 0.2,
    "mbpsRate": 0.2,
    "currency": "EUR",
    "productType": "VXC",
    "forceProductChange": null
  }
}

New IX Price

GET/v2/pricebook/ix?ixType={ixType}&portLocationId={locationId}&speed={speed}

Example URI

GET /v2/pricebook/ix?ixType=ixType&portLocationId=locationId&speed=speed
URI Parameters
HideShow
ixType
String (required) 

IX Type, eg Ashburn IX

locationId
Integer (required) 

Port location

speed
Integer (required) 

speed in Mbps

Request
HideShow
Headers
X-Auth-Token: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "message": "IX charges for new orders",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy",
  "data": {
    "monthlySetup": 0,
    "monthlyRate": 160,
    "fixedRecurringCharge": 100,
    "longHaulMbpsRate": 0.6,
    "mbpsRate": 0.6,
    "currency": "GBP",
    "productType": "IX",
    "forceProductChange": null
  }
}

Generated by aglio on 18 Sep 2018