Find Pricing Information via the API

NOTE: The examples below display the current pricing for services. Prices are subject to change.

Before you begin

Ensure you have a bearer token authorizing all your API calls. For information on authorizing calls, see one of the following pages:

API reference

Parameters

  • Header row

    • Parameter
    • Required
    • Description
  • Row 1

    • product_type
      string
    • Yes
    • The type product for which you are receiving pricing information. This can be one of the following: “cloud_dedicated” “cloud_dedicated_vc” “cloud_hosted” “crossconnect” “pointtopoint” “port” “port_enni” “vcbwc” “cloud_router” “cr_connection” “vc_ix” “vc_marketplace” “vc_hourly”
  • Row 1

    • location_type
      string

    • No

    • Filter pricing information by location type. You will get the most precise pricing by using a specific location such as a POP. However, if no pricing is found, the API will attempt to search by a broader location type. (For example, if we can’t find the POP, we might return pricing information for the market.) For more information, see PacketFabric Network Hierarchy

      This can be one of the following: “site” “pop” “market” “country” “region”

  • Row 1

    • subscription_term
      integer
    • No
    • Duration of the contract in months: 1, 12, 24, or 36.
  • Row 1

    • media
      string

    • No

    • Optic media type: “LX” “EX” “ZX” “LR” “ER” “ER DWDM” “ZR” “ZR DWDM” “LR4” “ER4” “CWDM4” “LR4” “ER4 Lite”.

      You can use /v2/locations/{pop}/port-availability to verify what media types are available for your chosen speed and location.

      In most cases, the media type does not affect the price.

  • Row 1

    • side_a
      string
    • No
    • The location for the A-side of a connection. The type of location you enter needs to match what you specify for location_type. For example if location_type=pop, you need to enter a POP code and not a region or country.
  • Row 1

    • side_Z
      string
    • No
    • The location for the z-side of a connection.
  • Row 1

    • network_provider_a
      string

    • No

    • Limit results to a specific network provider on the A-side. This can be “PacketFabric” or “Colt.”

      Only applicable if location_type is set to “market” or “region.”

  • Row 1

    • network_provider_z
      string

    • No

    • Limit results to a specific network provider on the Z-side. This can be “PacketFabric” or “Colt.”

      Only applicable if location_type is set to “market” or “region.”

  • Row 1

    • provider
      string
    • No
    • Filter by cloud provider. For example, provider=aws.
  • Row 1

    • bandwidth_type
      string
    • No
    • Specify “dedicated” or “usage” (to be used with backbone virtual circuits).
  • Row 1

    • service_class
      string
    • No
    • Filter for “metro” or “longhaul” connections.
  • Row 1

    • speed
      string
    • No
    • This can be one of the following: “50Mbps” “100Mbps” “200Mbps” “300Mbps” “400Mbps” “500Mbps” “1Gbps” “2Gbps” “5Gbps” “10Gbps” “20Gbps” “30Gbps” “40Gbps” “50Gbps” “60Gbps” “80Gbps” “100Gbps”
  • Row 1

    • account_uuid
      string

    • No

    • Billing account ID. If you have special pricing agreements tied to a certain billing account, including the account ID will return the modified prices. If you do not have any special agreements in place, you will see standard pricing regardless of whether you include your account ID.

      Note that for reseller partners, some discounts can only be calculated after the billing period is over, and will not be reflected in the price returned via the API regardless of whether you include your account ID.

      Use /v2/contacts?billing=true to find this or see Get the Account UUID.

Port prices

To check port prices, use the following GET call:

https://api.packetfabric.com/v2/billing/pricing?product_type=port

