> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://es.megaport.ferndocs.com/es/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://es.megaport.ferndocs.com/es/_mcp/server.

# Obtener Precio de Producto por Duración de Término (v4)

POST https://api.megaport.com/v4/pricebook/product/terms
Content-Type: application/json

Devuelve la información de precios de todas las longitudes de términos disponibles (descuentos de términos disponibles) para el servicio Megaport especificado por el `productUid`.

Al realizar pedidos de servicios, los clientes pueden comprometerse con una serie de longitudes de términos fijos. Los términos fijos ofrecerán precios mensuales con descuento en comparación con las tarifas estándar, ofreciendo mayores descuentos para términos más largos.

Puede devolver precios para estos servicios:

- Puerto
    
- VXC
    
- Internet Megaport
    
- MCR
    
- MVE
    

La solicitud será rechazada si el tipo de producto no está soportado.

Las configuraciones de complementos pueden pasarse como parte del cuerpo de la solicitud y el precio del complemento se incluirá en la respuesta.

Los parámetros están definidos en el cuerpo de la solicitud:

- `productType` - El tipo de producto para la solicitud de precios. Los valores válidos incluyen: MEGAPORT, VXC, MCR2, MVE, IX, IP_ADDRESS (Cadena).
    
- `currency` - El código de moneda ISO 4217 a utilizar para precios. Por ejemplo, el dólar estadounidense es USD. Si no se proporciona, el valor predeterminado es la moneda del producto existente. Si no se especifica el producto, se debe proporcionar la moneda. Para más información, consulte [Códigos de Moneda por País](https://www.iban.com/currency-codes). (Cadena)
    
- `LocationId` (Puerto/MCR/MVE) - El ID de la ubicación donde se desplegará el servicio (Requerido - Entero).
    
- `Vendor` (MVE) - El nombre del proveedor a utilizar en los cálculos de precios. Por ejemplo, `Cisco` (Cadena).
    
- `Size` (MVE) - El tamaño de MVE a utilizar en los cálculos de precio. Si se proporcionan tanto el tamaño como la etiqueta de MVE, el punto final solo aceptará la etiqueta de MVE como tamaño de MVE (Cadena).
    
- `mveLabel` (MVE) - El tamaño de la VM. El tamaño define las especificaciones de MVE, incluyendo el número de núcleos, ancho de banda y número de conexiones (Cadena).
    
- `aLocationId` (VXC) - El ID de la ubicación A-End del VXC (Requerido - Entero).
    
- `bLocationId` - (VXC) - El ID de la ubicación B-End del VXC (Requerido - Entero).
    
- `speed` - La velocidad del servicio en Mbps (Entero).
    
- `aEndProductType` (VXC) - El tipo de producto del servicio A-End del VXC. Los valores válidos incluyen: MEGAPORT, VXC, MCR2, MVE, IX, IP_ADDRESS (Cadena).
    
- `connectType` (VXC) - El tipo de conexión del VXC, que típicamente es el mismo que el tipo de conexión del servicio B-End. Los valores válidos incluyen: MVE, AMSIX, AWS (para VIF Alojado), AWSHC (para Conexión Alojada), AZURE, GOOGLE, ORACLE, OUTSCALE, ALIBABA e IBM. Use connectType=TRANSIT para Puertos que admitan una conexión de Internet Megaport. Use connectType=FRANCEIX para Puertos donde pueda crear un VXC para conectarse a France-IX (Cadena).
    
- `productUid` - El identificador único para el producto (Cadena).
    
- `term` - El plazo del contrato en meses (Entero).
    
- `addOns` - Lista de solicitudes de libro de precios de complementos (Matriz).

Reference: https://es.megaport.ferndocs.com/es/api-reference/pricing/get-product-price-for-term-length-v-4

## Servers

- `https://api.megaport.com` (Entorno de producción, default)
- `https://api-staging.megaport.com` (Entorno de pruebas (solo pruebas, se restablece cada 24 horas))

## Request

### Query parameters

- `companyId` (string, optional) — El identificador de la empresa que será propietaria del producto. Si no se proporciona, se establecerá por defecto a la empresa del usuario autenticado. Esto se puede suministrar con productUid para recuperar el precio de un producto existente, pero en el contexto de otra empresa. (Opcional - entero \<int32> >= 1)

### Body (application/json)

This endpoint expects an object.

- `currency` (string, optional)
- `locationId` (double, optional)
- `mveLabel` (string, optional)
- `productType` (string, optional)
- `productUid` (string, optional)
- `size` (string, optional)
- `term` (double, optional)
- `vendor` (string, optional)

## Response

### 200

Obtener Precio de Producto para Longitud de Término (v4) - Puerto / Obtener Precio de Producto para Longitud de Término (v4) - VXC / Obtener Precio de Producto para Longitud de Término (v4) - MCR / Obtener Precio de Producto para Longitud de Término (v4) - MVE / Obtener Precio de Producto para Longitud de Término (v4) - VXC / Obtener Precio de Producto para Longitud de Término (v4) - Puerto / Obtener Precio de Producto para Longitud de Término (v4) - MCR / Obtener Precio de Producto para Longitud de Término (v4) - MVE

- `data` (V4PricebookProductTermsPostResponsesContentApplicationJsonSchemaData, optional)
- `message` (string, optional)
- `terms` (string, optional)

## Types

### V4PricebookProductTermsPostResponsesContentApplicationJsonSchemaData

- `1` (V4PricebookProductTermsPostResponsesContentApplicationJsonSchemaData, optional)
- `12` (V4PricebookProductTermsPostResponsesContentApplicationJsonSchemaData, optional)
- `24` (V4PricebookProductTermsPostResponsesContentApplicationJsonSchemaData, optional)
- `36` (V4PricebookProductTermsPostResponsesContentApplicationJsonSchemaData, optional)

## Examples

### Get Product Price for Term Length (v4) - MCR

**Response**

```json
{
  "data": {
    "1": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 0,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 1063.64,
      "prices": [],
      "productType": "MCR2"
    },
    "12": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 177.27,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 886.37,
      "prices": [],
      "productType": "MCR2"
    },
    "24": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 221.59,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 842.05,
      "prices": [],
      "productType": "MCR2"
    },
    "36": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 265.91,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 797.73,
      "prices": [],
      "productType": "MCR2"
    }
  },
  "message": "Precios para todos los términos",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Get Product Price for Term Length (v4) - MCR
import requests

url = "https://api.megaport.com/v4/pricebook/product/terms"

response = requests.post(url)

print(response.json())
```

```javascript Get Product Price for Term Length (v4) - MCR
const url = 'https://api.megaport.com/v4/pricebook/product/terms';
const options = {method: 'POST'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Get Product Price for Term Length (v4) - MCR
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v4/pricebook/product/terms"

	req, _ := http.NewRequest("POST", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Get Product Price for Term Length (v4) - MCR
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v4/pricebook/product/terms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
```

```java Get Product Price for Term Length (v4) - MCR
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.megaport.com/v4/pricebook/product/terms")
  .asString();
```

```php Get Product Price for Term Length (v4) - MCR
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.megaport.com/v4/pricebook/product/terms');

echo $response->getBody();
```

```csharp Get Product Price for Term Length (v4) - MCR
using RestSharp;

var client = new RestClient("https://api.megaport.com/v4/pricebook/product/terms");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
```

```swift Get Product Price for Term Length (v4) - MCR
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v4/pricebook/product/terms")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Get Product Price for Term Length (v4) - MVE

**Response**

```json
{
  "data": {
    "1": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 0,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 3545.45454545455,
      "monthlyRate": 3545.45,
      "prices": [],
      "productType": "MVE"
    },
    "12": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 590.91,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 3545.45454545455,
      "monthlyRate": 2954.54,
      "prices": [],
      "productType": "MVE"
    },
    "24": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 738.63,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 3545.45454545455,
      "monthlyRate": 2806.82,
      "prices": [],
      "productType": "MVE"
    },
    "36": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 886.36,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 3545.45454545455,
      "monthlyRate": 2659.09,
      "prices": [],
      "productType": "MVE"
    }
  },
  "message": "Precios para todos los términos",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Get Product Price for Term Length (v4) - MVE
