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": "example@vultr.com",
"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) Unique identifier of a subscription. Only backups for this subscription object will be returned.

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 '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 delete record from
RECORDID integer ID of record to delete (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)

ISO Image

/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"
}
}

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 it's usage. Typically, deprecated plans are available for 30 days after they are deprecated.

API Key Required: No
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 it's usage. Typically, deprecated plans are available for 30 days after they are deprecated.

API Key Required: No
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 it's usage. Typically, deprecated plans are available for 30 days after they are deprecated.

API Key Required: No
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 in order to see them. For all other accounts, the API key is not optional.

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 of

/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:

No parameters.

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 'SUBID=12345'

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', or 'monthly'.
hour integer (optional) Hour value (0-23). Applicable to crons: 'daily', 'weekly', 'monthly'.
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).

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 cloud-init 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.

/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/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/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"
}
}

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/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 cloud-init user-data for this subscription. Note that user-data is not supported on every operating system, and is generally only provided on instance startup.

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 cloud-init 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/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:

No parameters.

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... test@example.com'

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... test@example.com"
}
}

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... someother@example.com'

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=new@vultr.com' --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": "example@vultr.com",
"api_enabled": "yes",
"acls": [
"manage_users",
"subscriptions",
"billing",
"provisioning"
]
},
{
"USERID": "564a1a88947b4",
"name": "example user 2",
"email": "example@vultr.com",
"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=new@vultr.com' --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