Use the following parameters to filter the results:

  • Header row
    • Parameter
    • Notes
  • Row 1
    • location_type
      and
      side_a

    • The location_type parameter is only helpful when you are also specifying side_a. Use these parameters together to filter pricing by location.

      The location type has to match the location you are filtering for in side_a.

      For example, if you want to filter for the Chicago market, you would set location_type=market and side_a=CHI.

      If you want to filter for a specific POP, then you would set location_type=pop and side_a=CHI3.

      You will get the most precise pricing by using a specific location such as a POP. However, if no POP-specific pricing is found, the API will return pricing for the location on a broader level such as the market or region. For more information, see PacketFabric Network Hierarchy

      location_type can be one of the following: “site” “pop” “market” “country” “region”.

      Typically port pricing is determined by the region (as shown in the example below).

      TIP: Use https://api.packetfabric.com/v2/locations/markets to get a list of all the PacketFabric market codes. To get the POP codes, use /v2.1/locations with filters as needed or see our locations page.
  • Row 1
    • subscription_term

    • Duration of the contract in months: 1, 12, 24, or 36.

      TIP: Its a good idea to always include a subscription term in your parameters. Because the subscription term influences price, if you do not specify a term, then the API response will include 4x as many JSON objects for each request (one for each possible subscription term).
  • Row 1
    • media

    • Optic media type: “LX” “EX” “ZX” “LR” “ER” “ER DWDM” “ZR” “ZR DWDM” “LR4” “ER4” “CWDM4” “LR4” “ER4 Lite”.

      TIP: Generally speaking, the media type does not affect the price. However, if you want to be very exact, you can use /v2/locations/{pop}/port-availability to check the media available at a specific POP, and ensure you get pricing for that media type at that location.
  • Row 1
    • speed
    • Port capacity strongly influences the price. For ports, use one of the following: “1Gbps” “10Gbps” “40Gbps” “100Gbps”
  • Row 1
    • account_uuid

    • Billing account ID. If you have special pricing agreements tied to a certain billing account, including the account ID will return the modified prices. If you do not have any special agreements in place, you will see standard pricing regardless of whether you include your account ID.

      Note that for reseller partners, some discounts can only be calculated after the billing period is over, and will not be reflected in the price returned via the API regardless of whether you include your account ID.

      Use /v2/contacts?billing=true to find this or see Get the Account UUID.

For example, the following API call returns pricing for:

  • 10Gbps ports
  • In the NYC1 POP
  • For a 12 month term

https://api.packetfabric.com/v2/billing/pricing?product_type=port&location_type=pop&side_a=NYC1&speed=10Gbps&subscription_term=12

This is the response:

[
    {
        "location_type": "region",
        "side_a": "US",
        "side_z": "*",
        "product_key": "port:M12:region-1:10000-LR",
        "product_type": "port",
        "term": 12,
        "speed": 10000,
        "media_type": "LR",
        "currency_code": "USD",
        "mrc": "384.0",
        "nrc": "250.0",
        "media_price": null,
        "usage": null,
        "hourly_banded": null,
        "per_Mb": null,
        "standard_hourly_banded": null,
        "standard_media_price": null,
        "standard_mrc": "400.0",
        "standard_nrc": "500.0",
        "standard_per_Mb": null,
        "standard_usage": null
    }
]

There are a few things to note in this response:

[
    {
        "location_type": "region",
        "side_a": "US",
    }
]

In most cases, port pricing is not calculated on a per-POP basis.

Since there is no pricing for the NYC1 POP, the API returns the next most precise filter. In this case, it the region (US).

[
    {
        "mrc": "384.0",
        "nrc": "250.0",
        "standard_mrc": "400.0",
        "standard_nrc": "500.0",
    }
]

The mrc (monthly recurring cost) and the nrc (non-recurring cost) are the prices that matter; they are the costs with the 12 month subscription term discounts applied.

The standard_mrc and standard_nrc would be the prices if you were to remove the 12-month term discount.

The following is a broader search, returning prices for ports in the NYC market for any capacity:

https://api.packetfabric.com/v2/billing/pricing?product_type=port&location_type=pop&side_a=NYC1&speed=10Gbps&subscription_term=12

That returns 18 different data sets, covering multiple combinations of different speeds and media.

If you were to remove the subscription term parameter:

https://api.packetfabric.com/v2/billing/pricing?product_type=port&location_type=pop&side_a=NYC1&speed=10Gbps

The response would include 72 JSON objects (18 x 4 different prices depending on subscription).

As you remove parameters, the API response grows to include all variables.