import requests

url = "https://api.megaport.com/v4/pricebook/product/terms"

response = requests.post(url)

print(response.json())
```

```javascript Get Product Price for Term Length (v4) - MVE
const url = 'https://api.megaport.com/v4/pricebook/product/terms';
const options = {method: 'POST'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Get Product Price for Term Length (v4) - MVE
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v4/pricebook/product/terms"

	req, _ := http.NewRequest("POST", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Get Product Price for Term Length (v4) - MVE
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v4/pricebook/product/terms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
```

```java Get Product Price for Term Length (v4) - MVE
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.megaport.com/v4/pricebook/product/terms")
  .asString();
```

```php Get Product Price for Term Length (v4) - MVE
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.megaport.com/v4/pricebook/product/terms');

echo $response->getBody();
```

```csharp Get Product Price for Term Length (v4) - MVE
using RestSharp;

var client = new RestClient("https://api.megaport.com/v4/pricebook/product/terms");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
```

```swift Get Product Price for Term Length (v4) - MVE
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v4/pricebook/product/terms")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Get Product Price for Term Length (v4) - Port

**Response**

```json
{
  "data": {
    "1": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 0,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.63636363636,
      "monthlyRate": 1063.64,
      "prices": [],
      "productType": "MEGAPORT"
    },
    "12": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 177.28,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.63636363636,
      "monthlyRate": 886.36,
      "prices": [],
      "productType": "MEGAPORT"
    },
    "24": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 221.59,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.63636363636,
      "monthlyRate": 842.05,
      "prices": [],
      "productType": "MEGAPORT"
    },
    "36": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 265.91,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.63636363636,
      "monthlyRate": 797.73,
      "prices": [],
      "productType": "MEGAPORT"
    }
  },
  "message": "Precios para todos los términos",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Get Product Price for Term Length (v4) - Port
import requests

url = "https://api.megaport.com/v4/pricebook/product/terms"

response = requests.post(url)

print(response.json())
```

```javascript Get Product Price for Term Length (v4) - Port
const url = 'https://api.megaport.com/v4/pricebook/product/terms';
const options = {method: 'POST'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Get Product Price for Term Length (v4) - Port
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v4/pricebook/product/terms"

	req, _ := http.NewRequest("POST", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Get Product Price for Term Length (v4) - Port
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v4/pricebook/product/terms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
```

```java Get Product Price for Term Length (v4) - Port
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.megaport.com/v4/pricebook/product/terms")
  .asString();
```

```php Get Product Price for Term Length (v4) - Port
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.megaport.com/v4/pricebook/product/terms');

echo $response->getBody();
```

```csharp Get Product Price for Term Length (v4) - Port
using RestSharp;

var client = new RestClient("https://api.megaport.com/v4/pricebook/product/terms");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
```

```swift Get Product Price for Term Length (v4) - Port
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v4/pricebook/product/terms")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Get Product Price for Term Length (v4) - VXC

**Response**

```json
{
  "data": {
    "1": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 0,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 9430.90909090909,
      "monthlyRate": 9430.91,
      "prices": [],
      "productType": "VXC"
    },
    "12": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 1571.82,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 9430.90909090909,
      "monthlyRate": 7859.09,
      "prices": [],
      "productType": "VXC"
    },
    "24": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 1964.77,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 9430.90909090909,
      "monthlyRate": 7466.14,
      "prices": [],
      "productType": "VXC"
    },
    "36": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 2357.73,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 9430.90909090909,
      "monthlyRate": 7073.18,
      "prices": [],
      "productType": "VXC"
    }
  },
  "message": "Precios para todos los términos",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Get Product Price for Term Length (v4) - VXC
