# Network › vRack › Public IP connectivity › Public bandwidth API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Network product's sections: https://developers.eu.ovhcloud.com/reference/network/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 2 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/network/vrack/public-ip-connectivity/public-bandwidth/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/network/vrack/public-ip-connectivity/public-bandwidth.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/network/vrack/public-ip-connectivity/public-bandwidth.json?format=openapi3

## Operations

- `GET /vrack/publicRoutingRegion` — List regions
- `GET /vrack/{serviceName}/publicRoutingBandwidthLimit` — List bandwidth limits

## List regions

`GET /1.0/vrack/publicRoutingRegion`

Link: https://developers.eu.ovhcloud.com/reference/network/vrack/public-ip-connectivity/public-bandwidth/#get-vrack-publicroutingregion

**Status:** Stable production version

List regions. Returns the regions where an Additional IP block can be announced from a vRack, with the number of availability zones and the default public bandwidth of each.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `region` | query | string |  | Filter by region name |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vrack.PublicRoutingRegion[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `defaultBandwidthLimit` | integer |  | Default bandwidth limit for blocks in your vRack (in Mbps) |
| `publicRoutingType` | vrack.PublicRoutingType |  | Type of public routing in the region. It indicates how many availability zones (one or three) can be configured to route blocks in this region. PublicRoutingPriority can be defined only on type PUBLIC-ROUTING-3-AZ. — one of `PUBLIC-ROUTING-1-AZ`, `PUBLIC-ROUTING-3-AZ` |
| `region` | string |  | Region name |

```json
[
  {
    "defaultBandwidthLimit": 0,
    "publicRoutingType": "PUBLIC-ROUTING-1-AZ",
    "region": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/vrack/publicRoutingRegion" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/vrack/publicRoutingRegion")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/vrack/publicRoutingRegion");

print_r($result);
?>
```

## List bandwidth limits

`GET /1.0/vrack/{serviceName}/publicRoutingBandwidthLimit`

Link: https://developers.eu.ovhcloud.com/reference/network/vrack/public-ip-connectivity/public-bandwidth/#get-vrack-servicename-publicroutingbandwidthlimit

**Status:** Stable production version  
**IAM actions:** `vrack:apiovh:publicRoutingBandwidthLimit/get`

List bandwidth limits. Returns, per region, the public bandwidth limit in Mbps of the Additional IP blocks routed in the vRack, and whether it is the default or an upgraded one.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `region` | query | string |  | Filter by region name |
| `serviceName` | path | string | yes | The internal name of your vrack |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vrack.PublicRoutingBandwidthLimit[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `bandwidthLimit` | integer |  | Bandwidth limit for blocks in your vRack (in Mbps) |
| `bandwidthLimitType` | vrack.PublicRoutingBandwidthLimitTypeEnum |  | Public routing bandwidth limit type — one of `default`, `upgraded` |
| `region` | string |  | Region name |

```json
[
  {
    "bandwidthLimit": 0,
    "bandwidthLimitType": "default",
    "region": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/vrack/{serviceName}/publicRoutingBandwidthLimit" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/vrack/{serviceName}/publicRoutingBandwidthLimit")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/vrack/{serviceName}/publicRoutingBandwidthLimit");

print_r($result);
?>
```