ENNI ports

Price searches for ENNI ports work the way same as ports, except you must set product_type to port_enni:

https://api.packetfabric.com/v2/billing/pricing?product_type=port_enni

NOTE: By default, ENNI ports are not available to all users. If you want to create an ENNI port, contact support@packetfabric.com.

Colt-powered ports

To filter for Colt-powered ports, set the following:

  • location_type to region and side_a to either UK (the UK region returns locations across all of Europe)

    OR set location_type to pop and then side_a to a POP that you know is a Colt location

  • network_provider_a to Colt

  • If you set a subscription term, it must be 12, 24, or 36 months

  • Speed can be either 1Gbps or 10Gbps

For example, the following returns Colt pricing for a 10 Gbps port on a 12 month term:

https://api.packetfabric.com/v2/billing/pricing?product_type=port&location_type=region&side_a=UK&network_provider_a=Colt&speed=10Gbps&subscription_term=12

For more information, see Colt-Powered Ports.

Outbound cross connect prices

To check cross connect prices, use the following GET call:

https://api.packetfabric.com/v2/billing/pricing?product_type=crossconnect

Use the following parameters to filter the results:

  • Header row
    • Parameter
    • Notes
  • Row 1
    • location_type
      and
      side_a

    • Unlike most other service pricing, the price for an outbound cross connect is highly dependent on the POP.

      Set location_type to “pop.”

      Set side_a to the POP in which you will be ordering a cross connect.

      To get the appropriate POP code, use /v2.1/locations with filters as needed or see our locations page.

  • Row 1
    • account_uuid

    • Billing account ID. If you have special pricing agreements tied to a certain billing account, including the account ID will return the modified prices. If you do not have any special agreements in place, you will see standard pricing regardless of whether you include your account ID.

      Note that for reseller partners, some discounts can only be calculated after the billing period is over, and will not be reflected in the price returned via the API regardless of whether you include your account ID.

      Use /v2/contacts?billing=true to find this or see Get the Account UUID.

For example, the following API call returns pricing for an outbound cross connect in the DAL7 POP:

https://api.packetfabric.com/v2/billing/pricing?product_type=crossconnect&location_type=pop&side_a=DAL7

This is the response:

[
    {
        "location_type": "pop",
        "side_a": "DAL7",
        "side_z": "*",
        "product_key": "crossconnect:M1:pop-290:",
        "product_type": "crossconnect",
        "term": 1,
        "speed": 0,
        "media_type": "",
        "currency_code": "USD",
        "mrc": "405.0",
        "nrc": "1250.0",
        "media_price": null,
        "usage": null,
        "hourly_banded": null,
        "per_Mb": null,
        "standard_hourly_banded": null,
        "standard_media_price": null,
        "standard_mrc": "405.0",
        "standard_nrc": "1250.0",
        "standard_per_Mb": null,
        "standard_usage": null
    }
]

If outbound cross connects are not available at a location, the API will return an empty JSON array.

Subscription terms do not apply to outbound cross connects, meaning that the mrc (monthly recurring cost with subscription discount) and nrc (non-recurring cost with subscription discount) will be the same as the standard_mrc and standard_nrc.

Backbone virtual circuit prices

NOTE: The virtual circuit pricing does not include the cost of the A and Z side ports. See port pricing above.

To check backbone virtual circuit prices, use the following GET call:

https://api.packetfabric.com/v2/billing/pricing?product_type=vcbwc

