Elastic Metal Private Network API


VPC is a set of products and features allowing you to build your own virtual private cloud on top of Scaleway's shared public cloud. It includes Private Networks, enabling resources to be interconnected through a dedicated, private, and flexible L2 network.

You can add as many servers to your networks as you want and add up to eight (8) different networks per server, taking the form of additional network interfaces inside your server (VLANs). This service allows you to run services isolated from the public internet and expose them to the rest of your infrastructure without worrying about public network filtering. Servers can be plugged and unplugged from a network at will, even when the server is running: the network interface will be hot-plugged to the server, and software can be configured to set it up as soon as it appears automatically.

Technical limitations

  • need to configure manually a VLAN on the BMaaS interface
  • Bandwidth is limited to 1Gbps inside the private network
  • Up to 8 private networks per server
  • Broadcast and Multicast traffic, while supported, are rate-limited



You need to have an HTTP client such as curl to use Scaleway's API. It is also a good idea to have jq which will help you read and parse JSON output. Make sure you have these two tools before you begin. Otherwise use your package manager to install them.

To call Scaleway's API, you need an X-Auth-Token. If you don't have one yet, refer to our doc about generating API keys.

Next, you will need your Project ID to create VPC resources in. If you don't have it, refer to our doc about creating a Project.

Finally, you will need to chose the Availability Zone in which to create your Private Network. Keep in mind that Private Networks are per zone and not per region, thus you will only be able to connect servers to networks from the same Availability Zone.

export SECRET_KEY="<Your secret key>"
export PROJECT_ID="<Your Project ID>"
export ZONE="<Chosen zone (fr-par-1/nl-ams-1)>"

Creating a Private Network

See our online documentation

Adding a server to the Private Network

curl -s -H "Content-Type: application/json" -H "X-Auth-Token: $SECRET_KEY" \
https://api.scaleway.com/baremetal/v1/zones/$ZONE/servers/$SRV_ID/private-networks \
-d '{"private_network_id": "'$PN_ID'"}'

Keep the vlan field from the response. It is your VLAN ID, and will be used to configure the server to handle traffic from and to the private network:

sudo ip link add link eno1 name eno1.$VLAN type vlan id $VLAN
sudo ip link set eno1.$VLAN up
sudo ip addr add dev eno1.$VLAN

Private Networks

A Private Network allows you to interconnect your resources (servers, instances, ...) in an isolated and private network. The network reachability is limited to the resources that are on the same Private Network . A VLAN interface is available on the server and can be freely managed (adding IP addresses, shutdown interface...).

Note that a resource can be a part of multiple Private Networks.