This article provides a guide for a VPS Reseller user to create VM via API.
Use Create VM API to create new VPS on your server.
This function is for cloud user.
HTTP Request
https://vm1.apivps.com:4083/index.php?act=create
Parameters
| Parameters | Type | Value | Description |
|---|---|---|---|
| act | GET | create | The action will create VPS instance for a particular user. |
| virt | POST | virt | The virtualization to be specified relevant to which the VPS will be created. |
| sgid | POST | Int | The server group where the VPS will created and assigned. |
| rootpass | POST | rootpass | The root password that will be set for the VPS.. |
| hostname | POST | hostname | Hostname for the VPS will be set. |
| space | POST | Int | This will set the disk space for the VPS. Also it will assign the disk space comparing with the space the individual user has declared. |
| ram | POST | Int | This will set the RAM for the VPS. Also it will assign the RAM comparing with the RAM the individual user has declared. |
| swapram | POST | Int | This will use the disk space to create swap. |
| bandwidth | POST | Int | This will assign the bandwidth to the VPS and will also check available bandwidth that is assigned to the user. |
| uid | POST | Int | The user id under whom the VPS will be created. |
| cores | POST | Int | Number of CPU cores that will be used by the VPS. Assigned at the time of creation. |
| ips | POST | Int | Number of ipv4 addresses that will be assigned to the VPS. |
| ips_int | POST | Int | Number of internal IP addresses that will be assigned to the VPS. |
| ipv6 | POST | Int | Number of IPv6 addresses that will be assigned to the VPS. |
| ipv6_subnet | POST | Int | Number of IPv6 subnet that will be assigned to the VPS. |
| vnc | POST | 1/0 | If set then VNC will be set for the VPS. |
| vncpass | POST | vncpass | VNC password will be set automatically. |
| iso | POST | iso | Create VPS using iso present on the server. |
| boot | POST | boot | Sets the boot order in the VPS. |
| band_suspend | POST | 1/0 | If set then VPS will be suspended if the bandwidth limit is exceeded. |
| osreinstall_limit | POST | Int | This sets the value for limit for OS reinstallation. |
| osid | POST | Int | This will assign the osid to the VPS for installing OS template. |
| mg | POST | mg | IF this is set then the OS template belonging to the media group will be displayed. |
| nic | POST | string | Provide Virtual Network Interface Type. |
| ssh_options | POST | Int | Provide one of these ssh_options: add_ssh_keys, generate_keys, use_ssh_keys, we have provided detailed information about these options below. |
| sshkey | POST | Int | Provide public SSH key. |
| private_key | POST | Int | Provide private key (compulsory if generate_keys is passed in ssh_options). |
| existing_key | POST | array | Provide an array of public key (compulsory if use_ssh_keys is passed in ssh_options). |
| bios | POST | String | Provide bios seabios/uefi (Default is seabios) will be applied only while booting with iso.(KVM ONLY). |
| addvs | POST | 1 | If set then the VPS will be created. |
SSH Options
There are three types of ssh_options which are described below:
- add_ssh_keys: Pass your own public SSH key in post to add that SSH key in your VPS.
- generate_keys: If you want to create new pair of keys then you will first need to generate using the following link: https://radwebhosting.com/client_area/knowledgebase/348/Add-SSH-Key.html Once you have made the pair you will need to pass it to the ADDVS calls using following variables : $post[sshkey'] = 'PUBLIC_KEY'; $post['private_key '] = 'PRIVATE_KEY';
- use_ssh_keys :If you want to use existing key then first you will need to get list of sshkey using the following link: https://radwebhosting.com/client_area/knowledgebase/349/List-SSH-Keys.html Once you have made the pair you will need to pass it to the ADDVS calls using following variables: $post[existing_key'][] = 'PUBLIC_KEY 1'; $post['existing_key '][] = 'PUBLIC_KEY 2';
Sample Code
PHP
<?php
require_once('/usr/local/virtualizor/sdk/enduser.php');
$key = 'your_api_key';
$pass = 'your_api_pass';
$ip = 'host_ip';
$admin = new Virtualizor_Enduser_API($ip, $key, $pass);
$post = array();
$post['virt'] = 'kvm';
$post['sgid'] = 12;
$post['rootpass'] ='Test123!!';
$post['hostname'] = 'testcloud' ;
$post['space'] = 20 ;
$post['ram'] = 1024;
$post['swapram'] = 1024;
$post['bandwidth'] = 1000;
$post['uid'] = 372;
$post['cores'] = 2;
$post['ips'] = 1;
$post['vnc'] = 1;
$post['vncpass'] = 'testvnc';
$post['band_suspend'] = 1;
$post['osreinstall_limit'] = 0;
$post['osid'] = 955;
$post['addvs'] = 1;
$output = $admin->create($post);
print_r(json_encode($output));
?>
Curl
curl -k -X POST -d "addvs=1&virt=kvm&sgid=12&rootpass=Test123!!&hostname=testcloud&space=20&ram=1024&swap=1024&bandwidth=1000&uid=372&cpu=256&cores=8&ips=1&vnc=1&vncpass=testvnc&osid=955" -L "https://vm1.apivps.com:4083/index.php?act=create&api=json&apikey=your_api_key&apipass=your_api_pass"
Output
{
"uid": "372",
"act": "create",
"timezone": 1,
"timenow": "June 6, 2023, 2:09 am",
"vpsid": "9999",
"username": "test@test.com",
"user_type": "2",
"preferences": {
"fname": "test",
"lname": "test",
"theme": "default",
"language": "english",
"timezone": 1
},
"url": "index.php?",
"rdns": {
"pdnsid": "12"
},
"pdns": {
"pdnsid": "12"
},
"support_link": "http://radwebhosting.com",
"disable_login_logo": 1,
"title": "Launch Instance",
"resources": {
"num_vs": 99999,
"num_users": 15,
"space": 20,
"ram": 1024,
"burst": 1024,
"bandwidth": 1000,
"num_ipv4": 5,
"num_ipv6_subnet": 1,
"num_ipv6": "1",
"cores": "8",
"num_cores": "9996",
"network_speed": "128000",
"upload_speed": "128000",
"allowed_virts": {
"kvm": "kvm"
},
"cloud_allow_virtio": 1
},
"usage": {
"num_cores": "4"
},
"users": {
"372": {
"uid": "372",
"email": "test@test.com"
}
},
"ostemplates": {
"955": {
"osid": "955",
"type": "kvm",
"name": "centos-7.8-x86_64",
"filename": "centos-7.8-x86_64.img",
"size": "1560281088",
"pygrub": "0",
"drive": "",
"hvm": "0",
"perf_ops": "1",
"active": "1",
"url": "http://files.virtualizor.com/ostemplates.php?osid=955",
"distro": "centos",
"Nvirt": "kvm"
},
"943": {
"osid": "943",
"type": "kvm",
"name": "centos-8.2-x86_64",
"filename": "centos-8.2-x86_64.img",
"size": "2000683008",
"pygrub": "0",
"drive": "",
"hvm": "0",
"perf_ops": "1",
"active": "1",
"url": "http://files.virtualizor.com/ostemplates.php?osid=943",
"distro": "centos",
"Nvirt": "kvm",
"mg": [16]
},
"878": {
"osid": "878",
"type": "kvm",
"name": "debian-10-x86_64",
"filename": "debian-10-x86_64.img",
"size": "2738880512",
"pygrub": "0",
"drive": "",
"hvm": "0",
"perf_ops": "1",
"active": "1",
"url": "http://files.virtualizor.com/ostemplates.php?osid=878",
"distro": "debian",
"Nvirt": "kvm"
},
"979": {
"osid": "979",
"type": "kvm",
"name": "debian-11-x86_64",
"filename": "debian-11-x86_64.img",
"size": "2202009600",
"pygrub": "0",
"drive": "",
"hvm": "0",
"perf_ops": "1",
"active": "1",
"url": "http://files.virtualizor.com/ostemplates.php?osid=979",
"distro": "debian",
"Nvirt": "kvm"
},
"812": {
"osid": "812",
"type": "kvm",
"name": "ubuntu-18.04-x86_64",
"filename": "ubuntu-18.04-x86_64.img",
"size": "1732247552",
"pygrub": "0",
"drive": "",
"hvm": "0",
"perf_ops": "1",
"active": "1",
"url": "http://files.virtualizor.com/ostemplates.php?osid=812",
"distro": "ubuntu",
"Nvirt": "kvm"
},
},
"isos": {
" debian-9.4.0-amd64-netinst.iso": {
"iso": "debian-9.4.0-amd64-netinst.iso",
"mg": [17],
"name": "debian-9.4.0-amd64-netinst.iso",
"filename": "debian-9.4.0-amd64-netinst.iso",
"size": 305135616,
"distro": "debian"
},
"Windows_2022_SERVER_EVAL_x64.iso": {
"iso": "Windows_2022_SERVER_EVAL_x64.iso",
"mg": "",
"name": "Windows_2022_SERVER_EVAL_x64.iso",
"filename": "Windows_2022_SERVER_EVAL_x64.iso",
"size": 5043650560,
"distro": "windows"
},
},
"servergroups": [{
"sgid": 0,
"sg_name": "test",
"sg_reseller_name": "USA",
"sg_desc": "This is just desc",
"sg_select": 0,
"virts": {
"kvm": "kvm"
}
}],
"done": {
"done": "9999",
"msg": "The Virtual Server has been created",
"goto": "act=listvs"
},
"done_msg": "The Virtual Server has been created",
"newvs": {
"type": "kvm",
"sgid": 12,
"rootpass": "test123",
"hostname": "testcloud",
"space": 20,
"ram": 1024,
"burst": 0,
"swapram": 1024,
"bandwidth": 1000,
"uid": 372,
"cores": 8,
"num_ipv4": 5,
"num_ipv6": 1,
"num_ipv6_subnet": 1,
"vnc": 1,
"vncpass": "vncpass",
"shadow": 0,
"iso": "",
"boot": "cda",
"band_suspend": 1,
"tuntap": 0,
"osreinstall_limit": 0,
"mg": "",
"osid": 955,
"virtio": 1,
"node_select": 1,
"server_group": 8,
"num_ips": 5,
"num_ips6": 1,
"num_ips6_subnet": 1,
"addvps": 1,
"vpsid": "9999",
"ips": ["10.10.100.6"],
"ips6": [],
"ipv6_subnet": []
},
"res_limit": {
"num_vs": "100000",
"num_users": "15",
"space": "50",
"ram": "2048",
"bandwidth": "1000000",
"num_ipv4": "50",
"num_ipv6_subnet": "15",
"num_ipv6": "15",
"num_cores": "10000",
"cores": "8"
},
"virts": {
"kvm": "kvm",
},
"virt_lang": {
"kvm": "KVM",
},
"time_taken": "3.119"
}
Conclusion
You now know how to create VM as a VPS Reseller.

👀 Choose SSD-powered VPS servers for increased speed, power, and security! Now 50% off- starting from only $3.19/mo.