Use the following parameters to filter the results:

  • Header row

    • Parameter
    • Notes
  • Row 1

    • location_type
      and
      side_a
      and
      side_z

    • The location_type parameter is required when specifying side_a and side_z.

      The location type has to match the location you are filtering for on each side.

      For example, if you want to see the prices from the NYC market to the Chicago market, you would set location_type=market and side_a=NYC and side_z=CHI.

      If you want to filter for specific POPs, then you would set location_type=pop, side_a=NYC3, and side_z=CHI2.

      You will get the most precise pricing by using a specific location such as a POP. However, if no POP-specific pricing is found, the API will return pricing for the location on a broader level such as the market or region. For more information, see PacketFabric Network Hierarchy

      location_type can be one of the following: “site” “pop” “market” “country” “region”.

      Typically it is the “market” of side A and side Z that influences pricing.

      TIP: Use https://api.packetfabric.com/v2/locations/markets to get a list of all the PacketFabric market codes.
  • Row 1

    • subscription_term

    • Duration of the contract in months: 1, 12, 24, or 36.

      TIP: Its a good idea to always include a subscription term in your parameters. Because the subscription term influences price, if you do not specify a term, then the API response will include 4x as many JSON objects for each request (one for each possible subscription term).

      This is true even under conditions when a subscription term does not apply. For example, even though the subscription term does not affect the usage-based pricing, you should still set it to avoid seeing duplicate results.

  • Row 1

    • network_provider_a
      and
      network_provider_z

    • Limit results to a specific network provider on the A-side and Z-side. This can be “PacketFabric” or “Colt.”

      Only applicable if location_type is set to “market” or “region.”

      PacketFabric to Colt virtual circuits have certain limitations. For example, PacketFabric to Colt connections cannot be usage-based or hourly. For more information, see Colt-Powered Ports.

      TIP: When pricing connections in which one or both sides land in an EMEA market, it is best to specify network_provider_a and network_provider_z. Otherwise the response may include different prices depending on the provider, and it is not immediately clear in the response which is which.
  • Row 1

    • bandwidth_type

    • Specify “dedicated” or “usage.”

      If you set this to “usage,” then do not set the speed parameter.

  • Row 1

    • service_class

    • Filter for “metro” or “longhaul” connections.

      NOTE: If you’re filtering for side A and side Z locations, the service class is inherently considered. If side A and side Z are in the same market it is a metro connection; different markets are long haul connections.

      If your A and Z locations conflict with your service_class setting, then the service_class setting takes precedent. For example, if you set side_a to NYC1 and side_z to NYC6, that is a metro connection and should return metro pricing.

      However, if you ALSO set service_class to “longhaul,” you’ll see long-haul pricing regardless of the fact that your A and Z sides are in the same metro.

  • Row 1

    • speed

    • This can be one of the following: “50Mbps” “100Mbps” “200Mbps” “300Mbps” “400Mbps” “500Mbps” “1Gbps” “2Gbps” “5Gbps” “10Gbps” “20Gbps” “30Gbps” “40Gbps” “50Gbps” “60Gbps” “80Gbps” “100Gbps”

      If bandwidth_type is “usage,” then do not set the speed parameter.

  • Row 1

    • account_uuid

    • Billing account ID. If you have special pricing agreements tied to a certain billing account, including the account ID will return the modified prices. If you do not have any special agreements in place, you will see standard pricing regardless of whether you include your account ID.

      Note that for reseller partners, some discounts can only be calculated after the billing period is over, and will not be reflected in the price returned via the API regardless of whether you include your account ID.

      Use /v2/contacts?billing=true to find this or see Get the Account UUID.

For example, the following API call returns pricing for:

  • 10Gbps virtual circuit
  • Between the POPs CHI3 and the NYC8
  • For a 12 month term
  • With dedicated pricing

https://api.packetfabric.com/v2/billing/pricing?product_type=vcbwc&location_type=pop&side_a=CHI3&side_z=NYC8&speed=10Gbps&subscription_term=12&bandwidth_type=dedicated

This is the response:

[
    {
        "location_type": "region",
        "side_a": "US",
        "side_z": "US",
        "product_key": "vcbwc:M12:region-1-1:10000-dedicated-longhaul",
        "product_type": "vcbwc",
        "term": 12,
        "speed": 10000,
        "media_type": "",
        "currency_code": "USD",
        "mrc": "1920.0",
        "nrc": null,
        "media_price": null,
        "usage": null,
        "hourly_banded": null,
        "per_Mb": null,
        "standard_hourly_banded": null,
        "standard_media_price": null,
        "standard_mrc": "2000.0",
        "standard_nrc": null,
        "standard_per_Mb": null,
        "standard_usage": null
    }
]

