Overview
- API Endpoint: https://api.vultr.com/
- API Key: Available in Members Area
| HTTP Response Code | Description |
|---|---|
| 200 | Function successfully executed. |
| 400 | Invalid API location. Check the URL that you are using. |
| 403 | Invalid or missing API key. Check that your API key is present and matches your assigned key. |
| 405 | Invalid HTTP method. Check that the method (POST|GET) matches what the documentation indicates. |
| 412 | Request failed. Check the response body for a more detailed description. |
| 500 | Internal server error. Try again at a later time. |
| 503 | Rate limit hit. API requests are limited to an average of 2/s. Try your request again later. |
Authentication
For any API request that requires authentication, you would need to send the 'API-Key: YOURKEY' HTTP header. See the cURL examples below for more information on how to do this.Examples
cURL
GET request with no arguments.
curl "https://api.vultr.com/v1/os/list"
GET request that requires your API key.
curl -H 'API-Key: APIKEY' "https://api.vultr.com/v1/server/list"
GET request with additional parameters.
curl -H 'API-Key: APIKEY' -G --data "SUBID=12345" "https://api.vultr.com/v1/server/list"
POST request that requires your API key.
curl -H 'API-Key: APIKEY' --data "SUBID=12345" "https://api.vultr.com/v1/server/start"
POST request with additional parameters.
curl -H 'API-Key: APIKEY' --data "SUBID=12345" --data-urlencode 'label=my server!' "https://api.vultr.com/v1/server/label_set"
Account
/v1/account/info
Retrieve information about the current account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | billing |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/account/info
Example Response:
{
"balance": "-5519.11",
"pending_charges": "57.03",
"last_payment_date": "2014-07-18 15:31:01",
"last_payment_amount": "-1.00"
}
Parameters:
No parameters.
Application
/v1/app/list
Retrieve a list of available applications. These refer to applications that can be launched when creating a Vultr VPS.
| API Key Required: | No |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/app/list
Example Response:
{
"1": {
"APPID": "1",
"name": "LEMP",
"short_name": "lemp",
"deploy_name": "LEMP on CentOS 6 x64",
"surcharge": 0.00
},
"2": {
"APPID": "2",
"name": "WordPress",
"short_name": "wordpress",
"deploy_name": "WordPress on CentOS 6 x64",
"surcharge": 0.00
}
}
Parameters:
No parameters.
API Key
/v1/auth/info
Retrieve information about the current API key.
| API Key Required: | Yes |
| Request Type: | GET |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/auth/info
Example Response:
{
"acls": [
"subscriptions",
"billing",
"support",
"provisioning"
],
"email": "[email protected]",
"name": "Example Account"
}
Parameters:
No parameters.
Backup
/v1/backup/list
List all backups on the current account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/backup/list
Example Response:
{
"543d34149403a": {
"BACKUPID": "543d34149403a",
"date_created": "2014-10-14 12:40:40",
"description": "Automatic server backup",
"size": "42949672960",
"status": "complete"
},
"543d340f6dbce": {
"BACKUPID": "543d340f6dbce",
"date_created": "2014-10-13 16:11:46",
"description": "",
"size": "10000000",
"status": "complete"
}
}
Parameters:
SUBID integer (optional) Filter result set to only contain backups of this subscription object.
BACKUPID string (optional) Filter result set to only contain this backup.
Block Storage
/v1/block/attach
Attach a block storage subscription to a VPS subscription. The block storage volume must not be attached to any other VPS subscriptions for this to work.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/block/attach --data 'SUBID=1313217' --data 'attach_to_SUBID=1313207'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer ID of the block storage subscription to attach
attach_to_SUBID integer ID of the VPS subscription to mount the block storage subscription to
/v1/block/create
Create a block storage subscription.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | provisioning |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/block/create --data 'DCID=1' --data 'size_gb=50' --data 'label=test'
Example Response:
{
"USERID": "564a1a88947b4",
"api_key":"AAAAAAAA"
}
Parameters:
DCID integer DCID of the location to create this subscription in. See /v1/regions/list
size_gb integer Size (in GB) of this subscription.
label string (optional) Text label that will be associated with the subscription
/v1/block/delete
Delete a block storage subscription. All data will be permanently lost. There is no going back from this call.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/block/delete --data 'SUBID=1313217'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer ID of the block storage subscription to delete
/v1/block/detach
Detach a block storage subscription from the currently attached instance.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/block/detach --data 'SUBID=1313217'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer ID of the block storage subscription to detach
/v1/block/label_set
Set the label of a block storage subscription.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/block/label_set --data 'SUBID=1313217' --data 'label=example'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer ID of the block storage subscription.
label string Text label that will be shown in the control panel.
/v1/block/list
Retrieve a list of any active block storage subscriptions on this account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/block/list
Example Response:
[
{
"SUBID": 1313216,
"date_created": "2016-03-29 10:10:04",
"cost_per_month": 10.00,
"status": "pending",
"size_gb": 100,
"DCID": 1,
"attached_to_SUBID": null,
"label": "files1"
},
{
"SUBID": 1313217,
"date_created": "2016-31-29 10:10:48",
"cost_per_month": 5.00,
"status": "active",
"size_gb": 50,
"DCID": 1,
"attached_to_SUBID": 1313207,
"label": "files2"
}
]
Parameters:
SUBID integer (optional) Unique identifier of a subscription. Only the subscription object will be returned.
/v1/block/resize
Resize the block storage volume to a new size.
WARNING: When shrinking the volume, you must manually shrink the filesystem and partitions beforehand, or you will lose data.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/block/resize --data 'SUBID=1313217' --data 'size_gb=75'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer ID of the block storage subscription to resize
size_gb integer New size (in GB) of the block storage subscription
DNS
/v1/dns/create_domain
Create a domain name in DNS.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | dns |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/dns/create_domain --data 'domain=example.com' --data 'serverip=127.0.0.1'
Example Response:
Parameters:
domain string Domain name to create
serverip string Server IP to use when creating default records (A and MX)
/v1/dns/create_record
Add a DNS record.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | dns |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/dns/create_record --data 'domain=example.com' --data 'name=vultr' --data 'type=A' --data 'data=192.0.2.1'
Example Response:
Parameters:
domain string Domain name to add record to
name string Name (subdomain) of record
type string Type (A, AAAA, MX, etc) of record
data string Data for this record
ttl integer (optional) TTL of this record
priority integer (only required for MX and SRV) Priority of this record (omit the priority from the data)
/v1/dns/delete_domain
Delete a domain name and all associated records.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | dns |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/dns/delete_domain --data 'domain=example.com'
Example Response:
No response, check HTTP result code.
Parameters:
domain string Domain name to delete
/v1/dns/delete_record
Delete an individual DNS record.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | dns |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/dns/delete_record --data 'domain=example.com' --data 'RECORDID=1265277'
Example Response:
Parameters:
domain string Domain name to delete record from
RECORDID integer ID of record to delete (see /dns/records)
/v1/dns/list
List all domains associated with the current account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | dns |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/dns/list
Example Response:
[
{
"domain": "example.com",
"date_created": "2014-12-11 16:20:59"
}
]
Parameters:
No parameters.
/v1/dns/records
List all the records associated with a particular domain.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | dns |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/dns/records?domain=example.com
Example Response:
[
{
"type": "A",
"name": "",
"data": "127.0.0.1",
"priority": 0,
"RECORDID": 1265276,
"ttl": 300
},
{
"type": "CNAME",
"name": "*",
"data": "example.com",
"priority": 0,
"RECORDID": 1265277,
"ttl": 300
}
]
Parameters:
domain string Domain to list records for
/v1/dns/update_record
Update a DNS record.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | dns |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/dns/update_record --data 'domain=example.com' --data 'RECORDID=1265277' --data 'name=vultr' --data 'type=A' --data 'data=127.0.0.1'
Example Response:
No response, check HTTP result code.
Parameters:
domain string Domain name to update record
RECORDID integer ID of record to update (see /dns/records)
name string (optional) Name (subdomain) of record
data string (optional) Data for this record
ttl integer (optional) TTL of this record
priority integer (optional) (only required for MX and SRV) Priority of this record (omit the priority from the data)
Firewall
/v1/firewall/group_create
Create a new firewall group on the current account.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | firewall |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/firewall/group_create --data 'description=group1'
Example Response:
{
"FIREWALLGROUPID": "1234abcd"
}
Parameters:
description string (optional) Description of firewall group.
/v1/firewall/group_delete
Delete a firewall group. Use this function with caution because the firewall group being deleted will be detached from all servers. This can result in open ports accessible to the internet.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | firewall |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/firewall/group_delete --data 'FIREWALLGROUPID=1234abcd'
Example Response:
No response, check HTTP result code.
Parameters:
FIREWALLGROUPID string Firewall group to delete.
/v1/firewall/group_list
List all firewall groups on the current account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | firewall |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/firewall/group_list
Example Response:
{
"1234abcd": {
"FIREWALLGROUPID": "1234abcd",
"description": "my http firewall",
"date_created": "2017-02-14 17:48:40",
"date_modified": "2017-02-14 17:48:40",
"instance_count": 2,
"rule_count": 2,
"max_rule_count": 50
}
}
Parameters:
FIREWALLGROUPID string (optional) Filter result set to only contain this firewall group.
/v1/firewall/group_set_description
Change the description on a firewall group.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | firewall |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/firewall/group_set_description --data 'FIREWALLGROUPID=1234abcd' --data 'description=group2'
Example Response:
No response, check HTTP result code.
Parameters:
FIREWALLGROUPID string Firewall group to update.
description string Description of firewall group.
/v1/firewall/rule_create
Create a rule in a firewall group.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | firewall |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/firewall/rule_create --data 'FIREWALLGROUPID=1234abcd' --data 'direction=in' --data 'ip_type=v4' --data 'protocol=tcp' --data 'subnet=10.234.22.0' --data 'subnet_size=24' --data 'port=80'
Example Response:
{
"rulenumber": 2
}
Parameters:
FIREWALLGROUPID string Target firewall group. See /v1/firewall/group_list.
direction string Direction of rule. Possible values: "in".
ip_type string IP address type. Possible values: "v4", "v6".
protocol string Protocol type. Possible values: "icmp", "tcp", "udp", "gre".
subnet string IP address representing a subnet. The IP address format must match with the "ip_type" parameter value.
subnet_size integer IP prefix size in bits.
port string (optional) TCP/UDP only. This field can be an integer value specifying a port or a colon separated port range.
/v1/firewall/rule_delete
Delete a rule in a firewall group.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | firewall |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/firewall/rule_delete --data 'FIREWALLGROUPID=1234abcd' --data 'rulenumber=2'
Example Response:
No response, check HTTP result code.
Parameters:
FIREWALLGROUPID string Target firewall group. See /v1/firewall/group_list.
rulenumber integer Rule number to delete. See /v1/firewall/rule_list.
/v1/firewall/rule_list
List the rules in a firewall group.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | firewall |
Example Request:
curl -H 'API-Key: EXAMPLE' 'https://api.vultr.com/v1/firewall/rule_list?FIREWALLGROUPID=1234abcd&direction=in&ip_type=v4'
Example Response:
{
"1": {
"rulenumber": 1,
"action": "accept",
"protocol": "icmp",
"port": "",
"subnet": "",
"subnet_size": 0
},
"2": {
"rulenumber": 2,
"action": "accept",
"protocol": "tcp",
"port": "80",
"subnet": "10.234.22.0",
"subnet_size": 24
}
}
Parameters:
FIREWALLGROUPID string Target firewall group. See /v1/firewall/group_list.
direction string Direction of firewall rules. Possible values: "in".
ip_type string IP address type. Possible values: "v4", "v6".
ISO Image
/v1/iso/create_from_url
Create a new ISO image on the current account. The ISO image will be downloaded from a given URL. Download status can be checked with the v1/iso/list call.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/iso/create_from_url --data 'url=http://example.com/path/to/CentOS-6.5-x86_64-minimal.iso'
Example Response:
{
"ISOID": 24
}
Parameters:
url string Remote URL from where the ISO will be downloaded.
/v1/iso/list
List all ISOs currently available on this account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/iso/list
Example Response:
{
"24": {
"ISOID": 24,
"date_created": "2014-04-01 14:10:09",
"filename": "CentOS-6.5-x86_64-minimal.iso",
"size": 9342976,
"md5sum": "ec0669895a250f803e1709d0402fc411",
"status": "complete"
}
}
Parameters:
No parameters.
Operating System
/v1/os/list
Retrieve a list of available operating systems. If the "windows" flag is true, a Windows license will be included with the instance, which will increase the cost.
| API Key Required: | No |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/os/list
Example Response:
{
"127": {
"OSID": "127",
"name": "CentOS 6 x64",
"arch": "x64",
"family": "centos",
"windows": false
},
"148": {
"OSID": "148",
"name": "Ubuntu 12.04 i386",
"arch": "i386",
"family": "ubuntu",
"windows": false
}
}
Parameters:
No parameters.
Plans
/v1/plans/list
Retrieve a list of all active plans. Plans that are no longer available will not be shown.
The "windows" field is no longer in use, and will always be false. Windows licenses will be automatically added to any plan as necessary.
The "deprecated" field indicates that the plan will be going away in the future. New deployments of it will still be accepted, but you should begin to transition away from its usage. Typically, deprecated plans are available for 30 days after they are deprecated.
The sandbox ($2.50) plan is not available in the API.
| API Key Required: | Yes |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/plans/list?type=vc2
Example Response:
{
"1": {
"VPSPLANID": "1",
"name": "Starter",
"vcpu_count": "1",
"ram": "512",
"disk": "20",
"bandwidth": "1",
"price_per_month": "5.00",
"windows": false,
"plan_type": "SSD",
"available_locations": [
1,
2,
3
]
},
"2": {
"VPSPLANID": "2",
"name": "Basic",
"vcpu_count": "1",
"ram": "1024",
"disk": "30",
"bandwidth": "2",
"price_per_month": "8.00",
"windows": false,
"plan_type": "SATA",
"available_locations": [ ],
"deprecated": true
}
}
Parameters:
type string (optional) The type of plans to return. Possible values: "all", "vc2", "ssd", "vdc2", "dedicated".
/v1/plans/list_vc2
Retrieve a list of all active vc2 plans. Plans that are no longer available will not be shown.
The 'deprecated' field indicates that the plan will be going away in the future. New deployments of it will still be accepted, but you should begin to transition away from its usage. Typically, deprecated plans are available for 30 days after they are deprecated.
Note: The sandbox ($2.50) plan is not available in the API.
| API Key Required: | Yes |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/plans/list_vc2
Example Response:
{
"1": {
"VPSPLANID": "1",
"name": "Starter",
"vcpu_count": "1",
"ram": "512",
"disk": "20",
"bandwidth": "1",
"price_per_month": "5.00",
"plan_type": "SSD"
}
}
Parameters:
No parameters.
/v1/plans/list_vdc2
Retrieve a list of all active vdc2 plans. Plans that are no longer available will not be shown.
The 'deprecated' field indicates that the plan will be going away in the future. New deployments of it will still be accepted, but you should begin to transition away from its usage. Typically, deprecated plans are available for 30 days after they are deprecated.
| API Key Required: | Yes |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/plans/list_vdc2
Example Response:
{
"115": {
"VPSPLANID": "115",
"name": "8192 MB RAM,110 GB SSD,10.00 TB BW",
"vcpu_count": "2",
"ram": "8192",
"disk": "110",
"bandwidth": "10.00",
"price_per_month": "60.00",
"plan_type": "DEDICATED"
}
}
Parameters:
No parameters.
Regions
/v1/regions/availability
Retrieve a list of the VPSPLANIDs currently available in this location.
If your account has special plans available, you will need to pass your API key in order to see them. For all other accounts, the API key is not required.
| API Key Required: | No |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/regions/availability?DCID=1
Example Response:
[40,11,45,29,41,61]
Parameters:
DCID integer Location to check availability.
type string (optional) The type of plans for which to include availability. Possible values: "all", "vc2", "ssd", "vdc2", "dedicated".
/v1/regions/availability_vc2
Retrieve a list of the vc2 VPSPLANIDs currently available in this location.
If your account has special plans available, you will need to pass your API key in order to see them. For all other accounts, the API key is not required.
| API Key Required: | No |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/regions/availability_vc2?DCID=1
Example Response:
[40,11,45,29,41,61]
Parameters:
DCID integer Location to check availability.
/v1/regions/availability_vdc2
Retrieve a list of the vdc2 VPSPLANIDs currently available in this location.
If your account has special plans available, you will need to pass your API key in order to see them. For all other accounts, the API key is not required.
| API Key Required: | No |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/regions/availability_vdc2?DCID=1
Example Response:
[40,11,45,29,41,61]
Parameters:
DCID integer Location to check availability.
/v1/regions/list
Retrieve a list of all active regions. Note that just because a region is listed here, does not mean that there is room for new servers.
| API Key Required: | No |
| Request Type: | GET |
Example Request:
curl https://api.vultr.com/v1/regions/list
Example Response:
{
"1": {
"DCID": "1",
"name": "New Jersey",
"country": "US",
"continent": "North America",
"state": "NJ",
"ddos_protection": true,
"block_storage": true,
"regioncode": "EWR"
},
"2": {
"DCID": "2",
"name": "Chicago",
"country": "US",
"continent": "North America",
"state": "IL",
"ddos_protection": false,
"block_storage": false,
"regioncode": "ORD"
}
}
Parameters:
availability string (optional) 'yes' or 'no'. If 'yes', include the current availability with each region entry.
Reserved IP
/v1/reservedip/attach
Attach a reserved IP to an existing subscription.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/reservedip/attach --data 'ip_address=2001:db8:8000::/64' --data 'attach_SUBID=5342543'
Example Response:
No response, check HTTP result code.
Parameters:
ip_address string Reserved IP to attach to your account (use the full subnet here)
attach_SUBID integer Unique indentifier of the server to attach the reserved IP to
/v1/reservedip/convert
Convert an existing IP on a subscription to a reserved IP. Returns the SUBID of the newly created reserved IP.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/reservedip/convert --data 'SUBID=5342543' --data 'ip_address=2001:db8:8000:/64'
Example Response:
{
"SUBID": 365352
}
Parameters:
SUBID integer SUBID of the server that currently has the IP address you want to convert
ip_address string IP address you want to convert (v4 must be a /32, v6 must be a /64)
label string (optional) Label for this reserved IP
/v1/reservedip/create
Create a new reserved IP. Reserved IPs can only be used within the same datacenter for which they were created.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/reservedip/create --data 'DCID=1' --data 'ip_type=v4'
Example Response:
{
"SUBID": 1312965
}
Parameters:
DCID integer Location to create this reserved IP in. See v1/regions/list
ip_type string 'v4' or 'v6' Type of reserved IP to create
label string (optional) Label for this reserved IP
/v1/reservedip/destroy
Remove a reserved IP from your account. After making this call, you will not be able to recover the IP address.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/reservedip/destroy --data 'ip_address=2001:db8:8000::/64'
Example Response:
No response, check HTTP result code.
Parameters:
ip_address string Reserved IP to remove from your account.
/v1/reservedip/detach
Detach a reserved IP from an existing subscription.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/reservedip/detach --data 'ip_address=2001:db8:8000::/64' --data 'detach_SUBID=5342543'
Example Response:
No response, check HTTP result code.
Parameters:
ip_address string Reserved IP to attach to your account (use the full subnet here)
detach_SUBID integer Unique identifier of the server to detach the reserved IP from
/v1/reservedip/list
List all the active reserved IPs on this account. The "subnet_size" field is the size of the network assigned to this subscription. This will typically be a /64 for IPv6, or a /32 for IPv4.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/reservedip/list
Example Response:
{
"1313044": {
"SUBID": 1313044,
"DCID": 1,
"ip_type": "v4",
"subnet": "10.234.22.53",
"subnet_size": 32,
"label": "my first reserved ip",
"attached_SUBID": 123456
},
"1313045": {
"SUBID": 1313045,
"DCID": 1,
"ip_type": "v6",
"subnet": "2001:db8:9999::",
"subnet_size": 64,
"label": "",
"attached_SUBID": false
}
}
Parameters:
No parameters.
Server
/v1/server/app_change
Changes the virtual machine to a different application. All data will be permanently lost.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/app_change --data 'SUBID=596965' --data 'APPID=2'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
APPID integer Application to use. See /v1/server/app_change_list.
/v1/server/app_change_list
Retrieves a list of applications to which a virtual machine can be changed. Always check against this list before trying to switch applications because it is not possible to switch between every application combination.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/app_change_list?SUBID=576965
Example Response:
{
"1": {
"APPID": "1",
"name": "LEMP",
"short_name": "lemp",
"deploy_name": "LEMP on CentOS 6 x64",
"surcharge": 0.00
},
"2": {
"APPID": "2",
"name": "WordPress",
"short_name": "wordpress",
"deploy_name": "WordPress on CentOS 6 x64",
"surcharge": 0.00
}
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/backup_disable
Disables automatic backups on a server. Once disabled, backups can only be enabled again by customer support.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/backup_disable --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/backup_enable
Enables automatic backups on a server.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | upgrade |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/backup_enable --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/backup_get_schedule
Retrieves the backup schedule for a server. All time values are in UTC.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/backup_get_schedule --data 'SUBID=576965'
Example Response:
{
"enabled": true,
"cron_type": "weekly",
"next_scheduled_time_utc": "2016-05-07 08:00:00",
"hour": 8,
"dow": 6,
"dom": 0
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/backup_set_schedule
Sets the backup schedule for a server. All time values are in UTC.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/backup_set_schedule --data 'SUBID=576965' --data 'cron_type=weekly' --data 'hour=8' --data 'dow=6'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
cron_type string Backup cron type. Can be one of 'daily', 'weekly', 'monthly', 'daily_alt_even', or 'daily_alt_odd'.
hour integer (optional) Hour value (0-23). Applicable to crons: 'daily', 'weekly', 'monthly', 'daily_alt_even', 'daily_alt_odd'
dow integer (optional) Day-of-week value (0-6). Applicable to crons: 'weekly'.
dom integer (optional) Day-of-month value (1-28). Applicable to crons: 'monthly'.
/v1/server/bandwidth
Get the bandwidth used by a virtual machine.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/bandwidth?SUBID=576965
Example Response:
{
"incoming_bytes": [
[ "2014-06-10", "81072581" ],
[ "2014-06-11", "222387466" ],
[ "2014-06-12", "216885232" ],
[ "2014-06-13", "117262318" ]
],
"outgoing_bytes": [
[ "2014-06-10", "4059610" ],
[ "2014-06-11", "13432380" ],
[ "2014-06-12", "2455005" ],
[ "2014-06-13", "1106963" ]
]
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/create
Create a new virtual machine. You will start being billed for this immediately. The response only contains the SUBID for the new machine.
You should use v1/server/list to poll and wait for the machine to be created (as this does not happen instantly).
In order to create a server using a snapshot, use OSID 164 and specify a SNAPSHOTID. Similarly, to create a server using an ISO use OSID 159 and specify an ISOID.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | provisioning |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/create --data 'DCID=1' --data 'VPSPLANID=1' --data 'OSID=127'
Example Response:
{
"SUBID": "1312965"
}
Parameters:
DCID integer Location to create this virtual machine in. See v1/regions/list
VPSPLANID integer Plan to use when creating this virtual machine. See v1/plans/list
OSID integer Operating system to use. See v1/os/list
ipxe_chain_url string (optional) If you've selected the 'custom' operating system, this can be set to chainload the specified URL on bootup, via iPXE
ISOID string (optional) If you've selected the 'custom' operating system, this is the ID of a specific ISO to mount during the deployment
SCRIPTID integer (optional) If you've not selected a 'custom' operating system, this can be the SCRIPTID of a startup script to execute on boot. See v1/startupscript/list
SNAPSHOTID string (optional) If you've selected the 'snapshot' operating system, this should be the SNAPSHOTID (see v1/snapshot/list) to restore for the initial installation
enable_ipv6 string (optional) 'yes' or 'no'. If yes, an IPv6 subnet will be assigned to the machine (where available)
enable_private_network string (optional) 'yes' or 'no'. If yes, private networking support will be added to the new server.
label string (optional) This is a text label that will be shown in the control panel
SSHKEYID string (optional) List of SSH keys to apply to this server on install (only valid for Linux/FreeBSD). See v1/sshkey/list. Seperate keys with commas
auto_backups string (optional) 'yes' or 'no'. If yes, automatic backups will be enabled for this server (these have an extra charge associated with them)
APPID integer (optional) If launching an application (OSID 186), this is the APPID to launch. See v1/app/list.
userdata string (optional) Base64 encoded user-data
notify_activate string (optional, default 'yes') 'yes' or 'no'. If yes, an activation email will be sent when the server is ready.
ddos_protection (optional, default 'no') 'yes' or 'no'. If yes, DDOS protection will be enabled on the subscription (there is an additional charge for this)
reserved_ip_v4 string (optional) IP address of the floating IP to use as the main IP of this server
hostname string (optional) The hostname to assign to this server.
tag string (optional) The tag to assign to this server.
FIREWALLGROUPID string (optional) The firewall group to assign to this server. See /v1/firewall/group_list.
/v1/server/create_ipv4
Add a new IPv4 address to a server. You will start being billed for this immediately. The server will be rebooted unless you specify otherwise. You must reboot the server before the IPv4 address can be configured.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | upgrade |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/create_ipv4 --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
reboot string (optional, default 'yes') 'yes' or 'no'. If yes, the server is rebooted immediately.
/v1/server/destroy
Destroy (delete) a virtual machine. All data will be permanently lost, and the IP address will be released. There is no going back from this call.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/destroy --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/destroy_ipv4
Removes a secondary IPv4 address from a server. Your server will be hard-restarted. We suggest halting the machine gracefully before removing IPs.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/destroy_ipv4 --data 'SUBID=576965' --data 'ip=192.0.2.1'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
ip string IPv4 address to remove.
/v1/server/firewall_group_set
Set, change, or remove the firewall group currently applied to a server.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/firewall_group_set --data 'SUBID=576965' --data 'FIREWALLGROUPID=1234abcd'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. See v1/server/list.
FIREWALLGROUPID string The firewall group to apply to this server. A value of "0" means "no firewall group". See /v1/firewall/group_list.
/v1/server/get_app_info
Retrieves the application information for this subscription.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/get_app_info?SUBID=12345
Example Response:
{
"app_info": ""
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/get_user_data
Retrieves the (base64 encoded) user-data for this subscription.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/get_user_data?SUBID=12345
Example Response:
{
"userdata": "ZWNobyBIZWxsbyBXb3JsZA=="
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/halt
Halt a virtual machine. This is a hard power off (basically, unplugging the machine). The data on the machine will not be modified, and you will still be billed for the machine. To completely delete a machine, see v1/server/destroy.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/halt --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/ipv6_enable
Enables IPv6 networking on a server by assigning an IPv6 subnet to it. The server will be automatically rebooted to complete the request. No action occurs if IPv6 networking was already enabled. It is possible to check whether or not IPv6 networking has been enabled with v1/server/list_ipv6.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/ipv6_enable --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/iso_attach
Attach an ISO and reboot the server.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/iso_attach --data 'SUBID=576965' --data 'ISOID=24'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the /v1/server/list call.
ISOID integer The ISO that will be mounted. See the /v1/iso/list call.
/v1/server/iso_detach
Detach the currently mounted ISO and reboot the server.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/iso_detach --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the /v1/server/list call.
/v1/server/iso_status
Retrieve the current ISO state for a given subscription. The returned state may be one of: ready | isomounting | isomounted. ISOID will only be set when the mounted ISO exists in your library ( see /v1/iso/list ). Otherwise, it will read "0".
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/iso_status --data 'SUBID=576965'
Example Response:
{
"state": "ready",
"ISOID": "0"
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the /v1/server/list call.
/v1/server/label_set
Set the label of a virtual machine.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/label_set --data 'SUBID=576965' --data 'label=example'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
label string This is a text label that will be shown in the control panel.
/v1/server/list
List all active or pending virtual machines on the current account.
The "status" field represents the status of the subscription and will be one of: pending | active | suspended | closed. If the status is "active", you can check "power_status" to determine if the VPS is powered on or not. When status is "active", you may also use "server_state" for a more detailed status of: none | locked | installingbooting | isomounting | ok.
The API does not provide any way to determine if the initial installation has completed or not. The "v6_network", "v6_main_ip", and "v6_network_size" fields are deprecated in favor of "v6_networks".
If you need to filter the list, review the parameters for this function. Currently, only one filter at a time may be applied (SUBID, tag, label, main_ip).
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/list
Example Response:
{
"576965": {
"SUBID": "576965",
"os": "CentOS 6 x64",
"ram": "4096 MB",
"disk": "Virtual 60 GB",
"main_ip": "123.123.123.123",
"vcpu_count": "2",
"location": "New Jersey",
"DCID": "1",
"default_password": "nreqnusibni",
"date_created": "2013-12-19 14:45:41",
"pending_charges": "46.67",
"status": "active",
"cost_per_month": "10.05",
"current_bandwidth_gb": 131.512,
"allowed_bandwidth_gb": "1000",
"netmask_v4": "255.255.255.248",
"gateway_v4": "123.123.123.1",
"power_status": "running",
"server_state": "ok",
"VPSPLANID": "28",
"v6_network": "2001:DB8:1000::",
"v6_main_ip": "2001:DB8:1000::100",
"v6_network_size": "64",
"v6_networks": [{
"v6_network": "2001:DB8:1000::",
"v6_main_ip": "2001:DB8:1000::100",
"v6_network_size": "64"
}],
"label": "my new server",
"internal_ip": "10.99.0.10",
"kvm_url": "https:\/\/my.vultr.com\/subs\/novnc\/api.php?data=eawxFVZw2mXnhGUV",
"auto_backups": "yes",
"tag": "mytag",
"OSID": "127",
"APPID": "0",
"FIREWALLGROUPID": "0"
}
}
Parameters:
SUBID integer (optional) Unique identifier of a subscription. Only the subscription object will be returned.
tag string (optional) A tag string. Only subscription objects with this tag will be returned.
label string (optional) A text label string. Only subscription objects with this text label will be returned.
main_ip string (optional) An IPv4 address. Only the subscription matching this IPv4 address will be returned.
/v1/server/list_ipv4
List the IPv4 information of a virtual machine. IP information is only available for virtual machines in the "active" state.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/list_ipv4?SUBID=576965
Example Response:
{
"576965": [
{
"ip": "123.123.123.123",
"netmask": "255.255.255.248",
"gateway": "123.123.123.1",
"type": "main_ip",
"reverse": "host1.example.com"
},
{
"ip": "123.123.123.124",
"netmask": "255.255.255.248",
"gateway": "123.123.123.1",
"type": "secondary_ip",
"reverse": "host2.example.com"
},
{
"ip": "10.99.0.10",
"netmask": "255.255.0.0",
"gateway": "",
"type": "private",
"reverse": ""
}
]
}
Parameters:
No parameters.
/v1/server/list_ipv6
List the IPv6 information of a virtual machine. IP information is only available for virtual machines in the "active" state. If the virtual machine does not have IPv6 enabled, then an empty array is returned.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/list_ipv6?SUBID=576965
Example Response:
{
"576965": [
{
"ip": "2001:DB8:1000::100",
"network": "2001:DB8:1000::",
"network_size": "64",
"type": "main_ip"
}
]
}
Parameters:
No parameters.
/v1/server/neighbors
Determine what other subscriptions are hosted on the same physical host as a given subscription.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/neighbors?SUBID=12345
Example Response:
[
23456
]
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/os_change
Changes the virtual machine to a different operating system. All data will be permanently lost.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/os_change --data 'SUBID=576965' --data 'OSID=127'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
OSID integer Operating system to use. See /v1/server/os_change_list.
/v1/server/os_change_list
Retrieves a list of operating systems to which a virtual machine can be changed. Always check against this list before trying to switch operating systems because it is not possible to switch between every operating system combination.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/os_change_list?SUBID=576965
Example Response:
{
"127": {
"OSID": "127",
"name": "CentOS 6 x64",
"arch": "x64",
"family": "centos",
"windows": false,
"surcharge": "0.00"
},
"148": {
"OSID": "148",
"name": "Ubuntu 12.04 i386",
"arch": "i386",
"family": "ubuntu",
"windows": false,
"surcharge": "0.00"
}
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/private_network_enable
Enables private networking on a server. The server will be automatically rebooted to complete the request. No action occurs if private networking was already enabled. It is possible to check whether or not private networking has been enabled with v1/server/list_ipv4.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/private_network_enable --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/reboot
Reboot a virtual machine. This is a hard reboot (basically, unplugging the machine).
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/reboot --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/reinstall
Reinstall the operating system on a virtual machine. All data will be permanently lost, but the IP address will remain the same. There is no going back from this call.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/reinstall --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
hostname string (optional) The hostname to assign to this server.
/v1/server/restore_backup
Restore the specified backup to the virtual machine. Any data already on the virtual machine will be lost.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/restore_backup --data 'SUBID=576965' --data 'BACKUPID=543d34149403a'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
BACKUPID string BACKUPID (see v1/backup/list) to restore to this instance
/v1/server/restore_snapshot
Restore the specified snapshot to the virtual machine. Any data already on the virtual machine will be lost.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/restore_snapshot --data 'SUBID=576965' --data 'SNAPSHOTID=5359435d28b9a'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
SNAPSHOTID string SNAPSHOTID (see v1/snapshot/list) to restore to this instance
/v1/server/reverse_default_ipv4
Set a reverse DNS entry for an IPv4 address of a virtual machine to the original setting. Upon success, DNS changes may take 6-12 hours to become active.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/reverse_default_ipv4 --data 'SUBID=576965' --data 'ip=192.0.2.1'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
ip string IPv4 address used in the reverse DNS update. These can be found with the v1/server/list_ipv4 call.
/v1/server/reverse_delete_ipv6
Remove a reverse DNS entry for an IPv6 address of a virtual machine. Upon success, DNS changes may take 6-12 hours to become active.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/reverse_delete_ipv6 --data 'SUBID=576965' --data 'ip=2001:db8:1234::'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
ip string IPv6 address used in the reverse DNS update. These can be found with the v1/server/reverse_list_ipv6 call.
/v1/server/reverse_list_ipv6
List the IPv6 reverse DNS entries of a virtual machine. Reverse DNS entries are only available for virtual machines in the "active" state. If the virtual machine does not have IPv6 enabled, then an empty array is returned.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/reverse_list_ipv6?SUBID=576965
Example Response:
{
"576965": [
{
"ip": "2001:DB8:1000::101",
"reverse": "host1.example.com"
},
{
"ip": "2001:DB8:1000::102",
"reverse": "host2.example.com"
}
]
}
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/reverse_set_ipv4
Set a reverse DNS entry for an IPv4 address of a virtual machine. Upon success, DNS changes may take 6-12 hours to become active.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/reverse_set_ipv4 --data 'SUBID=576965' --data 'ip=192.0.2.1' --data 'entry=example.vultr.com'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
ip string IPv4 address used in the reverse DNS update. These can be found with the v1/server/list_ipv4 call.
entry string reverse DNS entry.
/v1/server/reverse_set_ipv6
Set a reverse DNS entry for an IPv6 address of a virtual machine. Upon success, DNS changes may take 6-12 hours to become active.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/reverse_set_ipv6 --data 'SUBID=576965' --data 'ip=2001:db8:1234::' --data 'entry=example.vultr.com'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
ip string IPv6 address used in the reverse DNS update. These can be found with the v1/server/list_ipv6 or v1/server/reverse_list_ipv6 calls.
entry string reverse DNS entry.
/v1/server/set_user_data
Sets the user-data for this subscription. User-data is a generic data store, which some provisioning tools and cloud operating systems use as a configuration file. It is generally consumed only once after an instance has been launched, but individual needs may vary.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/set_user_data --data 'SUBID=12345' --data 'userdata=ZWNobyBIZWxsbyBXb3JsZA==''
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
userdata string Base64 encoded user-data
/v1/server/start
Start a virtual machine. If the machine is already running, it will be restarted.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/start --data 'SUBID=576965'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
/v1/server/tag_set
Set the tag of a virtual machine.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/tag_set --data 'SUBID=576965' --data 'tag=Mail'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
tag string The tag to assign to this server. This tag is shown in the control panel.
/v1/server/upgrade_plan
Upgrade the plan of a virtual machine. The virtual machine will be rebooted upon a successful upgrade.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | upgrade |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/upgrade_plan --data 'SUBID=576965' --data 'VPSPLANID=29'
Example Response:
No response, check HTTP result code.
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
VPSPLANID integer The new plan. See /v1/server/upgrade_plan_list.
/v1/server/upgrade_plan_list
Retrieve a list of the VPSPLANIDs for which a virtual machine can be upgraded. An empty response array means that there are currently no upgrades available.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | upgrade |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/server/upgrade_plan_list?SUBID=576965
Example Response:
[29,41,61]
Parameters:
SUBID integer Unique identifier for this subscription. These can be found using the v1/server/list call.
Snapshot
/v1/snapshot/create
Create a snapshot from an existing virtual machine. The virtual machine does not need to be stopped.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/snapshot/create --data 'SUBID=1312965'
Example Response:
{ "SNAPSHOTID": "544e52f31c706" }
Parameters:
SUBID integer Identifier of the virtual machine to create a snapshot from. See v1/server/list
description string (optional) Description of snapshot contents
/v1/snapshot/destroy
Destroy (delete) a snapshot. There is no going back from this call.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/snapshot/destroy --data 'SNAPSHOTID=5359435d28b9a'
Example Response:
No response, check HTTP result code.
Parameters:
SNAPSHOTID string Unique identifier for this snapshot. These can be found using the v1/snapshot/list call.
/v1/snapshot/list
List all snapshots on the current account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/snapshot/list
Example Response:
{
"5359435d28b9a": {
"SNAPSHOTID": "5359435d28b9a",
"date_created": "2014-04-18 12:40:40",
"description": "Test snapshot",
"size": "42949672960",
"status": "complete"
},
"5359435dc1df3": {
"SNAPSHOTID": "5359435dc1df3",
"date_created": "2014-04-22 16:11:46",
"description": "",
"size": "10000000",
"status": "complete"
}
}
Parameters:
SNAPSHOTID string (optional) Filter result set to only contain this snapshot.
SSH Key
/v1/sshkey/create
Create a new SSH Key.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/sshkey/create --data 'name=test SSH KEY' --data 'ssh_key=ssh-rsa AA... [email protected]'
Example Response:
{ "SSHKEYID": "541b4960f23bd" }
Parameters:
name string Name of the SSH key
ssh_key string SSH public key (in authorized_keys format)
/v1/sshkey/destroy
Remove a SSH key. Note that this will not remove the key from any machines that already have it.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/sshkey/destroy --data 'SSHKEYID=541b4960f23bd'
Example Response:
No response, check HTTP result code.
Parameters:
SSHKEYID string Unique identifier for this SSH key. These can be found using the v1/sshkey/list call.
/v1/sshkey/list
List all the SSH keys on the current account.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/sshkey/list
Example Response:
{
"541b4960f23bd": {
"SSHKEYID": "541b4960f23bd",
"date_created": null,
"name": "test",
"ssh_key": "ssh-rsa AA... [email protected]"
}
}
Parameters:
No parameters.
/v1/sshkey/update
Update an existing SSH Key. Note that this will only update newly installed machines. The key will not be updated on any existing machines.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/sshkey/update --data 'SSHKEYID=541b4960f23bd' --data 'name=new key name' --data 'ssh_key=ssh-rsa AA... [email protected]'
Example Response:
No response, check HTTP result code.
Parameters:
SSHKEYID string SSHKEYID of key to update (see /v1/sshkey/list)
name string (optional) New name for the SSH key
ssh_key string (optional) New SSH key contents
Startup Script
/v1/startupscript/create
Create a startup script.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/startupscript/create --data 'name=my first script' --data $'script=#!/bin/bash\necho hello world > /root/hello'
Example Response:
{ "SCRIPTID": 5 }
Parameters:
name string Name of the newly created startup script
script string Startup script contents
type string boot|pxe Type of startup script. Default is 'boot'
/v1/startupscript/destroy
Remove a startup script.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/startupscript/destroy --data 'SCRIPTID=5'
Example Response:
No response, check HTTP result code.
Parameters:
SCRIPTID string Unique identifier for this startup script. These can be found using the v1/startupscript/list call.
/v1/startupscript/list
List all startup scripts on the current account. Scripts of type "boot" are executed by the server's operating system on the first boot. Scripts of type "pxe" are executed by iPXE when the server itself starts up.
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/startupscript/list
Example Response:
{
"3": {
"SCRIPTID": "3",
"date_created": "2014-05-21 15:27:18",
"date_modified": "2014-05-21 15:27:18",
"name": "test ",
"type": "boot",
"script": "#!/bin/bash echo Hello World > /root/hello"
},
"5": {
"SCRIPTID": "5",
"date_created": "2014-08-22 15:27:18",
"date_modified": "2014-09-22 15:27:18",
"name": "test ",
"type": "pxe",
"script": "#!ipxe\necho Hello World\nshell"
}
}
Parameters:
No parameters.
/v1/startupscript/update
Update an existing startup script.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | subscriptions |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/startupscript/update --data 'SCRIPTID=5' --data 'name=my first script' --data 'script=#!/bin/bash\necho hello world > /root/hello'
Example Response:
No response, check HTTP result code.
Parameters:
SCRIPTID integer SCRIPTID of script to update (see /v1/startupscript/list)
name string (optional) New name for the startup script
script string (optional) New startup script contents
User Management
/v1/user/create
Create a new user.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | manage_users |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/user/create --data '[email protected]' --data 'name=test user' --data 'password=badpassword' --data 'acls[]=manage_users' --data 'acls[]=subscriptions'
Example Response:
{
"USERID": "564a1a88947b4",
"api_key":"AAAAAAAA"
}
Parameters:
email string Email address for this user
name string Name for this user
password Password for this user
api_enabled string (optional) 'yes' or 'no'. If yes, this user's API key will work on api.vultr.com. Default is yes
acls array List of ACLs that this user should have. See /v1/user/list for information on possible ACLs
/v1/user/delete
Delete a user.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | manage_users |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/user/delete --data 'USERID=564a1a88947b4'
Example Response:
No response, check HTTP result code.
Parameters:
USERID int ID of the user to delete
/v1/user/list
Retrieve a list of any users associated with this account.
ACLs will contain one or more of the following flags:
manage_users - Create, update, and delete other users. This will basically grant them all other permissions
subscriptions - Destroy and update any existing subscriptions (also supporting things, such as ISOs and SSH keys)
provisioning - Deploy new instances. Note this ACL requires the subscriptions ACL
billing - Manage and view billing information (invoices, payment methods)
support - Create and update support tickets. Users with this flag will be CC'd on any support interactions
abuse - If enabled on any user, only users with this flag enabled will receive abuse notifications (requires support flag)
dns - Create, update, and delete any forward DNS records (reverse is controlled by the subscriptions flag)
upgrade - If enabled, this user will be allowed to upgrade an instance's plan, or add paid features (such as DDOS protection or backups)
| API Key Required: | Yes |
| Request Type: | GET |
| Required Access: | manage_users |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/user/list
Example Response:
[
{
"USERID": "564a1a7794d83",
"name": "example user 1",
"email": "[email protected]",
"api_enabled": "yes",
"acls": [
"manage_users",
"subscriptions",
"billing",
"provisioning"
]
},
{
"USERID": "564a1a88947b4",
"name": "example user 2",
"email": "[email protected]",
"api_enabled": "no",
"acls": [
"support",
"dns"
]
}
]
Parameters:
No parameters.
/v1/user/update
Update the details for a user.
| API Key Required: | Yes |
| Request Type: | POST |
| Required Access: | manage_users |
Example Request:
curl -H 'API-Key: EXAMPLE' https://api.vultr.com/v1/user/update --data 'USERID=564a1a88947b4' --data '[email protected]' --data 'password=badpassword' --data 'acls[]=manage_users' --data 'acls[]=subscriptions'
Example Response:
No response, check HTTP result code.
Parameters:
USERID string ID of the user to update
email string (optional) New email address for this user
name string (optional) New name for this user
password string (optional) New password for this user
api_enabled string (optional) 'yes' or 'no'. If yes, this user's API key will work on api.vultr.com
acls array (optional) List of ACLs that this user should have. See /v1/user/list for information on possible ACLs