In this how-to, we will show you how to easily create five virtual servers and a private network using your API. We will demonstrate how to create two virtual servers for the public-facing load balancers and three virtual servers for the database cluster.
The database cluster nodes are connected only to the private network and are not externally reachable. The load balancers will have two network interfaces: one connected to the public network and the other to your private network.
Before you begin, check the system requirements and the resources you will need. You can also review the pricing details for the virtual servers and private networks. Be sure to record the IDs of the servers and networks you plan to use — you’ll need them later to confirm which datacenters support them.
GET /v1/prices/server_virtual
curl -X GET https://api.ip6.cloud/v1/prices/server_virtual \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY"
[{"id":81,"category":"server_virtual","duration":30,"group":"","name":"starter","create":"5.00000","renew":"5.00000","data":{"cpu":1,"ram":1,"dsk":10,"bwt":1000,"trf":500,"tns":100,"ip4":1,"ip6":1}},{"id":84,"category":"server_virtual","duration":30,"group":"","name":"business","create":"10.00000","renew":"100.00000","data":{"cpu":4,"ram":8,"dsk":30,"bwt":1000,"trf":4000,"tns":100,"ip4":1,"ip6":1}},{"id":103,"category":"server_virtual","duration":30,"group":"","name":"network_private","create":"5.00000","renew":"2.00000","data":{"vlan":true}}]
Use the following command to list all available datacenters. Choose a datacenter that supports the article IDs you noted in the previous step. Make sure to write down the datacenter ID — you’ll need it later.
GET /v1/datacenters
curl -X GET https://api.ip6.cloud/v1/datacenters \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY"
[{"id":1,"country":"CH","description":"Lupfig","name":"LUP","articles":"[81,82,83,84,103]"},{"id":5,"country":"US","description":"Fremont","name":"FRE","articles":"[81,82,83,84,103]"},{"id":6,"country":"DE","description":"Rottweil","name":"ROT","articles":"[81,82,83,84,103]"}]
Creating a private network is optional, but we recommend it for security reasons. It allows you to isolate your databases and private data from the internet, adding an extra layer of protection to your project.
To create a private network, you only need the datacenter ID where you want the network to be created. We ensure that the network will be reachable by all hosts within the same datacenter. You can use any IPv4 or IPv6 addresses you prefer inside this private network.
curl -X POST https://api.ip6.cloud/v1/server/virtual/network/$datacenter_id \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" -d '{"name":"dbcluster","desc":"internal network for db-cluster"}'
Parameter | Description | Required |
---|---|---|
$datacenter_id | ID of datacenter | |
$name | A name for your network | |
$desc | Descriptive label for the network |
{"id":"dvportgroup-12345","name":"dbcluster","desc":"internal network for db-cluster","vlan":123}
Before setting up your virtual servers, you need to choose an operating system. In this guide, we will use Debian 12, but you can select any other OS that best fits your use case or requirements.
curl -X GET https://api.ip6.cloud/v1/server/virtual/operating_systems/$datacenter_id \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY"
[{"id":"e2bc004f-9abe-4798-b9ca-90d6977b2afc","modified":"2025-09-13T12:45:38.704Z","name":"debian_12_bookworm","type":"vm-template","version":"1"}]
We will create 2 public-facing servers (web) attached to public-
and private-
network, and 3 DB servers attached only to private-
network.
This example creates a server with two NICs: one on public network and one on private.
curl -X POST https://api.ip6.cloud/v1/server/virtual \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"article": 82,
"datacenter": 5,
"ipv4": true,
"ipv6": true,
"name": "de-lb1",
"network": ["dvportgroup-11", "dvportgroup-12"],
"os": "e2bc004f-9abe-4798-b9ca-90d6977b2afc"
}'
Parameter | Description | Required |
---|---|---|
$article | ID of article | |
$datacenter | ID of datacenter | |
$os | ID of OS | |
$name | A name for your vps | |
$ipv4 | Enable public ipv4-address | |
$ipv6 | Enable public ipv6-address | |
$network | Array of network IDs |
Repeat and increment name (de-lb2)
{"message":"This task is being processed in the background.","status":"accepted","task_id":"123"}
Create DB Server (repeat for 3 instances)
curl -X POST https://api.ip6.cloud/v1/server/virtual \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"article": 83,
"datacenter": 5,
"ipv4": false,
"ipv6": false,
"name": "de-db1",
"network": ["dvportgroup-11", "dvportgroup-12"],
"os": "e2bc004f-9abe-4798-b9ca-90d6977b2afc"
}'
Parameter | Description | Required |
---|---|---|
$article | ID of article | |
$datacenter | ID of datacenter | |
$os | ID of OS | |
$name | A name for your vps | |
$ipv4 | Enable public ipv4-address | |
$ipv6 | Enable public ipv6-address | |
$network | Array of network IDs |
Repeat and increment name (de-db2)
{"message":"This task is being processed in the background.","status":"accepted","task_id":"124"}