Similar to ports, there are a few things to note in this response:

[
    {
        "location_type": "region",
        "side_a": "US",
        "side_z": "US",
        "product_key": "vcbwc:M12:region-1-1:10000-dedicated-longhaul",
    }
]

In most cases, pricing is not calculated on a per-POP basis. In this example, what was important was that the virtual circuit extended between two locations within the same region (US). The dedicated-longhaul portion at the end of product_key indicates that the A and Z side fall in two different markets. Had both been in the same market, this would read dedicated-metro.

At this time we do not provide pricing based on market proximity, so the price is the same for a virtual circuit extending between Houston and Dallas or Houston and New York City.

Since there is no special pricing on the POP level or market level, the API returns the next most precise filter. In this case, it the region (US).

[
    {
        "mrc": "1920.0",
        "nrc": null,
        "standard_mrc": "2000.0",
        "standard_nrc": null,
    }
]

Virtual circuits to do not have a non-recurring cost (nrc), so that field will always be null.

The mrc (monthly recurring cost) is the cost that matters here; it is the price of the virtual circuit with the 12-month subscription term discount applied.

The standard_mrc would be the price if you were to remove the 12-month term discount.

Metro circuits

At this time, metro circuits (circuits with A and Z sides both in the same metro) are $0 regardless of size.

To verify that, can use a GET call like the following

https://api.packetfabric.com/v2/billing/pricing?product_type=vcbwc&location_type=region&side_a=US&side_z=US&subscription_term=12&bandwidth_type=dedicated&service_class=metro

NOTE: To prevent confusion, include the A and Z side filters at the region level (as shown above) or lower. If you do not include locations, the response includes some transatlantic prices. These are not $0, but because they can include metro segments, they can still show up in the response.

Transatlantic connections

The following API call returns pricing for:

  • 10Gbps virtual circuit
  • Between the NYC market and the Frankfurt market (FRA)
  • For a 12 month term
  • With dedicated pricing
  • Between two PacketFabric ports

https://api.packetfabric.com/v2/billing/pricing?product_type=vcbwc&location_type=market&side_a=NYC&side_z=FRA&speed=10Gbps&subscription_term=12&network_provider_a=PacketFabric&network_provider_z=PacketFabric&bandwidth_type=dedicated

TIP: When pricing connections in which one or both sides land in an EMEA market, it is best to specify network_provider_a and network_provider_z. Otherwise your response may include different prices depending on the provider, and it is not immediately clear in the response which is which.

Hourly virtual circuits

For hourly virtual circuits, set product_type to vc_hourly. The other parameters are the same.

https://api.packetfabric.com/v2/billing/pricing?product_type=vc_hourly

Hosted cloud connections prices

To check Hosted cloud connection prices, use the following GET call:

https://api.packetfabric.com/v2/billing/pricing?product_type=cloud_hosted