import requests

url = "https://api.megaport.com/v4/pricebook/product/terms"

response = requests.post(url)

print(response.json())
```

```javascript Get Product Price for Term Length (v4) - VXC
const url = 'https://api.megaport.com/v4/pricebook/product/terms';
const options = {method: 'POST'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Get Product Price for Term Length (v4) - VXC
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v4/pricebook/product/terms"

	req, _ := http.NewRequest("POST", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Get Product Price for Term Length (v4) - VXC
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v4/pricebook/product/terms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
```

```java Get Product Price for Term Length (v4) - VXC
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.megaport.com/v4/pricebook/product/terms")
  .asString();
```

```php Get Product Price for Term Length (v4) - VXC
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.megaport.com/v4/pricebook/product/terms');

echo $response->getBody();
```

```csharp Get Product Price for Term Length (v4) - VXC
using RestSharp;

var client = new RestClient("https://api.megaport.com/v4/pricebook/product/terms");
var request = new RestRequest(Method.POST);
IRestResponse response = client.Execute(request);
```

```swift Get Product Price for Term Length (v4) - VXC
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v4/pricebook/product/terms")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Get Product Price for Term Length (v4)

**Request**

```json
{
  "currency": "AUD",
  "locationId": 123,
  "mveLabel": "MVE 16/64",
  "productType": "MVE",
  "productUid": "8afe49da-e936-4e2d-a1dd-03e2c6525108",
  "size": "large",
  "term": 12,
  "vendor": "cisco"
}
```

**Response**

```json
{
  "data": {
    "1": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 0,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 1063.64,
      "prices": [],
      "productType": "MCR2"
    },
    "12": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 177.27,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 886.37,
      "prices": [],
      "productType": "MCR2"
    },
    "24": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 221.59,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 842.05,
      "prices": [],
      "productType": "MCR2"
    },
    "36": {
      "currency": "AUD",
      "discounts": [
        {
          "amount": 265.91,
          "discountDetails": {
            "code": null,
            "description": null,
            "mechanism": null,
            "percentageAmount": null
          },
          "discountReason": "TERM"
        }
      ],
      "monthlyRackRate": 1063.64,
      "monthlyRate": 797.73,
      "prices": [],
      "productType": "MCR2"
    }
  },
  "message": "Precios para todos los términos",
  "terms": "This data is subject to the Acceptable Use Policy https://www.megaport.com/legal/acceptable-use-policy"
}
```

**SDK Code**

```python Get Product Price for Term Length (v4)
import requests

url = "https://api.megaport.com/v4/pricebook/product/terms"

payload = {
    "currency": "AUD",
    "locationId": 123,
    "mveLabel": "MVE 16/64",
    "productType": "MVE",
    "productUid": "8afe49da-e936-4e2d-a1dd-03e2c6525108",
    "size": "large",
    "term": 12,
    "vendor": "cisco"
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript Get Product Price for Term Length (v4)
const url = 'https://api.megaport.com/v4/pricebook/product/terms';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: '{"currency":"AUD","locationId":123,"mveLabel":"MVE 16/64","productType":"MVE","productUid":"8afe49da-e936-4e2d-a1dd-03e2c6525108","size":"large","term":12,"vendor":"cisco"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Get Product Price for Term Length (v4)
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/v4/pricebook/product/terms"

	payload := strings.NewReader("{\n  \"currency\": \"AUD\",\n  \"locationId\": 123,\n  \"mveLabel\": \"MVE 16/64\",\n  \"productType\": \"MVE\",\n  \"productUid\": \"8afe49da-e936-4e2d-a1dd-03e2c6525108\",\n  \"size\": \"large\",\n  \"term\": 12,\n  \"vendor\": \"cisco\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Get Product Price for Term Length (v4)
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/v4/pricebook/product/terms")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"currency\": \"AUD\",\n  \"locationId\": 123,\n  \"mveLabel\": \"MVE 16/64\",\n  \"productType\": \"MVE\",\n  \"productUid\": \"8afe49da-e936-4e2d-a1dd-03e2c6525108\",\n  \"size\": \"large\",\n  \"term\": 12,\n  \"vendor\": \"cisco\"\n}"

response = http.request(request)
puts response.read_body
```

```java Get Product Price for Term Length (v4)
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.megaport.com/v4/pricebook/product/terms")
  .header("Content-Type", "application/json")
  .body("{\n  \"currency\": \"AUD\",\n  \"locationId\": 123,\n  \"mveLabel\": \"MVE 16/64\",\n  \"productType\": \"MVE\",\n  \"productUid\": \"8afe49da-e936-4e2d-a1dd-03e2c6525108\",\n  \"size\": \"large\",\n  \"term\": 12,\n  \"vendor\": \"cisco\"\n}")
  .asString();
```

```php Get Product Price for Term Length (v4)
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.megaport.com/v4/pricebook/product/terms', [
  'body' => '{
  "currency": "AUD",
  "locationId": 123,
  "mveLabel": "MVE 16/64",
  "productType": "MVE",
  "productUid": "8afe49da-e936-4e2d-a1dd-03e2c6525108",
  "size": "large",
  "term": 12,
  "vendor": "cisco"
}',
  'headers' => [
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp Get Product Price for Term Length (v4)
using RestSharp;

var client = new RestClient("https://api.megaport.com/v4/pricebook/product/terms");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"currency\": \"AUD\",\n  \"locationId\": 123,\n  \"mveLabel\": \"MVE 16/64\",\n  \"productType\": \"MVE\",\n  \"productUid\": \"8afe49da-e936-4e2d-a1dd-03e2c6525108\",\n  \"size\": \"large\",\n  \"term\": 12,\n  \"vendor\": \"cisco\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Get Product Price for Term Length (v4)
import Foundation

let headers = ["Content-Type": "application/json"]
let parameters = [
  "currency": "AUD",
  "locationId": 123,
  "mveLabel": "MVE 16/64",
  "productType": "MVE",
  "productUid": "8afe49da-e936-4e2d-a1dd-03e2c6525108",
  "size": "large",
  "term": 12,
  "vendor": "cisco"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/v4/pricebook/product/terms")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```