Use the following parameters to filter the results:

  • Header row

    • Parameter
    • Notes
  • Row 1

    • location_type

    • The location_type parameter is required when specifying side_a and side_z.

      The location type has to match the location you are filtering for on each side.

      For example, if you want to see the prices from the NYC market to the Chicago market, you would set location_type=market and side_a=NYC and side_z=CHI.

      If you want to filter for specific POPs, then you would set location_type=pop, side_a=NYC3, and side_z=CHI2.

      You will get the most precise pricing by using a specific location such as a POP. However, if no POP-specific pricing is found, the API will return pricing for the location on a broader level such as the market or region. For more information, see PacketFabric Network Hierarchy

      location_type can be one of the following: “site” “pop” “market” “country” “region”.

      Typically it is the “market” of side A and side Z that influences pricing.

      TIP: Use https://api.packetfabric.com/v2/locations/markets to get a list of all the PacketFabric market codes.
  • Row 1

    • side_a
      and
      side_z

    • Review location_type above.

      One side should be the location of your PacketFabric port (or where you plan to have a port).

      The other side should be an on-ramp location. For a list of our cloud on-ramp locations, use /v2/locations/cloud with filters as needed or see our locations page.

  • Row 1

    • subscription_term

    • Duration of the contract in months: 1, 12, 24, or 36.

      TIP: Its a good idea to always include a subscription term in your parameters. Because the subscription term influences price, if you do not specify a term, then 4x as many data sets will return for each request (one for each possible subscription term).

      All Hosted cloud connections are on 1 months terms, so the pricing will not change if you specify a longer term. However, the request will still return 4 data sets for each term to reflect this. Therefore you should still set a subscription term to avoid seeing duplicates.

  • Row 1

    • provider

    • Filter by cloud provider. For example, provider=aws.

      This can be one of the following: “aws”, “google”, “generic”, “azure”, “ibm”, “oracle”, “salesforce”.

      PacketFabric pricing does not generally change depending on the cloud provider. However, you should still use this filter to ensure accuracy and reduce the size of the response.

  • Row 1

    • service_class

    • Filter for “metro” or “longhaul” connections.

      NOTE: If you’re filtering for side A and side Z locations, the service class is inherently considered. If side A and side Z are in the same market it is a metro connection; different markets are long haul connections.

      If your A and Z locations conflict with your service_class setting, then the service_class setting takes precedent. For example, if you set side_a to NYC1 and side_z to NYC6, that is a metro connection and should return metro pricing.

      However, if you ALSO set service_class to “longhaul,” you’ll see long-haul pricing regardless of the fact that your A and Z sides are in the same metro.

  • Row 1

    • speed
    • This can be one of the following: “50Mbps” “100Mbps” “200Mbps” “300Mbps” “400Mbps” “500Mbps” “1Gbps” “2Gbps” “5Gbps” “10Gbps”
  • Row 1

    • account_uuid

    • Billing account ID. If you have special pricing agreements tied to a certain billing account, including the account ID will return the modified prices. If you do not have any special agreements in place, you will see standard pricing regardless of whether you include your account ID.

      Note that for reseller partners, some discounts can only be calculated after the billing period is over, and will not be reflected in the price returned via the API regardless of whether you include your account ID.

      Use /v2/contacts?billing=true to find this or see Get the Account UUID.

For example, the following API call returns pricing for:

  • 1 Gbps connection
  • Between the Chicago market and the New York City market
  • For a 1 month term (all pricing is based on a one month term)
  • To Azure

https://api.packetfabric.com/v2/billing/pricing?product_type=cloud_hosted&location_type=market&side_a=NYC&side_z=CHI&speed=1Gbps&subscription_term=1&provider=azure

This is the response:

[
    {
        "location_type": "region",
        "side_a": "US",
        "side_z": "US",
        "product_key": "cloud_hosted:M1:region-1-1:1000-azure-longhaul",
        "product_type": "cloud_hosted",
        "term": 1,
        "speed": 1000,
        "media_type": "",
        "currency_code": "USD",
        "mrc": "100.0",
        "nrc": null,
        "media_price": null,
        "usage": null,
        "hourly_banded": null,
        "per_Mb": null,
        "standard_hourly_banded": null,
        "standard_media_price": null,
        "standard_mrc": "100.0",
        "standard_nrc": null,
        "standard_per_Mb": null,
        "standard_usage": null
    }
]

Hosted cloud connections can only be on a one month term, so the same price will return regardless of the subscription_term filter you use. This also means that the mrc (monthly recurring cost with subscription discount) and the standard_mrc (monthly recurring cost without a subscription discount) are always the same.

Like backbone virtual circuits, Hosted cloud connections do not have nrc costs (non-recurring costs).

Point-to-point connection prices

To check point-to-point connection prices, use the following GET call:

https://api.packetfabric.com/v2/billing/pricing?product_type=pointtopoint

A point-to-point connection comprises two ports and a single EPL connection between those ports. Your parameter filters apply to the ports. For more information on EPL connections, see Point-to-Point Overview.

Use the following parameters to filter the results:

  • Header row
    • Parameter
    • Notes
  • Row 1
    • location_type
      and
      side_a
      and
      side_z

    • The location_type parameter is required when specifying side_a and side_z. For point to point connections, the A and Z sides are where the two ports will be located.

      The location type has to match the location you are filtering for on each side.

      For example, if you want to see the prices from the NYC market to the Chicago market, you would set location_type=market and side_a=NYC and side_z=CHI.

      If you want to filter for specific POPs, then you would set location_type=pop, side_a=NYC3, and side_z=CHI2.

      You will get the most precise pricing by using a specific location such as a POP. However, if no POP-specific pricing is found, the API will return pricing for the location on a broader level such as the market or region. For more information, see PacketFabric Network Hierarchy

      location_type can be one of the following: “site” “pop” “market” “country” “region”.

      Typically it is the “market” of side A and side Z that influences pricing.

      TIP: Use https://api.packetfabric.com/v2/locations/markets to get a list of all the PacketFabric market codes.
  • Row 1
    • subscription_term

    • Duration of the contract in months: 1, 12, 24, or 36.

      TIP: Its a good idea to always include a subscription term in your parameters. Because the subscription term influences price, if you do not specify a term, then the API response will include 4x as many JSON objects for each request (one for each possible subscription term).
  • Row 1
    • media

    • Optic media type: “LX” “EX” “ZX” “LR” “ER” “ER DWDM” “ZR” “ZR DWDM” “LR4” “ER4” “CWDM4” “LR4” “ER4 Lite”.

      Even though a point-to-point connection has two ports, the media for both ports has to match. Therefore you only need to specify media once.

      TIP: Generally speaking, the media type does not affect the price. However, if you want to be very exact, you can use /v2/locations/{pop}/port-availability to check the media available at a specific POP, and ensure you get pricing for that media type at that location.
  • Row 1
    • speed

    • Port capacity strongly influences the price. For ports, use one of the following: “1Gbps” “10Gbps” “40Gbps” “100Gbps”

      Even though a point-to-point connection has two ports, the speed for both ports has to match. Therefore you only need to specify speed once. The EPL virtual circuit that extends between the ports will use the full port capacity.

  • Row 1
    • account_uuid

    • Billing account ID. If you have special pricing agreements tied to a certain billing account, including the account ID will return the modified prices. If you do not have any special agreements in place, you will see standard pricing regardless of whether you include your account ID.

      Note that for reseller partners, some discounts can only be calculated after the billing period is over, and will not be reflected in the price returned via the API regardless of whether you include your account ID.

      Use /v2/contacts?billing=true to find this or see Get the Account UUID.

For example, the following API call returns pricing for:

  • Two 10 Gbps ports and the 10 Gbps connection between them
  • The ports are located in DAL7 and CHI3 POPs
  • For a 12 month term

https://api.packetfabric.com/v2/billing/pricing?product_type=pointtopoint&location_type=pop&side_a=DAL7&side_z=CHI3&speed=10Gbps&subscription_term=12

This is the response:

[
    {
        "location_type": "region",
        "side_a": "US",
        "side_z": "US",
        "product_key": "pointtopoint:M12:region-1-1:10000-LR-longhaul",
        "product_type": "pointtopoint",
        "term": 12,
        "speed": 10000,
        "media_type": "LR",
        "currency_code": "USD",
        "mrc": "1680.0",
        "nrc": "250.0",
        "media_price": null,
        "usage": null,
        "hourly_banded": null,
        "per_Mb": null,
        "standard_hourly_banded": null,
        "standard_media_price": null,
        "standard_mrc": "1750.0",
        "standard_nrc": "500.0",
        "standard_per_Mb": null,
        "standard_usage": null
    }
]

As detailed in the previous sections, in most cases, port pricing is not calculated on a per-POP basis.

Since there is no specific pricing for the two POPs, the API returns the next most precise filter. In this case, it the region (US).

[
    {
        "mrc": "1680.0",
        "nrc": "250.0",
        "standard_mrc": "1750.0",
        "standard_nrc": "500.0",
    }
]

The mrc (monthly recurring cost) and the nrc (non-recurring cost) are the prices that matter; they are the costs with the 12 month subscription term discounts applied.

The standard_mrc and standard_nrc would be the prices if you were to remove the 12-month term discount.