Download OpenAPI specification:Download
The Vultr API v2 is a set of HTTP endpoints that adhere to RESTful design principles and CRUD actions with predictable URIs. It uses standard HTTP response codes, authentication, and verbs. The API has consistent and well-formed JSON requests and responses with cursor-based pagination to simplify list handling. Error messages are descriptive and easy to understand. All functions of the Vultr customer portal are accessible via the API, enabling you to script complex unattended scenarios with any tool fluent in HTTP.
Communicate with the API by making an HTTP request at the correct endpoint. The chosen method determines the action taken.
Method | Usage |
---|---|
DELETE | Use the DELETE method to destroy a resource in your account. If it is not found, the operation will return a 4xx error and an appropriate message. |
GET | To retrieve information about a resource, use the GET method. The data is returned as a JSON object. GET methods are read-only and do not affect any resources. |
PATCH | Some resources support partial modification with PATCH, which modifies specific attributes without updating the entire object representation. |
POST | Issue a POST method to create a new object. Include all needed attributes in the request body encoded as JSON. |
PUT | Use the PUT method to update information about a resource. PUT will set new values on the item without regard to their current values. |
Rate Limit: Vultr safeguards the API against bursts of incoming traffic based on the request's IP address to ensure stability for all users. If your application sends more than 30 requests per second, the API may return HTTP status code 429.
We use standard HTTP response codes to show the success or failure of requests. Response codes in the 2xx range indicate success, while codes in the 4xx range indicate an error, such as an authorization failure or a malformed request. All 4xx errors will return a JSON response object with an error
attribute explaining the error. Codes in the 5xx range indicate a server-side problem preventing Vultr from fulfilling your request.
Response | Description |
---|---|
200 OK | The response contains your requested information. |
201 Created | Your request was accepted. The resource was created. |
202 Accepted | Your request was accepted. The resource was created or updated. |
204 No Content | Your request succeeded, there is no additional information returned. |
400 Bad Request | Your request was malformed. |
401 Unauthorized | You did not supply valid authentication credentials. |
403 Forbidden | You are not allowed to perform that action. |
404 Not Found | No results were found for your request. |
429 Too Many Requests | Your request exceeded the API rate limit. |
500 Internal Server Error | We were unable to perform the request due to server-side problems. |
Many API calls will return a meta
object with paging information.
Term | Description |
---|---|
List | The items returned from the database for your request (not necessarily shown in a single response depending on the cursor size). |
Page | A subset of the full list of items. Choose the size of a page with the per_page parameter. |
Total | The total attribute indicates the number of items in the full list. |
Cursor | Use the cursor query parameter to select a next or previous page. |
Next & Prev | Use the next and prev attributes of the links meta object as cursor values. |
If your result list total exceeds the default cursor size (the default depends on the route, but is usually 100 records) or the value defined by the per_page
query param (when present) the response will be returned to you paginated.
These examples have abbreviated attributes and sample values. Your actual
cursor
values will be encoded alphanumeric strings.
To return a page with the first two plans in the List:
curl "https://api.vultr.com/v2/plans?per_page=2" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
The API returns an object similar to this:
{
"plans": [
{
"id": "vc2-1c-2gb",
"vcpu_count": 1,
"ram": 2048,
"locations": []
},
{
"id": "vc2-24c-97gb",
"vcpu_count": 24,
"ram": 98304,
"locations": []
}
],
"meta": {
"total": 19,
"links": {
"next": "WxYzExampleNext",
"prev": "WxYzExamplePrev"
}
}
}
The object contains two plans. The total
attribute indicates that 19 plans are available in the List. To navigate forward in the list, use the next
value (WxYzExampleNext
in this example) as your cursor
query parameter.
curl "https://api.vultr.com/v2/plans?per_page=2&cursor=WxYzExampleNext" \
-X GET
-H "Authorization: Bearer ${VULTR_API_KEY}"
Likewise, you can use the example prev
value WxYzExamplePrev
to navigate backward.
You can pass information to the API with three different types of parameters.
Some API calls require variable parameters as part of the endpoint path. For example, to retrieve information about a user, supply the user-id
in the endpoint.
curl "https://api.vultr.com/v2/users/{user-id}" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
Some API calls allow filtering with query parameters. For example, the /v2/plans
endpoint supports a type
query parameter. Setting type=vhf
instructs the API only to return High Frequency Compute plans in the list. You'll find more specifics about valid filters in the endpoint documentation below.
curl "https://api.vultr.com/v2/plans?type=vhf" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
You can also combine filtering with paging. Use the per_page
parameter to retreive a subset of vhf plans.
curl "https://api.vultr.com/v2/plans?type=vhf&per_page=2" \
-X GET \
-H "Authorization: Bearer ${VULTR_API_KEY}"
PUT, POST, and PATCH methods may include an object in the request body with a content type of application/json. The documentation for each endpoint below has more information about the expected object.
The examples in this documentation use curl
, a command-line HTTP client, to demonstrate useage. Linux and macOS computers usually have curl installed by default, and it's available for download on all popular platforms including Windows.
Each example is split across multiple lines with the \
character, which is compatible with a bash
terminal. A typical example looks like this:
curl "https://api.vultr.com/v2/domains" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"domain" : "example.com",
"ip" : "192.0.2.123"
}'
-X
parameter sets the request method. For consistency, we show the method on all examples, even though it's not explicitly required for GET methods.-H
lines set required HTTP headers. These examples are formatted to expand the VULTR_API_KEY environment variable for your convenience.--data
parameter.All values in this guide are examples. Do not rely on the OS or Plan IDs listed in this guide; use the appropriate endpoint to retreive values before creating resources.
Read-only information about your user account and billing information.
Get your Vultr account, permission, and billing information.
curl "https://api.vultr.com/v2/account" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "account": {
- "name": "Example Account",
- "email": "admin@example.com",
- "acls": [
- "manage_users",
- "subscriptions_view",
- "subscriptions",
- "billing",
- "support",
- "provisioning",
- "dns",
- "abuse",
- "upgrade",
- "firewall",
- "alerts",
- "objstore",
- "loadbalancer"
], - "balance": -100.55,
- "pending_charges": 60.25,
- "last_payment_date": "2020-10-10T01:56:20+00:00",
- "last_payment_amount": -1.25
}
}
Get your Vultr account bandwidth information.
curl "https://api.vultr.com/v2/account/bandwidth" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "bandwidth": {
- "previous_month": {
- "timestamp_start": "1701388800",
- "timestamp_end": "1704067200",
- "gb_in": 0,
- "gb_out": 0,
- "total_instance_hours": 8736,
- "total_instance_count": 13,
- "instance_bandwidth_credits": 3099648,
- "free_bandwidth_credits": 2048,
- "purchased_bandwidth_credits": 0,
- "overage": 0,
- "overage_unit_cost": 0.01,
- "overage_cost": 0
}, - "current_month_to_date": {
- "timestamp_start": "1704067200",
- "timestamp_end": "1706212679",
- "gb_in": 0,
- "gb_out": 0,
- "total_instance_hours": 7748,
- "total_instance_count": 13,
- "instance_bandwidth_credits": 2749086,
- "free_bandwidth_credits": 2048,
- "purchased_bandwidth_credits": 0,
- "overage": 0,
- "overage_unit_cost": 0.01,
- "overage_cost": 0
}, - "current_month_projected": {
- "timestamp_start": "1704067200",
- "timestamp_end": "1706745600",
- "gb_in": 0,
- "gb_out": 0,
- "total_instance_hours": 8736,
- "total_instance_count": 13,
- "instance_bandwidth_credits": 3099648,
- "free_bandwidth_credits": 2048,
- "purchased_bandwidth_credits": 0,
- "overage": 0,
- "overage_unit_cost": 0.01,
- "overage_cost": 0
}
}
}
One-Click and Marketplace Applications are ready-to-run with minimal configuration. We have an extensive documentation library for our Applications.
There are two types of Applications: marketplace
and one-click
. This is denoted by the type
field in the Application object. Applications with type
of marketplace
can be deployed by using the image_id
while Applications with type
of one-click
should use the id
.
Get a list of all available Applications.
type | string Filter the results by type.
| ||||||||||||
per_page | integer Number of items requested per page. Default is 100 and Max is 500. | ||||||||||||
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/applications" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "applications": [
- {
- "id": 1,
- "name": "LEMP",
- "short_name": "lemp",
- "deploy_name": "LEMP on CentOS 6 x64",
- "type": "one-click",
- "vendor": "vultr",
- "image_id": ""
}, - {
- "id": 1028,
- "name": "OpenLiteSpeed WordPress",
- "short_name": "openlitespeedwordpress",
- "deploy_name": "OpenLiteSpeed WordPress on Ubuntu 20.04 x64",
- "type": "marketplace",
- "vendor": "LiteSpeed_Technologies",
- "image_id": "openlitespeed-wordpress"
}
], - "meta": {
- "total": 2,
- "links": {
- "next": "",
- "prev": ""
}
}
}
A backup is a scheduled, automatic, point-in-time image of an instance. We do not stop the instance when taking a backup. Booting from a backup is similar to rebooting after a non-graceful restart. Snapshots are physically the same as backups, but snapshots are manual while backups run automatically on a schedule. Backups can be converted into snapshots. See our Automatic Backup FAQ for more information.
Get information about Backups in your account.
instance_id | string Filter the backup list by Instance id. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/backups" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "backups": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example Automatic Backup",
- "size": 10000000,
- "status": "complete",
- "os_id": 215,
- "app_id": 0
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get the information for the Backup.
backup-id required | string The Backup id. |
curl "https://api.vultr.com/v2/backups/{backup-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "backup": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example Description",
- "size": 10000000,
- "status": "complete",
- "os_id": 215,
- "app_id": 0
}
}
Bare Metal servers give you access to the underlying physical hardware in a single-tenant environment without a virtualization layer.
List all Bare Metal instances in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/bare-metals" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "bare_metals": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Application",
- "ram": "32768 MB",
- "disk": "2x 240GB SSD",
- "main_ip": "192.0.2.123",
- "cpu_count": 4,
- "region": "ams",
- "default_password": "example-password",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "active",
- "netmask_v4": "255.255.254.0",
- "gateway_v4": "192.0.2.1",
- "plan": "vbm-4c-32gb",
- "v6_network": "2001:0db8:5001:3990::",
- "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a",
- "v6_network_size": 64,
- "label": "Example Bare Metal",
- "mac_address": 2199756823533,
- "os_id": 186,
- "app_id": 3,
- "image_id": "",
- "features": [
- "ipv6"
], - "tags": [
- "a tag",
- "another"
], - "user_scheme": "root",
- "mdisk_mode": "raid1"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new Bare Metal instance in a region
with the desired plan
. Choose one of the following to deploy the instance:
os_id
snapshot_id
app_id
image_id
Supply other attributes as desired.
Include a JSON object in the request body with a content type of application/json.
region required | string The Region id to create the instance. |
plan required | string The Bare Metal plan id to use for this instance. |
script_id | string The Startup Script id to use for this instance. |
enable_ipv6 | boolean Enable IPv6.
|
sshkey_id | Array of strings The SSH Key id to install on this instance. |
user_data | string The user-supplied, base64 encoded user data for this Instance. |
label | string The user-supplied label. |
activation_email | boolean Notify by email after deployment.
|
hostname | string The user-supplied hostname to use when deploying this instance. |
tag | string Deprecated Use |
reserved_ipv4 | string The Reserved IP id for this instance. |
os_id | integer If supplied, deploy the instance using this Operating System id. |
snapshot_id | string If supplied, deploy the instance using this Snapshot ID. |
app_id | integer If supplied, deploy the instance using this Application id. |
image_id | string If supplied, deploy the instance using this Application image_id. |
persistent_pxe | boolean Enable persistent PXE.
|
attach_vpc2 | Array of strings Deprecated An array of VPC IDs to attach to this Bare Metal Instance. This parameter takes precedence over |
detach_vpc2 | Array of strings Deprecated An array of VPC IDs to detach from this Bare Metal Instance. This parameter takes precedence over |
enable_vpc2 | boolean Deprecated If This parameter attaches a single VPC 2.0 network. When no VPC 2.0 network exists in the region, it will be automatically created. If there are multiple VPC 2.0 networks in the instance's region, use |
tags | Array of strings Tags to apply to the instance. |
user_scheme | string Linux-only: The user scheme used for logging into this instance. By default, the "root" user is configured. Alternatively, a limited user with sudo permissions can be selected.
|
mdisk_mode | string The RAID configuration used for the disks on this instance. The instance must be reinstalled for this change to take effect.
|
app_variables | object The app variable inputs for configuring the marketplace app (name/value pairs). |
{- "region": "ams",
- "plan": "vbm-4c-32gb",
- "label": "Example Bare Metal",
- "app_id": 3,
- "enable_ipv6": true
}
{- "bare_metal": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Application",
- "ram": "32768 MB",
- "disk": "2x 240GB SSD",
- "main_ip": "",
- "cpu_count": 4,
- "region": "ams",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "pending",
- "netmask_v4": "",
- "gateway_v4": "",
- "plan": "vbm-4c-32gb",
- "v6_network": "",
- "v6_main_ip": "",
- "v6_network_size": 0,
- "label": "Example Bare Metal",
- "mac_address": 2199756823533,
- "tag": "Example Tag",
- "tags": [
- "Another tag"
], - "os_id": 186,
- "app_id": 3,
- "image_id": "",
- "features": [
- "ipv6"
], - "user_scheme": "root",
- "mdisk_mode": "raid1"
}
}
Get information for a Bare Metal instance.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "bare_metal": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Application",
- "ram": "32768 MB",
- "disk": "2x 240GB SSD",
- "main_ip": "192.0.2.123",
- "cpu_count": 4,
- "region": "ams",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "pending",
- "netmask_v4": "255.255.254.0",
- "gateway_v4": "192.0.2.1",
- "plan": "vbm-4c-32gb",
- "v6_network": "2001:0db8:5001:3990::",
- "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a",
- "v6_network_size": 64,
- "mac_address": 2199756823533,
- "label": "Example Bare Metal",
- "os_id": 183,
- "app_id": 3,
- "image_id": "",
- "features": [
- "ipv6"
], - "tags": [
- "a tag",
- "another"
], - "user_scheme": "root"
}
}
Update a Bare Metal instance. All attributes are optional. If not set, the attributes will retain their original values.
Note: Changing os_id
, app_id
or image_id
may take a few extra seconds to complete.
baremetal-id required | string The Bare Metal id. |
Include a JSON object in the request body with a content type of application/json.
user_data | string The user-supplied, base64 encoded user data to attach to this instance. |
label | string The user-supplied label. |
tag | string Deprecated Use |
os_id | integer If supplied, reinstall the instance using this Operating System id. |
app_id | integer If supplied, reinstall the instance using this Application id. |
image_id | string If supplied, reinstall the instance using this Application image_id. |
enable_ipv6 | boolean Enable IPv6.
|
attach_vpc2 | Array of strings Deprecated An array of VPC IDs to attach to this Bare Metal Instance. This parameter takes precedence over |
detach_vpc2 | Array of strings Deprecated An array of VPC IDs to detach from this Bare Metal Instance. This parameter takes precedence over |
enable_vpc2 | boolean Deprecated If This parameter attaches a single VPC 2.0 network. When no VPC 2.0 network exists in the region, it will be automatically created. If there are multiple VPC 2.0 networks in the instance's region, use |
tags | Array of strings Tags to apply to the instance. |
user_scheme | string Linux-only: The user scheme used for logging into this instance. The instance must be reinstalled for this change to take effect.
|
mdisk_mode | string The RAID configuration used for the disks on this instance. The instance must be reinstalled for this change to take effect.
|
ipxe_chain_url | string The URL location of the iPXE chainloader. |
{- "label": "Updated Bare Metal Label",
- "tags": [
- "a tag",
- "another"
], - "user_data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}
{- "bare_metal": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Application",
- "ram": "32768 MB",
- "disk": "2x 240GB SSD",
- "main_ip": "192.0.2.123",
- "cpu_count": 4,
- "region": "ams",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "pending",
- "netmask_v4": "255.255.254.0",
- "gateway_v4": "192.0.2.1",
- "plan": "vbm-4c-32gb",
- "v6_network": "2001:0db8:5001:3990::",
- "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a",
- "v6_network_size": 64,
- "mac_address": 2199756823533,
- "label": "Updated Bare Metal Label",
- "os_id": 183,
- "app_id": 3,
- "image_id": "",
- "features": [
- "ipv6"
], - "tags": [
- "a tag",
- "another"
], - "user_scheme": "root",
- "mdisk_mode": "raid1"
}
}
Delete a Bare Metal instance.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get the IPv4 information for the Bare Metal instance.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv4" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "ipv4s": [
- {
- "ip": "192.0.2.123",
- "netmask": "255.255.254.0",
- "gateway": "192.0.2.1",
- "type": "main_ip",
- "reverse": "192.0.2.123.vultr.com"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get the IPv6 information for the Bare Metal instance.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv6" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "ipv6s": [
- {
- "ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a",
- "network": "2001:0db8:5001:3990::",
- "network_size": 64,
- "type": "main_ip"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a reverse IPv4 entry for a Bare Metal Instance. The ip
and reverse
attributes are required.
baremetal-id required | string The Bare Metal ID. |
Include a JSON object in the request body with a content type of application/json.
ip required | string The IPv4 address. |
reverse required | string The IPv4 reverse entry. |
{- "ip": "192.0.2.123",
- "reverse": "foo.example.com"
}
Create a reverse IPv6 entry for a Bare Metal Instance. The ip
and reverse
attributes are required. IP address must be in full, expanded format.
baremetal-id required | string The Bare metal ID. |
Include a JSON object in the request body with a content type of application/json.
ip required | string The IPv6 address in full, expanded format. |
reverse required | string The IPv6 reverse entry. |
{- "ip": "2001:0db8:0005:6bb0:5400:2ff0:fee5:0002",
- "reverse": "foo.example.com"
}
Set a reverse DNS entry for an IPv4 address
baremetal-id required | string The Bare Metal ID. |
Include a JSON object in the request body with a content type of application/json.
ip required | string |
{- "ip": "192.0.2.123"
}
Delete the reverse IPv6 for a Bare metal instance.
baremetal-id required | string The Bare Metal id. |
ipv6 required | string The IPv6 address. |
curl "https://api.vultr.com/v2/baremetal/{baremetal-id}/ipv6/reverse/{ipv6}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Start the Bare Metal instance.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/start" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Reboot the Bare Metal instance.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/reboot" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Reinstall the Bare Metal instance using an optional hostname
.
Note: This action may take some time to complete.
baremetal-id required | string The Bare Metal id. |
Include a JSON object in the request body with a content type of application/json.
hostname | string The hostname to use when reinstalling this bare metal server. |
{- "hostname": "my_new_hostname"
}
{- "bare_metal": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Application",
- "ram": "32768 MB",
- "disk": "2x 240GB SSD",
- "main_ip": "192.0.2.123",
- "cpu_count": 4,
- "region": "ams",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "pending",
- "netmask_v4": "255.255.254.0",
- "gateway_v4": "192.0.2.1",
- "plan": "vbm-4c-32gb",
- "v6_network": "2001:0db8:5001:3990::",
- "v6_main_ip": "2001:0db8:5001:3990:0ec4:7aff:fe8e:f97a",
- "v6_network_size": 64,
- "label": "Example Bare Metal",
- "mac_address": 2199756823533,
- "tag": "Example Tag",
- "os_id": 183,
- "app_id": 3,
- "image_id": ""
}
}
Halt the Bare Metal instance.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/halt" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get bandwidth information for the Bare Metal instance.
The bandwidth
object in a successful response contains objects representing a day in the month. The date is denoted by the nested object keys. Days begin and end in the UTC timezone. Bandwidth utilization data contained within the date object is refreshed periodically. We do not recommend using this endpoint to gather real-time metrics.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/bandwidth" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "bandwidth": {
- "2020-07-25": {
- "incoming_bytes": 15989787,
- "outgoing_bytes": 25327729
}, - "2020-07-26": {
- "incoming_bytes": 13964112,
- "outgoing_bytes": 22257069
}
}
}
Halt Bare Metals.
Include a JSON object in the request body with a content type of application/json.
baremetal_ids | Array of strings |
{- "baremetal_ids": [
- "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "7f6f84ea-8f87-4d9e-af01-ac44db05911c",
- "54a83807-64ce-42e8-a0da-4d6c31c5b93b"
]
}
Reboot Bare Metals.
Include a JSON object in the request body with a content type of application/json.
baremetal_ids | Array of strings |
{- "baremetal_ids": [
- "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "54a83807-64ce-42e8-a0da-4d6c31c5b93b",
- "d092ee75-a113-480c-ae2e-e24cc6f588c3"
]
}
Start Bare Metals.
Include a JSON object in the request body with a content type of application/json.
baremetal_ids | Array of strings |
{- "baremetal_ids": [
- "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "1d651bd2-b93c-4bb6-8b91-0546fd765f15",
- "c2790719-278d-474c-8dff-cb35d6e5503f"
]
}
Get the user-supplied, base64 encoded user data for a Bare Metal.
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/user-data" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "user_data": {
- "data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}
}
Get available upgrades for a Bare Metal
baremetal-id required | string The Bare Metal id. |
type | string Filter upgrade by type:
|
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/upgrades" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "upgrades": {
- "os": [
- {
- "id": 127,
- "name": "CentOS 6 x64",
- "arch": "x64",
- "family": "centos"
}, - {
- "id": 147,
- "name": "CentOS 6 i386",
- "arch": "i386",
- "family": "centos"
}
], - "applications": [
- {
- "id": 1,
- "name": "LEMP",
- "short_name": "lemp",
- "deploy_name": "LEMP on CentOS 6 x64",
- "type": "one-click",
- "vendor": "vultr",
- "image_id": ""
}, - {
- "id": 39,
- "name": "LEMP",
- "short_name": "lemp",
- "deploy_name": "LEMP on CentOS 7 x64",
- "type": "one-click",
- "vendor": "vultr",
- "image_id": ""
}, - {
- "id": 1028,
- "name": "OpenLiteSpeed WordPress",
- "short_name": "openlitespeedwordpress",
- "deploy_name": "OpenLiteSpeed WordPress on Ubuntu 20.04 x64",
- "type": "marketplace",
- "vendor": "LiteSpeed_Technologies",
- "image_id": "openlitespeed-wordpress"
}
]
}
}
Get the VNC URL for a Bare Metal
baremetal-id required | string The Bare Metal id. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vnc" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{
}
Attach a VPC Network to a Bare Metal Instance.
baremetal-id required | string The Bare Metal ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id | string The VPC ID to attach to this Bare Metal Instance. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
Detach a VPC Network from an Bare Metal Instance.
baremetal-id required | string The bare-metal ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id | string The VPC ID to detach from this Bare Metal Instance. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
List the VPC networks for a Bare Metal Instance.
baremetal-id required | string The Bare Metal ID. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vpcs" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpcs": [
- {
- "id": "d325e78b-bcec-4d4e-b9b8-9c294f37b04d",
- "mac_address": "00:00:5e:00:53:5e",
- "ip_address": "10.99.0.123"
}
]
}
Attach a VPC 2.0 Network to a Bare Metal Instance.
Deprecated: Migrate to VPC Networks and use Attach VPC Network to Bare Metal Instance instead.
baremetal-id required | string The Bare Metal ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id | string The VPC ID to attach to this Bare Metal Instance. |
ip_address | string The IP address to use for this instance on the attached VPC 2.0 network. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "ip_address": "10.1.144.4"
}
Detach a VPC 2.0 Network from an Bare Metal Instance.
Deprecated: Migrate to VPC Networks and use Detach VPC Network from Bare Metal Instance instead.
baremetal-id required | string The bare-metal ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id | string The VPC ID to detach from this Bare Metal Instance. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
List the VPC 2.0 networks for a Bare Metal Instance.
Deprecated: Migrate to VPC Networks and use List Bare Metal Instance VPC Networks instead.
baremetal-id required | string The Bare Metal ID. |
curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vpc2" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpcs": [
- {
- "id": "d325e78b-bcec-4d4e-b9b8-9c294f37b04d",
- "mac_address": "00:00:5e:00:53:5e",
- "ip_address": "10.99.0.123"
}
]
}
Read-only billing information for your user account.
curl "https://api.vultr.com/v2/billing/history" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "billing_history": [
- {
- "id": 123456,
- "date": "2020-10-10T01:56:20+00:00",
- "type": "invoice",
- "description": "Invoice #123456",
- "amount": 100.03,
- "balance": 79.48
}, - {
- "id": 123457,
- "date": "2020-10-10T01:46:05+00:00",
- "type": "credit",
- "description": "Account Credit",
- "amount": 50.55,
- "balance": -20.55
}
], - "meta": {
- "total": 3,
- "links": {
- "next": "WxYzExampleNext",
- "prev": ""
}
}
}
curl "https://api.vultr.com/v2/billing/invoices" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "billing_invoices": [
- {
- "id": 123456,
- "date": "2021-10-10T00:00:00+00:00",
- "description": "Invoice #123456",
- "amount": 5.25,
- "balance": 10.25
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Retrieve specified invoice
invoice-id required | string ID of invoice |
curl "https://api.vultr.com/v2/billing/invoices/{invoice-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "billing_invoice": {
- "id": 123456,
- "description": "Account Credit",
- "date": "09-01-2021T00:00:00+00:00",
- "amount": 5.25
}
}
Retrieve full specified invoice
invoice-id required | string ID of invoice |
curl "https://api.vultr.com/v2/billing/invoices/{invoice-id}/items" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "invoice_items": [
- {
- "description": "Load Balancer (my-loadbalancer)",
- "product": "Load Balancer",
- "start_date": "2021-08-31T00:00:00+00:00",
- "end_date": "2021-09-30T00:00:00+00:00",
- "units": 720,
- "unit_type": "hours",
- "unit_price": 0.0149,
- "total": 10
}, - {
- "description": "1.1.1.1 (8192 MB) [my-instance]",
- "product": "Vultr Cloud Compute",
- "start_date": "2021-09-15T00:00:00+00:00",
- "end_date": "2021-09-30T00:00:00+00:00",
- "units": 371,
- "unit_type": "hours",
- "unit_price": 0.0595,
- "total": 22.09
}
], - "meta": {
- "total": 3,
- "links": {
- "next": "WxYzExampleNext",
- "prev": ""
}
}
}
curl "https://api.vultr.com/v2/billing/pending-charges" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "pending_charges": [
- {
- "description": "Load Balancer (my-loadbalancer)",
- "start_date": "2020-10-10T01:56:20+00:00",
- "end_date": "2020-10-10T01:56:20+00:00",
- "units": 720,
- "unit_type": "hours",
- "unit_price": 0.0149,
- "total": 10,
- "product": "Load Balancer"
}
]
}
Block Storage volumes are highly-available, redundant, SSD backed, and expandable from 10 GB to 40,000 GB depending on the type. Block storage volumes can be formatted with your choice of filesystems and moved between server instances as needed. See our FAQ for details.
List all Block Storage in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/blocks" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "blocks": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "cost": 5,
- "status": "pending",
- "size_gb": 50,
- "region": "ewr",
- "attached_to_instance": "742c9913-d088-4d67-bc61-5a10e922fbd1",
- "label": "Example Block Storage",
- "mount_id": "ewr-example112233"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create new Block Storage in a region
with a size of size_gb
. Size may range between 10 and 40000 depending on the block_type
.
Include a JSON object in the request body with a content type of application/json.
region required | string The Region id where the Block Storage will be created. |
size_gb required | integer Size in GB may range between 10 and 40000, depending on the |
label | string The user-supplied label. |
block_type | string An optional parameter, that determines on the type of block storage volume that will be created. Soon to become a required parameter.
|
{- "region": "ewr",
- "size_gb": 50,
- "label": "Example Block Storage"
}
{- "block": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "cost": 5,
- "status": "active",
- "size_gb": 50,
- "region": "ewr",
- "attached_to_instance": "742c9913-d088-4d67-bc61-5a10e922fbd1",
- "label": "Example Block Storage",
- "mount_id": "ewr-example112233",
- "block_type": "high_perf"
}
}
Get information for Block Storage.
block-id required | string The Block Storage id. |
curl "https://api.vultr.com/v2/blocks/{block-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "block": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "cost": 5,
- "status": "active",
- "size_gb": 50,
- "region": "ewr",
- "attached_to_instance": "742c9913-d088-4d67-bc61-5a10e922fbd1",
- "label": "Example Block Storage",
- "mount_id": "ewr-example112233",
- "block_type": "high_perf"
}
}
Delete Block Storage.
block-id required | string The Block Storage id. |
curl "https://api.vultr.com/v2/blocks/{block-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update information for Block Storage.
block-id required | string The Block Storage id. |
Include a JSON object in the request body with a content type of application/json.
label | string The user-supplied label. |
size_gb | integer New size of the Block Storage in GB. Size may range between 10 and 40000 depending on the |
{- "label": "Updated Block Storage Label",
- "size_gb": 50
}
Attach Block Storage to Instance instance_id
.
block-id required | string The Block Storage id. |
Include a JSON object in the request body with a content type of application/json.
instance_id required | string Attach the Block Storage to this Instance id. | |||||||||
live | boolean Attach Block Storage without restarting the Instance.
|
{- "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "live": true
}
Detach Block Storage.
block-id required | string The Block Storage id. |
Include a JSON object in the request body with a content type of application/json.
live | boolean Detach Block Storage without restarting the Instance.
|
{- "live": true
}
A Vultr Content Delivery Network (CDN) optimizes your website, allowing you to deliver content quickly to users worldwide. More information on Vultr CDN can be found here.
curl "https://api.vultr.com/v2/cdns/pull-zones/" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "pull_zones": [
- {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pullzone",
- "origin_scheme": "https",
- "origin_domain": "constant.com",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "last_purge": "2024-01-25 11:39:04",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
], - "meta": {
- "total": 3,
- "links": {
- "next": "WxYzExampleNext",
- "prev": ""
}
}
}
Create a new CDN Pull Zone.
Include a JSON object in the request body with a content type of application/json.
label required | string The user-supplied label. |
origin_scheme required | string Enum: "http" "https" The URI scheme of the origin domain. |
origin_domain required | string The domain name from which the content stored in the CDN will be pulled. |
vanity_domain | string An optional domain name that can be used to access the cached files in adition to the domain that is automaticaly created. This vanity domain will need to have a CNAME DNS record created to point it at the standard CDN domain that is automaticaly generated on creation of the CDN. |
ssl_cert | string Base 64 encoded file content for an ssl/tls certificate associated with the optional vanity_domain. This field is required if a vanity domain is provided and the origin_scheme is https. |
ssl_cert_key | string Base 64 encoded file content for the private key associated with the ssl_cert. This field is required if a vanity domain is provided and the origin_scheme is https. |
cors | boolean Enable Cross-origin resource sharing. CORS is a content validation mechanism used by web browsers to validate file access permissions. The Vultr CDN CORS policy protects your static assets from hotlinking threats by only accepting requests associated with your Origin URL. |
gzip | boolean Enable Gzip compression to reduce the static content size to speed up the delivery process. |
block_ai | boolean Block AI bots. |
block_bad_bots | boolean Block potentially malicious bots. |
{- "label": "my-pullzone",
- "origin_scheme": "https",
- "origin_domain": "www.vultr.com",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": false
}
{- "pull_zone": {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pullzone",
- "origin_scheme": "https",
- "origin_domain": "constant.com",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "last_purge": "2024-01-25 11:39:04",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
}
Get information about a CDN Pull Zones
pullzone-id required | string The Pull Zone ID. |
curl "https://api.vultr.com/v2/cdns/pull-zones/{pullzone-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "pull_zone": {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pullzone",
- "origin_scheme": "https",
- "origin_domain": "constant.com",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "last_purge": "2024-01-25 11:39:04",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
}
Update information for a CDN Pullzone. All attributes are optional. If not set, the attributes will retain their original values.
pullzone-id required | string The Pull Zone ID. |
label | string The user-supplied label. |
vanity_domain | string An optional domain name that can be used to access the cached files in adition to the domain that is automaticaly created. This vanity domain will need to have a CNAME DNS record created to point it at the standard CDN domain that is automaticaly generated on creation of the CDN. |
ssl_cert | string Base 64 encoded file content for an ssl/tls certificate associated with the optional vanity_domain. This field is required if a vanity domain is provided and the origin_scheme is https. |
ssl_cert_key | string Base 64 encoded file content for the private key associated with the ssl_cert. This field is required if a vanity domain is provided and the origin_scheme is https. |
cors | boolean Cross-origin resource sharing. |
gzip | boolean Optional feature to compress files, reduce the amount of data that's transferred. |
block_ai | boolean Optional feature to block AI bots. |
block_bad_bots | boolean Optional feature to block potentially malicious bots. |
regions | Array of arrays a list of Region ids for locations to be used for content delivery. |
{- "label": "my-pullzone",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": false,
- "regions": [
- "..."
]
}
{- "pull_zone": {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pullzone",
- "origin_scheme": "https",
- "origin_domain": "constant.com",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "last_purge": "2024-01-25 11:39:04",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
}
Delete a CDN Pull Zone.
pullzone-id required | string The Pull Zone ID. |
curl "https://api.vultr.com/v2/cdns/pull-zones/{pullzone-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Clears cached content on server proxies so that visitors can get the latest page versions.
Note: This action may only be performed once every six hours.
Note: This action may take a few extra seconds to complete.
pullzone-id required | string The Pull Zone ID. |
curl "https://api.vultr.com/v2/cdns/pull-zones/{pullzone-id}/purge" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
[ ]
curl "https://api.vultr.com/v2/cdns/push-zones/" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "push_zones": [
- {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pushzone",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
], - "meta": {
- "total": 3,
- "links": {
- "next": "WxYzExampleNext",
- "prev": ""
}
}
}
Create a new CDN Push Zone.
Include a JSON object in the request body with a content type of application/json.
label required | string The user-supplied label. |
vanity_domain | string An optional domain name that can be used to access the cached files in adition to the domain that is automaticaly created. This vanity domain will need to have a CNAME DNS record created to point it at the standard CDN domain that is automaticaly generated on creation of the CDN. |
ssl_cert | string Base 64 encoded file content for an ssl/tls certificate associated with the optional vanity_domain. This field is required if a vanity domain is provided. |
ssl_cert_key | string Base 64 encoded file content for the private key associated with the ssl_cert. This field is required if a vanity domain is provided. |
cors | boolean Enable Cross-origin resource sharing. CORS is a content validation mechanism used by web browsers to validate file access permissions. The Vultr CDN CORS policy protects your static assets from hotlinking threats by only accepting requests associated with your Origin URL. |
gzip | boolean Enable Gzip compression to reduce the static content size to speed up the delivery process. |
block_ai | boolean Block AI bots. |
block_bad_bots | boolean Block potentially malicious bots. |
{- "label": "my-pushzone",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": false
}
{- "push_zone": {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pushzone",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
}
Get information about a CDN Push Zone
pushzone-id required | string The Push Zone ID. |
curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "push_zone": {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pushzone",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
}
Update information for a CDN Pushzone. All attributes are optional. If not set, the attributes will retain their original values.
pushzone-id required | string The Push Zone ID. |
label | string The user-supplied label. |
vanity_domain | string An optional domain name that can be used to access the cached files in adition to the domain that is automaticaly created. This vanity domain will need to have a CNAME DNS record created to point it at the standard CDN domain that is automaticaly generated on creation of the CDN. |
ssl_cert | string Base 64 encoded file content for an ssl/tls certificate associated with the optional vanity_domain. This field is required if a vanity domain is provided. |
ssl_cert_key | string Base 64 encoded file content for the private key associated with the ssl_cert. This field is required if a vanity domain is provided. |
cors | boolean Cross-origin resource sharing. |
gzip | boolean Optional feature to compress files, reduce the amount of data that's transferred. |
block_ai | boolean Optional feature to block AI bots. |
block_bad_bots | boolean Optional feature to block potentially malicious bots. |
regions | Array of arrays a list of Region ids for locations to be used for content delivery. |
{- "label": "my-pushzone",
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": false,
- "regions": [
- "..."
]
}
{- "push_zone": {
- "id": "ef4d95d5-98dc-4710-94f5-0ee97e70a9a5",
- "date_created": "2024-01-25 09:41:05",
- "status": "active",
- "label": "my-pushzone",
- "vanity_domain": "my.domain.com",
- "cache_size": 50000000,
- "requests": null,
- "in_bytes": null,
- "out_bytes": null,
- "packets_per_sec": 50,
- "cors": false,
- "gzip": true,
- "block_ai": false,
- "block_bad_bots": true,
- "regions": [
- "..."
]
}
}
Delete a CDN Push Zone.
pushzone-id required | string The Push Zone ID. |
curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get a list of files that have been uploaded to a specific CDN Push Zones
pushzone-id required | string The Push Zone ID. |
curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}/files" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "files": [
- {
- "name": "my-file.jpg",
- "size": 857773,
- "last_modified": "2024-04-02T14:11:12+00:00\""
}
], - "count": 10,
- "total_size": 189238221
}
Create a presigned post endpoint that can be used to upload a file to your Push Zone. After sending this request you must send a second POST request to the returned URL. Include all of the returned inputs as form-data fields using the same key and value. You must also include a field named "file" that holds the file to be uploaded.
pushzone-id required | string The Push Zone ID. |
Include a JSON object in the request body with a content type of application/json.
name required | string the name of the file to be uploaded including the file extension. If the uploaded file does not match this name the upload will fail. |
size required | integer the size of the file to be uploaded. If the uploaded file does not match this size the upload will fail. |
{- "name": "my-image.jpg",
- "size": 857773
}
{- "upload_endpoint": {
- "inputs": {
- "acl": "public-read,",
- "key": "cdn-ady5dwsa6mdh.vultrcdn.com/my-file.jpg,",
- "X-Amz-Credential": "kNCaYoUJZ6szuajKsgN/20240418/us-east-1/s3/aws4_request,",
- "X-Amz-Algorithm": "AWS4-HMAC-SHA256,",
- "Policy": "eyJleHBpcmF0aW9uIjoiMjAyNC0wNC0xOFQxMzowNzo0MloiLCJjb25kaXRpb25zIjpbeyJhY2wiOiJwdWJsaWMtcmVhZCJ9LHsiYnVja2V0Ijoidi1jZG4tYWdlbnQtYXNzZXRzIn0seyJrZXkiOiJjZG4tYWR5NWR3c2E2bWRoLnZ1bHRyY2RuLmNvbVwvcGF0Y2guanBnIn0sWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsODU3NzczLDg1Nzc3M10seyJYLUFtei1EYXRlIjoiMjAyNDA0MThUMTMwMjQyWiJ9LHsiWC1BbXotQ3JlZGVudGlhbCI6InlrTkNhWW9VSlo2c3p1YWpLc2dOXC8yMDI0MDQxOFwvdXMtZWFzdC0xXC9zM1wvYXdzNF9yZXF1ZXN0In0seyJYLUFtei1BbGdvcml0aG0iOiJBV1M0LUhNQUMtU0hBMjU2In1dfQ==,",
- "X-Amz-Signature": "8cc2328bf9bd9531ccae5f8b156e7f578f3ee4414bb60f5eac97bbb62a0f2536,"
}
}
}
Get information about a CDN Push Zone file
pushzone-id required | string The Push Zone ID. |
file-name required | string The File Name. |
curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}/files/{file-name}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "file": {
- "name": "my-image.jpg,",
- "mime": "image/jpeg,",
- "size": "patch.jpg,",
- "content": "/9j/2wBDAAQDAwQDAwQEA...,",
- "last_modified": "2024-04-18T13:07:15+00:00,"
}
}
Delete a CDN Push Zone file.
pushzone-id required | string The Push Zone ID. |
file-name required | string The File Name. |
curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}/files/{file-name}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Store and manage public and private container images for rapid deployment to Vultr Managed Kubernetes.
List All Container Registry Subscriptions for this account
curl "https://api.vultr.com/v2/registries" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "registries": [
- {
- "id": "string",
- "name": "string",
- "urn": "string",
- "storage": {
- "used": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}, - "allowed": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}
}, - "date_created": "string",
- "public": true,
- "root_user": {
- "id": 0,
- "username": "string",
- "password": "string",
- "root": true,
- "added_at": "string",
- "updated_at": "string"
}, - "metadata": {
- "region": {
- "id": 0,
- "name": "string",
- "urn": "string",
- "base_url": "string",
- "public": true,
- "added_at": "string",
- "updated_at": "string",
- "data_center": { }
}, - "subscription": {
- "billing": {
- "monthly_price": 0,
- "pending_charges": 0
}
}
}
}
], - "meta": {
- "total": 0,
- "links": {
- "next": "string",
- "prev": "string"
}
}
}
Create a new Container Registry Subscription
name required | string The globally unique name to reference this registry |
public required | boolean If true, this is a publically accessible registry allowing anyone to pull from it. If false, this registry is completely private |
region required | string The name of the region you'd like to deploy this Registry in. Can get list of regions from /registry/region/list endpoint i.e. sjc |
plan required | string The key of the plan you'd like to select which dictates how much storage you're allocated and the monthly cost. Can get list of plans from /plan/list endpoint i.e. start_up |
{- "name": "charizard",
- "public": false,
- "region": "sjc",
- "plan": "business"
}
{- "id": "string",
- "name": "string",
- "urn": "string",
- "storage": {
- "used": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}, - "allowed": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}
}, - "date_created": "string",
- "public": true,
- "root_user": {
- "id": 0,
- "username": "string",
- "password": "string",
- "root": true,
- "added_at": "string",
- "updated_at": "string"
}, - "metadata": {
- "region": {
- "id": 0,
- "name": "string",
- "urn": "string",
- "base_url": "string",
- "public": true,
- "added_at": "string",
- "updated_at": "string",
- "data_center": { }
}, - "subscription": {
- "billing": {
- "monthly_price": 0,
- "pending_charges": 0
}
}
}
}
Get a single Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
curl "https://api.vultr.com/v2/registry/{registry-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "id": "string",
- "name": "string",
- "urn": "string",
- "storage": {
- "used": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}, - "allowed": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}
}, - "date_created": "string",
- "public": true,
- "root_user": {
- "id": 0,
- "username": "string",
- "password": "string",
- "root": true,
- "added_at": "string",
- "updated_at": "string"
}, - "metadata": {
- "region": {
- "id": 0,
- "name": "string",
- "urn": "string",
- "base_url": "string",
- "public": true,
- "added_at": "string",
- "updated_at": "string",
- "data_center": { }
}, - "subscription": {
- "billing": {
- "monthly_price": 0,
- "pending_charges": 0
}
}
}
}
Update a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
public | boolean If true, this is a publically accessible registry allowing anyone to pull from it. If false, this registry is completely private |
plan | string The key of the plan you'd like to upgrade to which dictates how much storage you're allocated and the monthly cost. Can get list of plans from /plan/list endpoint i.e. business |
{- "public": true,
- "plan": "business"
}
{- "id": "string",
- "name": "string",
- "urn": "string",
- "storage": {
- "used": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}, - "allowed": {
- "bytes": 0,
- "mb": 0,
- "gb": 0,
- "tb": 0,
- "updated_at": "string"
}
}, - "date_created": "string",
- "public": true,
- "root_user": {
- "id": 0,
- "username": "string",
- "password": "string",
- "root": true,
- "added_at": "string",
- "updated_at": "string"
}, - "metadata": {
- "region": {
- "id": 0,
- "name": "string",
- "urn": "string",
- "base_url": "string",
- "public": true,
- "added_at": "string",
- "updated_at": "string",
- "data_center": { }
}, - "subscription": {
- "billing": {
- "monthly_price": 0,
- "pending_charges": 0
}
}
}
}
Deletes a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
curl "https://api.vultr.com/v2/registry/{registry-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List All Repositories in a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
curl "https://api.vultr.com/v2/registry/{registry-id}/repositories" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "repositories": [
- {
- "name": "string",
- "image": "string",
- "description": "string",
- "added_at": "string",
- "updated_at": "string",
- "pull_count": 0,
- "artifact_count": 0
}
], - "meta": {
- "total": 0,
- "links": {
- "next": "string",
- "prev": "string"
}
}
}
Get a single Repository in a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
repository-image required | string The Repository Image. Which can be found by List Repositories. |
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "name": "string",
- "image": "string",
- "description": "string",
- "added_at": "string",
- "updated_at": "string",
- "pull_count": 0,
- "artifact_count": 0
}
Update a Repository in a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
repository-image required | string The Repository Image. Which can be found by List Repositories. |
description | string User defined description of this repository |
{- "description": "This is my super cool hello-world project"
}
{- "name": "string",
- "image": "string",
- "description": "string",
- "added_at": "string",
- "updated_at": "string",
- "pull_count": 0,
- "artifact_count": 0
}
Deletes a Repository from a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
repository-image required | string The Repository Image. Which can be found by List Repositories. |
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Create a fresh set of Docker Credentials for this Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
expiry_seconds | integer The seconds until these credentials expire. When set to 0, credentials do not expire. The default value is 0 |
read_write | boolean Whether these credentials will have only PULL access or PUSH access as well. If true these credentials can PUSH to repos in this registry. If false, these credentials can only PULL. Default is false. |
curl "https://api.vultr.com/v2/registry/{registry-id}/docker-credentials" \ -X OPTIONS \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "auths": {
- "{registry-region-name}.vultrcr.com": {
- "auth": "string"
}
}
}
Create a fresh set of Docker Credentials for this Container Registry Subscription and return them in a Kubernetes friendly YAML format
registry-id required | string The Registry ID. Which can be found by List Registries. |
expiry_seconds | integer The seconds until these credentials expire. When set to 0, credentials do not expire. The default value is 0 |
read_write | boolean Whether these credentials will have only PULL access or PUSH access as well. If true these credentials can PUSH to repos in this registry. If false, these credentials can only PULL. Default is false. |
base64_encode | boolean Whether this YAML will be returned in a base64 encoded string for ease of downloading. If true, the response will be a base64 encoded string. Default is false. |
curl "https://api.vultr.com/v2/registry/{registry-id}/docker-credentials/kubernetes" \ -X OPTIONS \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update the Container Registy Password for this Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
old_password | string <password> The API Key provided on Container Registry Subscription creation if the password has not been updated yet |
new_password | string <password> The new user provided password |
{- "old_password": "12345abc456ABC123ABcd6789efgH1234abc",
- "new_password": "sup3rh4rdt0cr4ck"
}
{- "success": "Password update successfully"
}
List All Robots in a Conainer Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
curl "https://api.vultr.com/v2/registry/{registry-id}/robots" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "robots": [
- {
- "name": "string",
- "description": "string",
- "secret": "string",
- "disable": true,
- "duration": 0,
- "creation_time": "string",
- "permissions": {
- "kind": "string",
- "namespace": "string",
- "access": {
- "action": "string",
- "resource": "string",
- "effect": "string"
}
}
}
], - "meta": {
- "total": 0,
- "links": {
- "next": "string",
- "prev": "string"
}
}
}
Get a single Robot in a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
robot-name required | any The Robot Name. Which can be found by List Robots. |
curl "https://api.vultr.com/v2/registry/{registry-id}/robot/{robot-name}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "name": "string",
- "description": "string",
- "secret": "string",
- "disable": true,
- "duration": 0,
- "creation_time": "string",
- "permissions": {
- "kind": "string",
- "namespace": "string",
- "access": {
- "action": "string",
- "resource": "string",
- "effect": "string"
}
}
}
Update the description, disable, duration, and add or remove access, in a Container Registry Subscription Robot
registry-id required | string The Registry ID. Which can be found by List Registries. |
robot-name required | any The Robot Name. Which can be found by List Robots. |
description | string User defined description of this repository |
disable | boolean Denotes whether the robot account is disabled or not |
duration | integer Time in seconds when the robot account will expire and -1 if it never expires |
object |
{- "description": "Robot user auto generated by Vultr - enter only what you want to update in the request body",
- "disable": true,
- "duration": -1,
- "access": [
- {
- "action": "pull",
- "resource": "repository",
- "effect": "allow"
}, - {
- "action": "delete",
- "resource": "artifact",
- "effect": "deny"
}
]
}
{- "name": "string",
- "description": "string",
- "secret": "string",
- "disable": true,
- "duration": 0,
- "creation_time": "string",
- "permissions": {
- "kind": "string",
- "namespace": "string",
- "access": {
- "action": "string",
- "resource": "string",
- "effect": "string"
}
}
}
Deletes a Robot from a Container Registry Subscription
registry-id required | string The Registry ID. Which can be found by List Registries. |
robot-name required | any The Robot Name. Which can be found by List Robots. |
curl "https://api.vultr.com/v2/registry/{registry-id}/robot/{robot-name}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List All Artifacts in a Container Registry Repository
registry-id required | string The Registry ID. Which can be found by List Registries. |
repository-image required | string The Repository Image. Which can be found by List Repositories. |
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}/artifacts" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "artifacts": [
- {
- "artifact_type": "string",
- "digest": "string",
- "manifest_media_type": "string",
- "media_type": "string",
- "pull_time": "string",
- "push_time": "string",
- "repository_name": "string",
- "size": 0,
- "type": "string",
- "tags": [ ]
}
], - "meta": {
- "total": 0,
- "links": {
- "next": "string",
- "prev": "string"
}
}
}
Get a single Artifact in a Container Registry Repository
registry-id required | string The Registry ID. Which can be found by List Registries. |
repository-image required | string The Repository Image. Which can be found by List Repositories. |
artifact-digest required | any The Artifact Digest. Which can be found by List Artifacts. |
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}/artifact/{artifact-digest}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "artifact_type": "string",
- "digest": "string",
- "manifest_media_type": "string",
- "media_type": "string",
- "pull_time": "string",
- "push_time": "string",
- "repository_name": "string",
- "size": 0,
- "type": "string",
- "tags": [ ]
}
Deletes an Artifact from a Container Registry Repository
registry-id required | string The Registry ID. Which can be found by List Registries. |
repository-image required | string The Repository Image. Which can be found by List Repositories. |
artifact-digest required | any The Artifact Digest. Which can be found by List Artifacts. |
curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}/artifact/{artifact-digest}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List All Regions where a Container Registry can be deployed
curl "https://api.vultr.com/v2/registry/region/list" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "regions": [
- {
- "id": 0,
- "name": "string",
- "urn": "string",
- "base_url": "string",
- "public": true,
- "added_at": "string",
- "updated_at": "string",
- "data_center": { }
}
], - "meta": {
- "total": 0,
- "links": {
- "next": "string",
- "prev": "string"
}
}
}
List All Plans to help choose which one is the best fit for your Container Registry
curl "https://api.vultr.com/v2/registry/plan/list" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "plans": {
- "start_up": {
- "vanity_name": "string",
- "max_storage_mb": 0,
- "monthly_price": 0
}, - "business": {
- "vanity_name": "string",
- "max_storage_mb": 0,
- "monthly_price": 0
}, - "premium": {
- "vanity_name": "string",
- "max_storage_mb": 0,
- "monthly_price": 0
}, - "enterprise": {
- "vanity_name": "string",
- "max_storage_mb": 0,
- "monthly_price": 0
}
}
}
Vultr offers free DNS hosting for customers' domains. The nameservers are on an AnyCAST network and ensure fast DNS resolution. When you manage your DNS through the API, you can view the results in your customer portal.
List all DNS Domains in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/domains" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "domains": [
- {
- "domain": "example.com",
- "date_created": "2020-10-10T01:56:20+00:00",
- "dns_sec": "enabled"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a DNS Domain for domain
. If no ip
address is supplied a domain with no records will be created.
Include a JSON object in the request body with a content type of application/json.
domain required | string Your registered DNS Domain name. |
ip | string The default IP address for your DNS Domain. If omitted an empty domain zone will be created. |
dns_sec | string Enable or disable DNSSEC.
|
{- "domain": "example.com",
- "ip": "192.0.2.123",
- "dns_sec": "enabled"
}
{- "domain": {
- "domain": "example.com",
- "date_created": "2020-10-10T01:56:20+00:00",
- "dns_sec": "enabled"
}
}
Get information for the DNS Domain.
dns-domain required | string The DNS Domain. |
curl "https://api.vultr.com/v2/domains/{dns-domain}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "domain": {
- "domain": "example.com",
- "date_created": "2020-10-10T01:56:20+00:00",
- "dns_sec": "enabled"
}
}
Delete the DNS Domain.
dns-domain required | string The DNS Domain. |
curl "https://api.vultr.com/v2/domains/{dns-domain}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update the DNS Domain.
dns-domain required | string The DNS Domain. |
Include a JSON object in the request body with a content type of application/json.
dns_sec required | string Enable or disable DNSSEC.
|
{- "dns_sec": "enabled"
}
Get SOA information for the DNS Domain.
dns-domain required | string The DNS Domain. |
curl "https://api.vultr.com/v2/domains/{dns-domain}/soa" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "dns_soa": {
- "nsprimary": "ns1.vultr.com",
- "email": "admin@example.com"
}
}
Update the SOA information for the DNS Domain. All attributes are optional. If not set, the attributes will retain their original values.
dns-domain required | string The DNS Domain. |
Include a JSON object in the request body with a content type of application/json.
nsprimary | string Set the primary nameserver. |
string Set the contact email address. |
{- "nsprimary": "ns1.vultr.com",
- "email": "admin@example.com"
}
Get the DNSSEC information for the DNS Domain.
dns-domain required | string The DNS Domain. |
curl "https://api.vultr.com/v2/domains/{dns-domain}/dnssec" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "dns_sec": [
- "example.com IN DNSKEY 257 3 13 kRrxANp7YTGqVbaWtMy8hhsK0jcG4ajjICZKMb4fKv79Vx/RSn76vNjzIT7/Uo0BXil01Fk8RRQc4nWZctGJBA==",
- "example.com IN DS 27933 13 1 2d9ac457e5c11a104e25d971d0a6254562bddde7",
- "example.com IN DS 27933 13 2 8858e7b0dfb881280ce2ca1e0eafcd93d5b53687c21da284d4f8799ba82208a9"
]
}
Create a DNS record.
dns-domain required | string The DNS Domain. |
Include a JSON object in the request body with a content type of application/json.
name required | string The hostname for this DNS record. |
type required | string The DNS record type.
|
data required | string The DNS data for this record type. |
ttl | integer Time to Live in seconds. |
priority | integer DNS priority. Does not apply to all record types. (Only required for MX and SRV) |
{- "name": "www",
- "type": "A",
- "data": "192.0.2.123",
- "ttl": 300,
- "priority": 0
}
{- "record": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "type": "A",
- "name": "www",
- "data": "192.0.2.123",
- "priority": 0,
- "ttl": 300
}
}
Get the DNS records for the Domain.
dns-domain required | string The DNS Domain. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/domains/{dns-domain}/records" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "records": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "type": "A",
- "name": "foo.example.com",
- "data": "192.0.2.123",
- "priority": 0,
- "ttl": 300
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get information for a DNS Record.
dns-domain required | string The DNS Domain. |
record-id required | string The DNS Record id. |
curl "https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "record": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "type": "A",
- "name": "www",
- "data": "192.0.2.123",
- "priority": 0,
- "ttl": 300
}
}
Update the information for a DNS record. All attributes are optional. If not set, the attributes will retain their original values.
dns-domain required | string The DNS Domain. |
record-id required | string The DNS Record id. |
Include a JSON object in the request body with a content type of application/json.
name | string The hostname for this DNS record. |
data | string The DNS data for this record type. |
ttl | integer Time to Live in seconds. |
priority | integer DNS priority. Does not apply to all record types. |
{- "name": "CNAME",
- "data": "foo.example.com",
- "ttl": 300,
- "priority": 0
}
Delete the DNS record.
dns-domain required | string The DNS Domain. |
record-id required | string The DNS Record id. |
curl "https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Vultr offers a web-based firewall solution to protect one or more compute instances. Firewall groups can manage multiple servers with a standard ruleset. You can control multiple groups with the API.
Get a list of all Firewall Groups.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/firewalls" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "firewall_groups": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "description": "Example Firewall Group",
- "date_created": "2020-10-10T01:56:20+00:00",
- "date_modified": "2020-10-10T01:59:20+00:00",
- "instance_count": 0,
- "rule_count": 0,
- "max_rule_count": 50
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new Firewall Group.
Include a JSON object in the request body with a content type of application/json.
description | string User-supplied description of this Firewall Group. |
{- "description": "Example Firewall Group"
}
{- "firewall_group": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "description": "Example Firewall Group",
- "date_created": "2020-10-10T01:56:20+00:00",
- "date_modified": "2020-10-10T01:56:20+00:00",
- "instance_count": 0,
- "rule_count": 0,
- "max_rule_count": 50
}
}
Get information for a Firewall Group.
firewall-group-id required | string The Firewall Group id. |
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "firewall_group": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "description": "Example Firewall Group",
- "date_created": "2020-10-10T01:56:20+00:00",
- "date_modified": "2020-10-10T01:56:20+00:00",
- "instance_count": 0,
- "rule_count": 0,
- "max_rule_count": 50
}
}
Update information for a Firewall Group.
firewall-group-id required | string The Firewall Group id. |
Include a JSON object in the request body with a content type of application/json.
description required | string User-supplied description of this Firewall Group. |
{- "description": "Updated Firewall Group Name"
}
Delete a Firewall Group.
firewall-group-id required | string The Firewall Group id. |
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get the Firewall Rules for a Firewall Group.
firewall-group-id required | string The Firewall Group id. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "firewall_rules": [
- {
- "id": 1,
- "type": "v4",
- "ip_type": "v4",
- "action": "accept",
- "protocol": "tcp",
- "port": "80",
- "subnet": "192.0.2.0",
- "subnet_size": 24,
- "source": "",
- "notes": "Example Firewall Rule"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a Firewall Rule for a Firewall Group. The attributes ip_type
, protocol
, subnet
, and subnet_size
are required.
firewall-group-id required | string The Firewall Group id. |
Include a JSON object in the request body with a content type of application/json.
ip_type required | string The type of IP rule.
| ||||||||||||
protocol required | string The protocol for this rule.
| ||||||||||||
subnet required | string IP address representing a subnet. The IP address format must match with the "ip_type" parameter value. | ||||||||||||
subnet_size required | integer The number of bits for the netmask in CIDR notation. Example: 32 | ||||||||||||
port | string TCP/UDP only. This field can be a specific port or a colon separated port range. | ||||||||||||
source | string If the source string is given a value of "cloudflare" subnet and subnet_size will both be ignored. Possible values:
| ||||||||||||
notes | string User-supplied notes for this rule. |
{- "ip_type": "v4",
- "protocol": "tcp",
- "port": "80",
- "subnet": "192.0.2.0",
- "subnet_size": 24,
- "source": "",
- "notes": "Example Firewall Rule"
}
{- "firewall_rule": {
- "id": 1,
- "type": "v4",
- "ip_type": "v4",
- "action": "accept",
- "protocol": "tcp",
- "port": "80",
- "subnet": "192.0.2.0",
- "subnet_size": 24,
- "source": "",
- "notes": "Example Firewall Rule"
}
}
Delete a Firewall Rule.
firewall-group-id required | string The Firewall Group id. |
firewall-rule-id required | string The Firewall Rule id. |
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules/{firewall-rule-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get a Firewall Rule.
firewall-group-id required | string The Firewall Group id. |
firewall-rule-id required | string The Firewall Rule id. |
curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules/{firewall-rule-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "firewall_rule": {
- "id": 1,
- "type": "v4",
- "ip_type": "v4",
- "action": "accept",
- "protocol": "tcp",
- "port": "80",
- "subnet": "192.0.2.0",
- "subnet_size": 24,
- "source": "",
- "notes": "Example Firewall Rule"
}
}
Vultr Cloud instances can be deployed with your preferred operating system or pre-installed application in seconds. High Frequency Compute instances are powered by high clock speed CPU's and NVMe local storage to power your most demanding applications. Dedicated Cloud instances have dedicated CPU, SSD drives, and RAM.
Note: Do not use this endpoint to manage Kubernetes cluster nodes as it may result in unintended issues and charges. Use the kubernetes endpoint instead.
List all VPS instances in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
tag | string Deprecated Filter by specific tag. |
label | string Filter by label. |
main_ip | string Filter by main ip address. |
region | string Filter by Region id. |
firewall_group_id | string Filter by Firewall group id. |
hostname | string Filter by hostname. |
show_pending_charges | boolean Set to |
curl "https://api.vultr.com/v2/instances" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "instances": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "CentOS SELinux 8 x64",
- "ram": 2048,
- "disk": 55,
- "main_ip": "192.0.2.123",
- "vcpu_count": 1,
- "region": "atl",
- "plan": "vc2-6c-16gb",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "active",
- "allowed_bandwidth": 2000,
- "netmask_v4": "255.255.252.0",
- "gateway_v4": "192.0.2.1",
- "power_status": "running",
- "server_status": "ok",
- "v6_network": "2001:0db8:1112:18fb::",
- "v6_main_ip": "2001:0db8:1112:18fb:0200:00ff:fe00:0000",
- "v6_network_size": 64,
- "label": "Example Instance",
- "internal_ip": "",
- "hostname": "my_hostname",
- "os_id": 215,
- "app_id": 0,
- "image_id": "",
- "firewall_group_id": "",
- "features": [
- "ddos_protection",
- "ipv6",
- "auto_backups"
], - "tags": [
- "a tag",
- "another"
], - "user_scheme": "root",
- "pending_charges": 5.42
}
], - "meta": {
- "total": 3,
- "links": {
- "next": "WxYzExampleNext",
- "prev": ""
}
}
}
Create a new VPS Instance in a region
with the desired plan
. Choose one of the following to deploy the instance:
os_id
iso_id
snapshot_id
app_id
image_id
Supply other attributes as desired.
Include a JSON object in the request body with a content type of application/json.
region required | string The Region id where the Instance is located. |
plan required | string The Plan id to use when deploying this instance. |
os_id | integer The Operating System id to use when deploying this instance. |
ipxe_chain_url | string The URL location of the iPXE chainloader. |
iso_id | string The ISO id to use when deploying this instance. |
script_id | string The Startup Script id to use when deploying this instance. |
snapshot_id | string The Snapshot id to use when deploying the instance. |
enable_ipv6 | boolean Enable IPv6.
|
disable_public_ipv4 | boolean Don't set up a public IPv4 address when IPv6 is enabled. Will not do anything unless
|
attach_private_network | Array of strings Deprecated Use |
attach_vpc | Array of strings An array of VPC IDs to attach to this Instance. This parameter takes precedence over |
attach_vpc2 | Array of strings Deprecated Use |
label | string A user-supplied label for this instance. |
sshkey_id | Array of strings The SSH Key id to install on this instance. |
backups | string Enable automatic backups for the instance.
|
app_id | integer The Application id to use when deploying this instance. |
image_id | string The Application image_id to use when deploying this instance. |
user_data | string The user-supplied, base64 encoded user data to attach to this instance. |
ddos_protection | boolean Enable DDoS protection (there is an additional charge for this).
|
activation_email | boolean Notify by email after deployment.
|
hostname | string The hostname to use when deploying this instance. |
tag | string Deprecated Use |
firewall_group_id | string The Firewall Group id to attach to this Instance. |
reserved_ipv4 | string ID of the floating IP to use as the main IP of this server. |
enable_private_network | boolean Deprecated Use If This parameter attaches a single network. When no network exists in the region, it will be automatically created. If there are multiple private networks in the instance's region, use |
enable_vpc | boolean If This parameter attaches a single VPC. When no VPC exists in the region, it will be automatically created. If there are multiple VPCs in the instance's region, use |
enable_vpc2 | boolean Deprecated Use If This parameter attaches a single VPC 2.0 network. When no VPC 2.0 network exists in the region, it will be automatically created. If there are multiple VPC 2.0 networks in the instance's region, use |
tags | Array of strings Tags to apply to the instance |
user_scheme | string Linux-only: The user scheme used for logging into this instance. By default, the "root" user is configured. Alternatively, a limited user with sudo permissions can be selected.
|
app_variables | object The app variable inputs for configuring the marketplace app (name/value pairs). |
{- "region": "ewr",
- "plan": "vc2-6c-16gb",
- "label": "Example Instance",
- "os_id": 215,
- "user_data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==",
- "backups": "enabled",
- "hostname": "my_hostname",
- "tags": [
- "a tag",
- "another"
]
}
{- "instance": {
- "id": "4f0f12e5-1f84-404f-aa84-85f431ea5ec2",
- "os": "CentOS 8 Stream",
- "ram": 1024,
- "disk": 0,
- "main_ip": "0.0.0.0",
- "vcpu_count": 1,
- "region": "ewr",
- "plan": "vc2-1c-1gb",
- "date_created": "2021-09-14T13:22:20+00:00",
- "status": "pending",
- "allowed_bandwidth": 1000,
- "netmask_v4": "",
- "gateway_v4": "0.0.0.0",
- "power_status": "running",
- "server_status": "none",
- "v6_network": "",
- "v6_main_ip": "",
- "v6_network_size": 0,
- "label": "",
- "internal_ip": "",
- "kvm": "",
- "hostname": "my_hostname",
- "os_id": 401,
- "app_id": 0,
- "image_id": "",
- "firewall_group_id": "",
- "features": [ ],
- "default_password": "v5{Fkvb#2ycPGwHs",
- "tags": [
- "a tag",
- "another"
], - "user_scheme": "root"
}
}
Get information about an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "instance": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Ubuntu 20.04 x64",
- "ram": 16384,
- "disk": 384,
- "main_ip": "192.0.2.123",
- "vcpu_count": 4,
- "region": "ewr",
- "plan": "vc2-6c-16gb",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "active",
- "allowed_bandwidth": 5000,
- "netmask_v4": "255.255.254.0",
- "gateway_v4": "192.0.2.1",
- "power_status": "running",
- "server_status": "ok",
- "v6_network": "",
- "v6_main_ip": "",
- "v6_network_size": 0,
- "label": "Example Instance",
- "internal_ip": "",
- "hostname": "my_hostname",
- "os_id": 215,
- "app_id": 0,
- "image_id": "",
- "firewall_group_id": "",
- "features": [
- "ddos_protection",
- "ipv6",
- "auto_backups"
], - "tags": [
- "a tag",
- "another"
], - "user_scheme": "root",
- "pending_charges": 5.42
}
}
Update information for an Instance. All attributes are optional. If not set, the attributes will retain their original values.
Note: Changing os_id
, app_id
or image_id
may take a few extra seconds to complete.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
app_id | integer Reinstall the instance with this Application id. |
image_id | string Reinstall the instance with this Application image_id. |
backups | string Enable automatic backups for the instance.
|
firewall_group_id | string The Firewall Group id to attach to this Instance. |
enable_ipv6 | boolean Enable IPv6.
|
os_id | string Reinstall the instance with this ISO id. |
user_data | string The user-supplied, base64 encoded user data to attach to this instance. |
tag | string Deprecated Use |
plan | string Upgrade the instance with this Plan id. |
ddos_protection | boolean Enable DDoS Protection (there is an additional charge for this).
|
attach_private_network | Array of strings Deprecated Use |
attach_vpc | Array of strings An array of VPC IDs to attach to this Instance. This parameter takes precedence over |
attach_vpc2 | Array of strings Deprecated Use |
detach_private_network | Array of strings Deprecated Use |
detach_vpc | Array of strings An array of VPC IDs to detach from this Instance. This parameter takes precedence over |
detach_vpc2 | Array of strings Deprecated Use |
enable_private_network | boolean Deprecated Use If This parameter attaches a single network. When no network exists in the region, it will be automatically created. If there are multiple private networks in the instance's region, use |
enable_vpc | boolean If This parameter attaches a single VPC. When no VPC exists in the region, it will be automatically created. If there are multiple VPCs in the instance's region, use |
enable_vpc2 | boolean Deprecated Use If This parameter attaches a single VPC 2.0 network. When no VPC 2.0 network exists in the region, it will be automatically created. If there are multiple VPC 2.0 networks in the instance's region, use |
label | string The user supplied label. |
tags | Array of strings Tags to apply to the instance. |
user_scheme | string Linux-only: The user scheme used for logging into this instance. The instance must be reinstalled for this change to take effect.
|
{- "label": "Example Instance",
- "tags": [
- "a tag",
- "another"
], - "plan": "vc2-24c-97gb"
}
{- "instance": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Ubuntu 20.04 x64",
- "ram": 16384,
- "disk": 384,
- "main_ip": "192.0.2.123",
- "vcpu_count": 4,
- "region": "ewr",
- "plan": "vc2-24c-97gb",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "active",
- "allowed_bandwidth": 5000,
- "netmask_v4": "255.255.254.0",
- "gateway_v4": "192.0.2.1",
- "power_status": "running",
- "server_status": "ok",
- "v6_network": "",
- "v6_main_ip": "",
- "v6_network_size": 0,
- "label": "Example Instance",
- "internal_ip": "",
- "hostname": "my_hostname",
- "os_id": 215,
- "app_id": 0,
- "image_id": "",
- "firewall_group_id": "",
- "features": [
- "ddos_protection",
- "ipv6",
- "auto_backups"
], - "tags": [
- "a tag",
- "another"
], - "user_scheme": "root"
}
}
Delete an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Halt Instances.
Include a JSON object in the request body with a content type of application/json.
instance_ids | Array of strings The Instance IDs to halt. |
{- "instance_ids": [
- "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "1d651bd2-b93c-4bb6-8b91-0546fd765f15",
- "c2790719-278d-474c-8dff-cb35d6e5503f"
]
}
Reboot Instances.
Include a JSON object in the request body with a content type of application/json.
instance_ids | Array of strings The Instance IDs to reboot. |
{- "instance_ids": [
- "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "1d651bd2-b93c-4bb6-8b91-0546fd765f15",
- "c2790719-278d-474c-8dff-cb35d6e5503f"
]
}
Start Instances.
Include a JSON object in the request body with a content type of application/json.
instance_ids | Array of strings The Instance IDs to start. |
{- "instance_ids": [
- "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "1d651bd2-b93c-4bb6-8b91-0546fd765f15",
- "c2790719-278d-474c-8dff-cb35d6e5503f"
]
}
Start an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/start" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Reboot an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/reboot" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Reinstall an Instance using an optional hostname
.
Note: This action may take a few extra seconds to complete.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
hostname | string The hostname to use when reinstalling this instance. |
{- "hostname": "my_new_hostname"
}
{- "instance": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "os": "Ubuntu 20.04 x64",
- "ram": 16384,
- "disk": 384,
- "main_ip": "192.0.2.123",
- "vcpu_count": 4,
- "region": "ewr",
- "plan": "vc2-6c-16gb",
- "date_created": "2020-10-10T01:56:20+00:00",
- "status": "active",
- "allowed_bandwidth": 5000,
- "netmask_v4": "255.255.254.0",
- "gateway_v4": "192.0.2.1",
- "power_status": "running",
- "server_status": "ok",
- "v6_network": "",
- "v6_main_ip": "",
- "v6_network_size": 0,
- "label": "Example Instance",
- "internal_ip": "",
- "hostname": "my_new_hostname",
- "tag": "Example Tag",
- "os_id": 215,
- "app_id": 0,
- "image_id": "",
- "firewall_group_id": "",
- "features": [
- "ddos_protection",
- "ipv6",
- "auto_backups"
]
}
}
Get bandwidth information about an Instance.
The bandwidth
object in a successful response contains objects representing a day in the month. The date is denoted by the nested object keys. Days begin and end in the UTC timezone. The bandwidth utilization data contained within the date object is refreshed periodically. We do not recommend using this endpoint to gather real-time metrics.
instance-id required | string The Instance ID. |
date_range | integer The range of days to include, represented as the number of days relative to the current date. Default 30, Minimum 1 and Max 180. |
curl "https://api.vultr.com/v2/instances/{instance-id}/bandwidth" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "bandwidth": {
- "2020-07-25": {
- "incoming_bytes": 15989787,
- "outgoing_bytes": 25327729
}, - "2020-07-26": {
- "incoming_bytes": 13964112,
- "outgoing_bytes": 22257069
}
}
}
Get a list of other instances in the same location as this Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/neighbors" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "neighbors": [
- "478dbfe7-43f8-4dc8-940c-8bb61f547400",
- "a8047e6b-16bd-42be-8351-58df7e5ab89c"
]
}
Deprecated: use List Instance VPCs instead.
List the private networks for an Instance.
instance-id required | string The Instance ID. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/instances/{instance-id}/private-networks" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "private_networks": [
- {
- "network_id": "d325e78b-bcec-4d4e-b9b8-9c294f37b04d",
- "mac_address": "00:00:5e:00:53:5e",
- "ip_address": "10.99.0.123"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
List the VPCs for an Instance.
instance-id required | string The Instance ID. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/instances/{instance-id}/vpcs" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpcs": [
- {
- "id": "d325e78b-bcec-4d4e-b9b8-9c294f37b04d",
- "mac_address": "00:00:5e:00:53:5e",
- "ip_address": "10.99.0.123"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
List the VPC 2.0 networks for an Instance.
Deprecated: Migrate to VPC Networks and use List Instance VPCs instead.
instance-id required | string The Instance ID. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/instances/{instance-id}/vpc2" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpcs": [
- {
- "id": "d325e78b-bcec-4d4e-b9b8-9c294f37b04d",
- "mac_address": "00:00:5e:00:53:5e",
- "ip_address": "10.99.0.123"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get the ISO status for an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/iso" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "iso_status": {
- "state": "ready",
- "iso_id": "0532a75b-14e8-48b8-b27e-1ebcf382a804"
}
}
Attach an ISO to an Instance.
instance-id required | string |
Include a JSON object in the request body with a content type of application/json.
iso_id | string The ISO id to attach to this Instance. |
{- "iso_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
{- "iso_status": {
- "status": "ismounting",
- "iso_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
}
Detach the ISO from an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/iso/detach" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "iso_status": {
- "status": "isunmounting"
}
}
Attach Private Network to an Instance.
Deprecated: use Attach VPC to Instance instead.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
network_id | string The Private Network id to attach to this Instance. |
{- "network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
Detach Private Network from an Instance.
Deprecated: use Detach VPC from Instance instead.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
network_id | string The Private Network id to detach from this Instance. |
{- "network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
Attach a VPC to an Instance.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id | string The VPC ID to attach to this Instance. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
Detach a VPC from an Instance.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id | string The VPC ID to detach from this Instance. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
Attach a VPC 2.0 Network to an Instance.
Deprecated: Migrate to VPC Networks and use Attach VPC to Instance instead.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id required | string The VPC ID to attach to this Instance. |
ip_address | string The IP address to use for this instance on the attached VPC 2.0 network. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "ip_address": "10.1.144.4"
}
Detach a VPC 2.0 Network from an Instance.
Deprecated: Migrate to VPC Networks and use Detach VPC from Instance instead.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
vpc_id required | string The VPC ID to detach from this Instance. |
{- "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
Set the backup schedule for an Instance in UTC. The type
is required.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
type required | string Type of backup schedule:
| ||||||||||||||||||||||||
hour | integer Hour of day to run in UTC. | ||||||||||||||||||||||||
dow | integer Day of week to run.
| ||||||||||||||||||||||||
dom | integer Day of month to run. Use values between 1 and 28. |
{- "type": "daily",
- "hour": 10,
- "dow": 1,
- "dom": 1
}
Get the backup schedule for an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/backup-schedule" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "backup_schedule": {
- "enabled": true,
- "type": "daily",
- "next_scheduled_time_utc": "2020-07-28 00:00:00",
- "hour": 10,
- "dow": 1,
- "dom": 1
}
}
Restore an Instance from either backup_id
or snapshot_id
.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
backup_id | string The Backup id used to restore this instance. |
snapshot_id | string The Snapshot id used to restore this instance. |
{- "backup_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
{- "status": {
- "restore_type": "backup_id",
- "restore_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "status": "inprogress"
}
}
List the IPv4 information for an Instance.
instance-id required | string The Instance ID. |
public_network | boolean If |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "ipv4s": [
- {
- "ip": "192.0.2.123",
- "netmask": "255.255.254.0",
- "gateway": "192.0.2.1",
- "type": "main_ip",
- "reverse": "host1.example.com"
}, - {
- "ip": "203.0.113.123",
- "netmask": "255.255.255.255",
- "gateway": "",
- "type": "secondary_ip",
- "reverse": "host2.example.com"
}, - {
- "ip": "10.99.0.123",
- "netmask": "255.255.0.0",
- "gateway": "",
- "type": "private",
- "reverse": ""
}
], - "meta": {
- "total": 3,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create an IPv4 address for an Instance.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
reboot | boolean Set if the server is rebooted immediately after the IPv4 address is created.
|
{- "reboot": true
}
{- "ipv4": {
- "ip": "192.0.2.123",
- "netmask": "255.255.254.0",
- "gateway": "192.0.2.1",
- "type": "secondary_ip",
- "reverse": "192.0.2.123.vultr.com"
}
}
Get the IPv6 information for an VPS Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "ipv6s": [
- {
- "ip": "2001:0db8:5:6bb:5400:02ff:fee5:3fe3",
- "network": "2001:0db8:5:6bb::",
- "network_size": 64,
- "type": "main_ip"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a reverse IPv6 entry for an Instance. The ip
and reverse
attributes are required. IP address must be in full, expanded format.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
ip required | string The IPv6 address in full, expanded format. |
reverse required | string The IPv6 reverse entry. |
{- "ip": "2001:0db8:0005:6bb0:5400:2ff0:fee5:0002",
- "reverse": "foo.example.com"
}
List the reverse IPv6 information for an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "reverse_ipv6s": [
- {
- "ip": "2001:0db8:5:6bb:5400:2ff:fee5:1",
- "reverse": "foo.example.com"
}
]
}
Create a reverse IPv4 entry for an Instance. The ip
and reverse
attributes are required.
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
ip required | string The IPv4 address. |
reverse required | string The IPv4 reverse entry. |
{- "ip": "192.0.2.123",
- "reverse": "foo.example.com"
}
Get the user-supplied, base64 encoded user data for an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/user-data" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "user_data": {
- "data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}
}
Halt an Instance.
instance-id required | string The Instance ID. |
curl "https://api.vultr.com/v2/instances/{instance-id}/halt" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Set a reverse DNS entry for an IPv4 address
instance-id required | string The Instance ID. |
Include a JSON object in the request body with a content type of application/json.
ip required | string |
{- "ip": "192.0.2.123"
}
Delete an IPv4 address from an Instance.
instance-id required | string The Instance ID. |
ipv4 required | string The IPv4 address. |
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4/{ipv4}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Delete the reverse IPv6 for an Instance.
instance-id required | string The Instance ID. |
ipv6 required | string The IPv6 address. |
curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse/{ipv6}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get available upgrades for an Instance
instance-id required | string The Instance ID. |
type | string Filter upgrade by type:
|
curl "https://api.vultr.com/v2/instances/{instance-id}/upgrades" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "upgrades": {
- "os": [
- {
- "id": 900,
- "name": "Example CentOS 6 x64",
- "arch": "x64",
- "family": "centos"
}, - {
- "id": 901,
- "name": "Example CentOS 6 i386",
- "arch": "i386",
- "family": "centos"
}
], - "applications": [
- {
- "id": 1,
- "name": "LEMP",
- "short_name": "lemp",
- "deploy_name": "LEMP on CentOS 6 x64",
- "type": "one-click",
- "vendor": "vultr",
- "image_id": ""
}, - {
- "id": 39,
- "name": "LEMP",
- "short_name": "lemp",
- "deploy_name": "LEMP on CentOS 7 x64",
- "type": "one-click",
- "vendor": "vultr",
- "image_id": ""
}, - {
- "id": 1028,
- "name": "OpenLiteSpeed WordPress",
- "short_name": "openlitespeedwordpress",
- "deploy_name": "OpenLiteSpeed WordPress on Ubuntu 20.04 x64",
- "type": "marketplace",
- "vendor": "LiteSpeed_Technologies",
- "image_id": "openlitespeed-wordpress"
}
], - "plans": [
- "vc2-2c-4gb",
- "vc2-4c-8gb",
- "vc2-6c-16gb",
- "vc2-8c-64gb",
- "vc2-16c-64gb",
- "vc2-24c-97gb"
]
}
}
Upload and boot instances from your ISO, or choose one from our public ISO library. See our ISO documentation.
Get the ISOs in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/iso" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "isos": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "filename": "my-iso.iso",
- "size": 120586240,
- "md5sum": "77ba289bdc966ec996278a5a740d96d8",
- "sha512sum": "2b31b6fcab34d6ea9a6b293601c39b90cb044e5679fcc5",
- "status": "complete"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new ISO in your account from url
.
Include a JSON object in the request body with a content type of application/json.
url required | string Public URL location of the ISO image to download. Example: https://example.com/my-iso.iso |
{
}
{- "iso": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "filename": "my-iso.iso",
- "status": "pending"
}
}
Get information for an ISO.
iso-id required | string The ISO id. |
curl "https://api.vultr.com/v2/iso/{iso-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "iso": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "filename": "my-iso.iso",
- "size": 120586240,
- "md5sum": "77ba289bdc966ec996278a5a740d96d8",
- "sha512sum": "2b31b6fcab34d6ea9a6b293601c39b90cb044e5679fcc5",
- "status": "complete"
}
}
Delete an ISO.
iso-id required | string The ISO id. |
curl "https://api.vultr.com/v2/iso/{iso-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
curl "https://api.vultr.com/v2/iso-public" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "public_isos": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b604",
- "name": "CentOS 7",
- "description": "7 x86_64 Minimal",
- "md5sum": "7f4df50f42ee1b52b193e79855a3aa19"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create Kubernetes Cluster
Request Body
label | string The label for your Kubernetes cluster. |
region required | string Region you want to deploy VKE in. See Regions for more information. |
version required | string Version of Kubernetes you want to deploy. |
vpc_id | string The VPC id to use when deploying this VKE. Omitting or leaving this empty will configure a new VPC network with this deployment. |
ha_controlplanes | boolean Whether a highly available control planes configuration should be deployed
|
enable_firewall | boolean Whether a Firewall Group should be deployed and managed by this cluster
|
Array of objects |
{- "label": "vke",
- "region": "lax",
- "version": "v1.20.0+1",
- "node_pools": [
- {
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "label": "my-label",
- "plan": "vc2-1c-2gb",
- "tag": "my-tag"
}
]
}
{- "vke_cluster": {
- "id": "455dcd32-e621-48ee-a10e-0cb5f754e13e",
- "firewall_group_id": "",
- "label": "vke",
- "date_created": "2021-07-07T22:57:01+00:00",
- "cluster_subnet": "10.244.0.0/16",
- "service_subnet": "10.96.0.0/12",
- "ip": "0.0.0.0",
- "endpoint": "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com",
- "version": "v1.20.0+1",
- "region": "lax",
- "status": "pending",
- "ha_controlplanes": false,
- "node_pools": [
- {
- "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e",
- "date_created": "2021-07-07T22:57:01+00:00",
- "date_updated": "2021-07-07T22:58:44+00:00",
- "label": "my-label",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "pending",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0",
- "label": "my-label-6ac60e6313dd1",
- "date_created": "2021-07-07T22:57:01+00:00",
- "status": "pending"
}, - {
- "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c",
- "label": "my-label-6ac60e6313ddc",
- "date_created": "2021-07-07T22:57:01+00:00",
- "status": "pending"
}
]
}
]
}
}
List all Kubernetes clusters currently deployed
{- "vke_clusters": [
- {
- "id": "c907e832-3080-48a6-a54d-7379e645c0b7",
- "label": "my-vke",
- "date_created": "2021-07-02T12:12:43+00:00",
- "cluster_subnet": "10.244.0.0/16",
- "service_subnet": "10.96.0.0/12",
- "ip": "8.9.30.155",
- "endpoint": "c907e832-3080-48a6-a54d-7379e645c0b7.vultr-k8s.com",
- "version": "v1.20.0+1",
- "region": "ewr",
- "status": "active",
- "ha_controlplanes": false,
- "node_pools": [
- {
- "id": "74de1914-63ea-4a78-9da5-b7220063c701",
- "date_created": "2021-07-02T12:12:44+00:00",
- "date_updated": "2021-07-03T12:12:44+00:00",
- "label": "nodepool",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "active",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "cafd4673-2a62-49c4-a045-44d05ecc0a7b",
- "label": "nodepool-6a960df02bc1b",
- "date_created": "2021-07-02T12:12:44+00:00",
- "status": "active"
}, - {
- "id": "5fc5ae88-f73e-46b5-9fa1-ac5ed8dcd33c",
- "label": "nodepool-6a960df02bc25",
- "date_created": "2021-07-02T12:12:44+00:00",
- "status": "active"
}
]
}
]
}, - {
- "id": "455dcd32-e621-48ee-a10e-0cb5f754e13e",
- "label": "vke",
- "date_created": "2021-07-07T22:57:01+00:00",
- "cluster_subnet": "10.244.0.0/16",
- "service_subnet": "10.96.0.0/12",
- "ip": "207.246.109.187",
- "endpoint": "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com",
- "version": "v1.20.0+1",
- "region": "lax",
- "status": "active",
- "node_pools": [
- {
- "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e",
- "date_created": "2021-07-07T22:57:01+00:00",
- "date_updated": "2021-07-08T12:12:44+00:00",
- "label": "my-label",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "active",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0",
- "label": "my-label-6ac60e6313dd1",
- "date_created": "2021-07-07T22:57:01+00:00",
- "status": "active"
}, - {
- "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c",
- "label": "my-label-6ac60e6313ddc",
- "date_created": "2021-07-07T22:57:01+00:00",
- "status": "active"
}
]
}
]
}
], - "meta": {
- "total": 2,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get Kubernetes Cluster
vke-id required | string The VKE ID. |
{- "vke_cluster": {
- "id": "455dcd32-e621-48ee-a10e-0cb5f754e13e",
- "firewall_group_id": "",
- "label": "vke",
- "date_created": "2021-07-07T22:57:01+00:00",
- "cluster_subnet": "10.244.0.0/16",
- "service_subnet": "10.96.0.0/12",
- "ip": "207.246.109.187",
- "endpoint": "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com",
- "version": "v1.20.0+1",
- "region": "lax",
- "status": "active",
- "ha_controlplanes": false,
- "node_pools": [
- {
- "id": "11e4443a-f92a-46d6-94c8-61c1a1a7514e",
- "date_created": "2021-07-07T22:57:01+00:00",
- "date_updated": "2021-07-08T12:12:44+00:00",
- "label": "my-label",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "active",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "43eda5c8-67f7-4c63-88bc-2f568b48b2b0",
- "label": "my-label-6ac60e6313dd1",
- "date_created": "2021-07-07T22:57:01+00:00",
- "status": "active"
}, - {
- "id": "15a7893d-d584-45d5-a74c-d9f46866aa3c",
- "label": "my-label-6ac60e6313ddc",
- "date_created": "2021-07-07T22:57:01+00:00",
- "status": "active"
}
]
}
]
}
}
Update Kubernetes Cluster
vke-id required | string The VKE ID. |
Request Body
label required | string Label for the Kubernetes cluster |
{- "label": "my new label"
}
Delete Kubernetes Cluster
vke-id required | string The VKE ID. |
Get the block storage volumes and load balancers deployed by the specified Kubernetes cluster.
vke-id required | string The VKE ID. |
{- "resources": {
- "block_storage": [
- {
- "id": "29479a12-6edd-48cf-a883-24eccafab094",
- "label": "29479a12-6edd-48cf-a883-24eccafab094",
- "date_created": "2021-07-29T16:41:07+00:00",
- "status": "active"
}, - {
- "id": "0fa3097e-aef9-475e-958a-56f697ed3998",
- "label": "0fa3097e-aef9-475e-958a-56f697ed3998",
- "date_created": "2021-08-04T15:34:50+00:00",
- "status": "pending"
}
], - "load_balancer": [
- {
- "id": "369ed902-2ec4-4a22-b959-cb1709394c3a",
- "label": "369ed902-2ec4-4a22-b959-cb1709394c3a",
- "date_created": "2021-07-29T16:46:12+00:00",
- "status": "active"
}
]
}
}
Get the available upgrades for the specified Kubernetes cluster.
vke-id required | string The VKE ID. |
curl "https://api.vultr.com/v2/kubernetes/clusters/{vke-id}/available-upgrades" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "available_upgrades": [
- "v1.22.8+3",
- "v1.21.11+3"
]
}
Start a Kubernetes cluster upgrade.
vke-id required | string The VKE ID. |
Request Body
upgrade_version required | string The version you're upgrading to. |
{- "upgrade_version": "v1.22.8+3"
}
Create NodePool for a Existing Kubernetes Cluster
vke-id required | string The VKE ID. |
Request Body
node_quantity required | integer Number of instances in this nodepool |
label required | string Label for the nodepool. You cannot change the label after a nodepool is created. You cannot have duplicate node pool labels in the same cluster. |
plan required | string Plan that this nodepool will use |
tag | string Tag for node pool |
auto_scaler | boolean Option to use the auto scaler with your cluster. Default false. |
min_nodes | integer Auto scaler field for minimum nodes you want for your cluster. Default 1. |
max_nodes | integer Auto scaler field for maximum nodes you want for your cluster. Default 1. |
labels | object Map of key/value pairs defining labels to automatically apply to all nodes in this nodepool. Labels will be applied to both new and existing nodes. |
taints | Array of arrays Array of objects containing key, value, and effect. |
{- "node_quantity": 2,
- "label": "nodepool",
- "plan": "vc2-1c-2gb",
- "tag": "my-tag",
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true
}
{- "node_pool": {
- "id": "4130764b-5276-4552-546f-32513239732b",
- "date_created": "2021-07-07T23:29:18+00:00",
- "date_updated": "2021-07-08T23:29:18+00:00",
- "label": "nodepool",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "pending",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "2f863151-d784-4184-804e-31e4e60945bd",
- "label": "nodepool-6c360e638ce61",
- "date_created": "2021-07-07T23:29:18+00:00",
- "status": "pending"
}, - {
- "id": "73a459dc-293f-4c2b-92f7-61be459a033b",
- "label": "nodepool-6c360e638ce6c",
- "date_created": "2021-07-07T23:29:18+00:00",
- "status": "pending"
}
], - "labels": { },
- "taints": [ ]
}
}
List all available NodePools on a Kubernetes Cluster
vke-id required | string The VKE ID. |
{- "node_pools": [
- {
- "id": "e97bdee9-2781-4f31-be03-60fc75f399ae",
- "date_created": "2021-07-07T23:27:08+00:00",
- "date_updated": "2021-07-08T12:12:44+00:00",
- "label": "my-label",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "active",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "f2e11430-76e5-4dc6-a1c9-ef5682c21ddf",
- "label": "my-label-44060e6384c45",
- "date_created": "2021-07-07T23:27:08+00:00",
- "status": "active"
}, - {
- "id": "c0a160eb-a7bc-4377-a6fb-52a9531167ca",
- "label": "my-label-44060e6384c50",
- "date_created": "2021-07-07T23:27:08+00:00",
- "status": "active"
}
]
}, - {
- "id": "4130764b-5276-4552-546f-32513239732b",
- "date_created": "2021-07-07T23:29:18+00:00",
- "label": "nodepool",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "active",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "2f863151-d784-4184-804e-31e4e60945bd",
- "label": "nodepool-6c360e638ce61",
- "date_created": "2021-07-07T23:29:18+00:00",
- "status": "active"
}, - {
- "id": "73a459dc-293f-4c2b-92f7-61be459a033b",
- "label": "nodepool-6c360e638ce6c",
- "date_created": "2021-07-07T23:29:18+00:00",
- "status": "active"
}
]
}
], - "meta": {
- "total": 2,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get Nodepool from a Kubernetes Cluster
vke-id required | string The VKE ID. |
nodepool-id required | string The NodePool ID. |
{- "node_pool": {
- "id": "e97bdee9-2781-4f31-be03-60fc75f399ae",
- "date_created": "2021-07-07T23:27:08+00:00",
- "date_updated": "2021-07-08T12:12:44+00:00",
- "label": "my-label",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "active",
- "node_quantity": 2,
- "min_nodes": 2,
- "max_nodes": 5,
- "auto_scaler": true,
- "nodes": [
- {
- "id": "f2e11430-76e5-4dc6-a1c9-ef5682c21ddf",
- "label": "my-label-44060e6384c45",
- "date_created": "2021-07-07T23:27:08+00:00",
- "status": "active"
}, - {
- "id": "c0a160eb-a7bc-4377-a6fb-52a9531167ca",
- "label": "my-label-44060e6384c50",
- "date_created": "2021-07-07T23:27:08+00:00",
- "status": "active"
}
]
}
}
Update a Nodepool on a Kubernetes Cluster
vke-id required | string The VKE ID. |
nodepool-id required | string The NodePool ID. |
Request Body
node_quantity | integer Number of instances in the NodePool. Minimum of 1 is required, but at least 3 is recommended. |
tag | string Tag for your node pool |
auto_scaler | boolean Option to use the auto scaler for your cluster. Default false. |
min_nodes | integer Auto scaler field for minimum nodes you want for your cluster. Default 1. |
max_nodes | integer Auto scaler field for maximum nodes you want for your cluster. Default 1. |
labels | object Map of key/value pairs defining labels to automatically apply to all nodes in this nodepool. Labels will be applied to both new and existing nodes. |
taints | Array of arrays Array of objects containing key, value, and effect. |
{- "node_quantity": 1,
- "tag": "my-tag",
- "min_nodes": 1,
- "max_nodes": 5,
- "auto_scaler": true
}
{- "node_pool": {
- "id": "e97bdee9-2781-4f31-be03-60fc75f399ae",
- "date_created": "2021-07-07T23:27:08+00:00",
- "date_updated": "2021-07-08T12:12:44+00:00",
- "label": "my-label",
- "tag": "my-tag",
- "plan": "vc2-1c-2gb",
- "status": "active",
- "node_quantity": 1,
- "min_nodes": 1,
- "max_nodes": 5,
- "auto_scaler": true,
- "labels": { },
- "taints": [ ],
- "nodes": [
- {
- "id": "f2e11430-76e5-4dc6-a1c9-ef5682c21ddf",
- "label": "my-label-44060e6384c45",
- "date_created": "2021-07-07T23:27:08+00:00",
- "status": "active"
}
]
}
}
Delete a NodePool from a Kubernetes Cluster
vke-id required | string The VKE ID. |
nodepool-id required | string The NodePool ID. |
Delete a single nodepool instance from a given Nodepool
vke-id required | string The VKE ID. |
nodepool-id required | string The NodePool ID. |
node-id required | string The Instance ID. |
Recycle a specific NodePool Instance
vke-id required | string The VKE ID. |
nodepool-id required | string The NodePool ID. |
node-id required | string Node ID |
Get Kubernetes Cluster Kubeconfig
vke-id required | string The VKE ID. |
{- "kube_config": "YXBpdmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VSblZFTkRRVzF0WjBGM1NVSkJaMGxKU2psdFN6bEViRk5pY0RSM1JGRlpTa3R2V2tsb2RtTk9RVkZGVEVKUlFYZFVla1ZNVFVGclIwRXhWVVVLUW1oTlExWldUWGhHYWtGVlFtZE9Wa0pCWTFSRVZrNW9ZbWxDUjJOdFJuVlpNbXg2V1RJNGVFVjZRVkpDWjA1V1FrRnZWRU5yZERGWmJWWjVZbTFXTUFwYVdFMTRSWHBCVWtKblRsWkNRVTFVUTJ0ME1WbHRWbmxpYlZZd1dsaE5kMGhvWTA1TmFrVjNUbnBCZVUxVVNYaE5la0Y1VjJoalRrMXFTWGRPZWtGNUNrMVVTWGhOZWtGNVYycENVRTFSYzNkRFVWbEVWbEZSUjBWM1NsWlZla1ZYVFVKUlIwRXhWVVZDZUUxT1ZUSkdkVWxGV25sWlZ6VnFZVmhPYW1KNlJWUUtUVUpGUjBFeFZVVkRhRTFMVXpOV2FWcFlTblZhV0ZKc1kzcEZWRTFDUlVkQk1WVkZRWGhOUzFNelZtbGFXRXAxV2xoU2JHTjZRME5CVTBsM1JGRlpTZ3BMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRk1laTlITXpOaVlWZG5TMU5GVmpKQ2RsQlhZbWd6WkhZclYybEhOVlJqQ2s1bllVTlZNMlJWVm5KdGNtaHVXbVJPYWtkTVl5OUJTR3RIWm1OaVIxQlRXbkJ2UVZCbWFuaGtWRTA0WlVOTFlXdGxkR0Z6YkRsdFNDOVhlVTlETXpnS1pGcEZVWGRSZWpseFIzWnpaa3BTT0RKQ01WWTBWM3AxUVdRMEwxSmtaVGxqU3psaVdIWktkRUZMU2xrNVF6aG9VM2RtTDNNM1drRlNabGxYYTIxb1R3cHZkSHBFUnpaR2JtaFljSFJtUkRZdmRXNXNXRWhyYTNveFVHSjZhR1Z2ZG5adU9GUkNUamR2UWpkTVdUaG9kRE5tVTBJeFEwSlRTMGxxV1hsaGJEaHJDbU5XZVU1R1MyUndVRVoxV0ZvelkyYzRaMHN2ZUROS1VXZHBLMGxqVTA0Mk9GZDJaa3gxYXpjM2JXOXNWWE5IY25neWNWRkZTa2RwU2k5SGEzUm5kMndLWlVnNU1FbHpMMkZDZERjd1dsaG9aM2cyTnpkSmVuTnVWMnN3UWpWSFlVeGpaRk5oYUN0WlNraGthbkpMU0N0R01qVTNWekpvTUVOQmQwVkJRV0ZPYUFwTlJqaDNSR2RaUkZaU01GQkJVVWd2UWtGUlJFRm5TMFZOUWpCSFFURlZaRXBSVVZkTlFsRkhRME56UjBGUlZVWkNkMDFEUW1kbmNrSm5SVVpDVVdORUNrRlVRVkJDWjA1V1NGSk5Ra0ZtT0VWQ1ZFRkVRVkZJTDAxQ01FZEJNVlZrUkdkUlYwSkNVME5EVWtoSmFERm1XbnBzU210MFMwVmtOalpITVZWWGRqQUtNRVJCVGtKbmEzRm9hMmxIT1hjd1FrRlJjMFpCUVU5RFFWRkZRV0V3VG1SUVlYa3dPREp0YVcxWllUa3ZOVVpMY1hWa1YwSmpabVpHVkVScFdrTmljUXA1YVUxNFZXeEVTQzl6Tm1Od1YzbEJORXRuY0ZGRWMySXdiM0pzYTNwTk1ERjNieTlsTUc1clUxTTFVVkIyWVZvNU9FaFNObFlyTUV4a0swZzViM1JCQ2xZM2VUbEdlQzlJVUhCdldGWTJhVWswYWpCaVpFdFBNMHQ0VUZKVWRsaDFRMUZETTNRd2FHc3pjVnBRSzFSalNEaHhWRTV6VkVwb1JGTnlSMWRLUjNvS1dqZ3liMGwwY0c5RVRsaEJZVUpqYmxSRmNUUkNXRzFoTTJVNVJHSkpVMU5SZW5aaGFIYzBWMkZwVTFWNGVYUllVakJ5Um1oaFpFUnpkbFJuVVhZNGF3cEdlbkV5TjNkS2RUaHZUV2hIWTJWb2VGUlRXVUpyWjNGWVUzYzNPR2xsTVZadk1XVlBMMGxTYlhsM1ZtMWlhM2M1TWswcldtZFdOV0Z3VERCNlNYRnNDbFEzWmtkekszWTViREkwYkM4eGFIbExVekZCU1ZKTmVrRkljMGw1YVdWdE1GUkZUM0Z6WVVVNVFYWjBlWEZZZEZKblBUMEtMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIHNlcnZlcjogaHR0cHM6Ly9jOTA3ZTgzMi0zMDgwLTQ4YTYtYTU0ZC03Mzc5ZTY0NWMwYjcudnVsdHItazhzLmNvbTo2NDQzCiAgbmFtZTogdmtlCmNvbnRleHRzOgotIGNvbnRleHQ6CiAgICBjbHVzdGVyOiB2a2UKICAgIHVzZXI6IGFkbWluCiAgbmFtZTogdmtlCmN1cnJlbnQtY29udGV4dDogdmtlCmtpbmQ6IENvbmZpZwpwcmVmZXJlbmNlczoge30KdXNlcnM6Ci0gbmFtZTogYWRtaW4KICB1c2VyOgogICAgY2xpZW50LWNlcnRpZmljYXRlLWRhdGE6IExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJWUkVORFFXcHBaMEYzU1VKQlowbEpUVmg0VTFOSGRFRnliR2QzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpSUVhkVWVrVk1UVUZyUjBFeFZVVUtRbWhOUTFaV1RYaEdha0ZWUW1kT1ZrSkJZMVJFVms1b1ltbENSMk50Um5WWk1teDZXVEk0ZUVWNlFWSkNaMDVXUWtGdlZFTnJkREZaYlZaNVltMVdNQXBhV0UxNFJYcEJVa0puVGxaQ1FVMVVRMnQwTVZsdFZubGliVll3V2xoTmQwaG9ZMDVOYWtWM1RucEJlVTFVU1hoTmVrRjVWMmhqVGsxcVNYZE9la0Y1Q2sxVVNYaE5la0Y1VjJwQ1QwMVJjM2REVVZsRVZsRlJSMFYzU2xaVmVrVlhUVUpSUjBFeFZVVkNlRTFPVlRKR2RVbEZXbmxaVnpWcVlWaE9hbUo2UlZnS1RVSlZSMEV4VlVWRGFFMVBZek5zZW1SSFZuUlBiVEZvWXpOU2JHTnVUWGhFYWtGTlFtZE9Wa0pCVFZSQ1YwWnJZbGRzZFUxSlNVSkpha0ZPUW1kcmNRcG9hMmxIT1hjd1FrRlJSVVpCUVU5RFFWRTRRVTFKU1VKRFowdERRVkZGUVhselRIVndNSHBvYXpsUFVHODVWa05TTUZSbmJ6UTFORThyV0hOTVEyUXhDbE5CWVdKNmFtMVJaM1pEVVZKeFdEaEZUa0Z0VW5kbVdFUjNaRkJMWTFkbmFtcHpRaTlQU2pSR2F6TmpWWFZIVVdkNmFrRkRXVVJYVjNBM1RWaG1TM1VLVm5GeVNGTmtZMnhQWVV0dEwwbGpNMEkxWVd0a1pYcGxRVFJ4UzFGRlRrbFVSbXR1VkdSWVJ6RTFVV3MxU2tNMGNIWXpaa3M1ZUhVMldqZHhjVmRXVlFwdmVFMXdjR2huV1hGWFVsUkNSMnByT0hSRk5sbDZOazVZZGs5NkwxVXpNWEprV0ZOVFluYzRWakpxTUdnNU1FTlRMMkZLVkN0U01sRmxNRWh3YkZNeUNsSjBWek0yYlRjMFVGaHpXRGQ2Ym1aTVZWZEpaMGQxYjBvNVdYTkJNRFphUTFSVllrdFNTekV2V0haRmFGZHVPSGRtWTFCblRHTXlRWEJRTnpsMVlYa0taV0phZVV4SmFXOWFXRXRNVERWQ05tcEZaVkZWV2pGWlRFTjNSV0pCTXpWYVdYSm1lRTVCUmsxcFUwcDFTMnhhUlRWSGNYRlJTVVJCVVVGQ2IzcEZkd3BNZWtGUFFtZE9Wa2hST0VKQlpqaEZRa0ZOUTBGdlVYZElVVmxFVmxJd2JFSkNXWGRHUVZsSlMzZFpRa0pSVlVoQmQwbEhRME56UjBGUlZVWkNkMDFDQ2sxQk1FZERVM0ZIVTBsaU0wUlJSVUpEZDFWQlFUUkpRa0ZSUWpWbUwwdHJVVGxRV1d4WE1uQllUek13V1dSYVZHMUlhbWRhTm10RlFUUmhVelJvVWs4S2NqSldSbHBwUjBoUVluZGFZMjVuZFc1UVRXTnJaRmh2UWs5a1dsVkhkelpoYkUxaVFVOUZhRlpIUVVOSU5IcEhkM2RUUlZrMk5HRTJVV0ZsVFVaSWF3cHZkalU1UW1GclJIZFJkVlprTVdoMk1rcFZkMXB3WTFsTVZUZE5PWGRLWTI5a09FODBNM0EyVGxwTmNrVjBObHB2YmtsSWJGbEpkMGhFTWxWaGVYcHZDamhUVkhWeWNXVm5jakJvYzAwd1ltWlFRbkZzY25CdE9VTXZOV2hVVjJVemJ6STJiRFpNUTBabWFFdzBaamN5VURSaWFYWnNkVTVoYVc5UFp6QXZXVVlLZFVwd09WUjZkMnRuUWtSVE9DOU5hVTFUVDFwSFpVdHlia2hWYlhKa2FGbHpSbTFCVVRCRVRYWlJiMnh1TWtwVlRYSXlkWE4yU0VGcFJGWm9PVkZMWlFwM1lrSlRMMlJ3UW04M09UbEZRWHBpWkdaclpIcG5iVWhDU2k5WU4wVjNNR3B4Tm5Nek5YTkRNMUpqY0dNNFJrd0tMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIGNsaWVudC1rZXktZGF0YTogTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGYjJkSlFrRkJTME5CVVVWQmVYTk1kWEF3ZW1ock9VOVFiemxXUTFJd1ZHZHZORFUwVHl0WWMweERaREZUUVdGaWVtcHRVV2QyUTFGU2NWZzRDa1ZPUVcxU2QyWllSSGRrVUV0alYyZHFhbk5DTDA5S05FWnJNMk5WZFVkUlozcHFRVU5aUkZkWGNEZE5XR1pMZFZaeGNraFRaR05zVDJGTGJTOUpZek1LUWpWaGEyUmxlbVZCTkhGTFVVVk9TVlJHYTI1VVpGaEhNVFZSYXpWS1F6Undkak5tU3psNGRUWmFOM0Z4VjFaVmIzaE5jSEJvWjFseFYxSlVRa2RxYXdvNGRFVTJXWG8yVGxoMlQzb3ZWVE14Y21SWVUxTmlkemhXTW1vd2FEa3dRMU12WVVwVUsxSXlVV1V3U0hCc1V6SlNkRmN6Tm0wM05GQlljMWczZW01bUNreFZWMGxuUjNWdlNqbFpjMEV3TmxwRFZGVmlTMUpMTVM5WWRrVm9WMjQ0ZDJaalVHZE1ZekpCY0ZBM09YVmhlV1ZpV25sTVNXbHZXbGhMVEV3MVFqWUtha1ZsVVZWYU1WbE1RM2RGWWtFek5WcFpjbVo0VGtGR1RXbFRTblZMYkZwRk5VZHhjVkZKUkVGUlFVSkJiMGxDUVVKaWN6VXpUQzlJUm5CTmFESmpjd3A1Tm5WdVVFRmpRMHQwU1VzNGVVMXBObll6VkRCWVdVWjVSRTFzTlVGdk5EVnJSVFJhTjNWTlVsZExjbTUxV0VsT1NtdG5WSFE0Tmpndk1FSnVURWMyQ2xVd05tazRaMDlvUkRWME4ySlFkMHRZYlM5eFN6RktUVUY1WkRkSWIzQmhPVE4yYVV0dlNYa3pMemxwWjB4Tk0yRkZkRXB2Vlc5S2NUaDJaMDFxVDNRS2MxWk5aMVJWVmpKVVVYZGFUR056ZEdFNU5YTlphamh1V214S2QyczNhSHBFTmtFemNUSTBhRVJ0YUU1a2FUZ3dSSEJEVDJjMk1IbFpTaXQ2Y0dab1dBcHZORkJPTlhsTVZGaFhkSG80SzJ0UllqaDZaR3B0Wms5a1pHVnJaeTlOTTA1T1pUY3JPRVZHV2tJMWExWkRkbEV3UmxoSVIxRlZPREUzV1dNdlNEZHZDamhpVFZsM2QySlZRbEppTkdobmVWWnZkemxVV2s5YVkwMXVMM2xoYVd3M1JtVmljblpGU2s5dVJtdG9Wa3BoUlRKdVlWSlJjbEJ1TmtORWRVdEdXRGdLUTJNM2JHZGhSVU5uV1VWQmVuZEVURlpFY1UxWlYxcHNiWFJUYzJGdWVGaEJhMnBwUW5GVWFreFhTbGRIZVZSTk0xZEtUM2RzZG1GWk9FTlRiSHB5TkFwelMyOTNOMXByT0doQ1ZXSm1WRFJCV1ZWTlpVRlBSV0p2UkhCTVpYQTBURmxYU0hSUmJuQkpWakY1ZURSMVdWZHlSM28yZVhSemVGbE1MMnRvYTBSMENtUnVRVTFDVTBOdlZXOW1VVWczSzBWa2NHdFpZbGxrYW05bFZuWXdlalpPVG1SQ1ZYSk9VbFpQWlc1NFR6WkllR1JIZDNwSFUxVkRaMWxGUVN0elJXVUtVMk5wU0RSbWIybDVkRlZNWW5VMVJVVmtaM0YwTDFseUszTmtVMjl6TURGTWVtOXpSVU4wZGpFMGJrNHZWVlpIYTI5WE5UUTRVVEpOYmtkeUswSTFLd3BvUkRCME1XTXpXQ3RPT1dOc2FYRXdWVzVGZVhad09DOXhWblJUZGxSYWFscEdOVTFKTXpadWJqWXhVVkkxV0hOcFNEVmhWbWQyUlRoYWNFNTBSbHBsQ21sWlRVNHpRM2R6VjNCb1drMUJTV2hVZDI1S1RVOVZlVXhHVlhWT05rTjNhelJFUlhacVZVTm5XVUZ2UWs5R1MxVldPV1ZZVTNRM1pWYzBlakJCU1VzS1VWRnFhR1V2VFc1cVVVWlZhMmhNUWtsbldsUTRUMjlTY1hWTmMwNVplSEZ4ZUhneVkzTXJUMUZZTld4QmFESlZjME5OVjNwSE5Va3hZbmhPTkd0M1ZRbzRXbVZ4TmtoVlpqTndNMDVZWlc4MFVEUkdhM2R0WlZSaGMxaEdXbkozUW5vM2RXcExhVTFuWjFnd2RFSm9kVmg1YUZVNE5UVllUbU5OZG1weVVUUnFDblo2YWk5cFRGWktWWFkzSzBwc2NrWjRWREZFZFZGTFFtZEhZbkJrVmxoUk1FUjJiRmhtZDJrellrNXJXa1pzZVdZeU0wdDNXbWRHTUVKMGVUTjJORWtLUVU5bFRpOUVVRmx2WTNKMFkwbzFXRGxqWms0d2JsSXphRW95Y2xocU9VWnZTbU5qUTFOU2FDOHllU3RGUVRJMU1scHhNRmgyZEZKMVN6Vm9UVkFyVkFwV0szQkdXU3RSTjNwRVVHeERlRTlzZWpoME5uWjRVblJSVEVSbWRHRk1ORkF5Y2paVmFWaEpWM1Z3UTBwWmREZDBOaXQ1YTFKdWVYZzJiMkUzTHpGS0NtNTJWakZCYjBkQlRtRkZSV1VyZERoNGFXUlFaeXRIUm5FemN6VkhUa1pPU0VKQmMzcG1NV3BxVFdwdmF6ZEtiMmxyWWxaVU1FNUJWVmhLZEdWclNra0taekZPVUd0UVQxSjRWakZWY0dKUGVsUXJhMWhyTjBwVmExTTNiVE0zV0VneWRuUm1abVIxTlhFNVEzWkhObkZaYW1OcVpVOHZSRWhzYUZWRmNrMUpXUXBsVHpSQk9FOUNWRWgwUVRkM01XTjVVa2hIVUZWUE1VRlFiRXRTTWtWVU9XMXVOeXROV0hSRU1GQmxjRWh2TVV0UU9VRTlDaTB0TFMwdFJVNUVJRkpUUVNCUVVrbFdRVlJGSUV0RldTMHRMUzB0Q2c9PQo="
}
Load Balancers sit in front of your application and distribute incoming traffic across multiple Instances. When you control the load balancer via the API, you can inspect the results in the customer portal.
List the Load Balancers in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/load-balancers" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "load_balancers": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "label": "Example Load Balancer",
- "status": "active",
- "ipv4": "192.0.2.123",
- "ipv6": "2001:0db8:5:4973:ffff:ffff:ffff:ffff",
- "generic_info": {
- "balancing_algorithm": "roundrobin",
- "ssl_redirect": false,
- "sticky_sessions": {
- "cookie_name": "example-cookie"
}, - "proxy_protocol": false,
- "timeout": 600,
- "private_network": "9fed374c-0afc-42bf-926c-abcf840b5406"
}, - "health_check": {
- "protocol": "http",
- "port": 80,
- "path": "/health",
- "check_interval": 10,
- "response_timeout": 5,
- "unhealthy_threshold": 3,
- "healthy_threshold": 3
}, - "has_ssl": false,
- "http2": false,
- "http3": false,
- "nodes": 1,
- "forwarding_rules": [
- {
- "id": "73d85156c2c3129d",
- "frontend_protocol": "http",
- "frontend_port": 80,
- "backend_protocol": "http",
- "backend_port": 80
}
], - "firewall_rules": [
- {
- "id": "abcd123b93016eafb",
- "port": 80,
- "source": "198.51.100.0/24",
- "ip_type": "v4"
}
], - "instances": [ ],
- "node_ips": {
- "v4": [ ],
- "v6": [ ]
}, - "auto_ssl": {
- "domain_zone": "",
- "domain": ""
}, - "global_regions": [ ]
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new Load Balancer in a particular region
.
Include a JSON object in the request body with a content type of application/json.
region required | string The Region id to create this Load Balancer. |
balancing_algorithm | string The balancing algorithm.
|
ssl_redirect | boolean If
|
http2 | boolean If
|
http3 | boolean If
|
nodes | integer The number of nodes to add to the load balancer (1-99), must be an odd number. This defaults to 1. |
proxy_protocol | boolean If
|
timeout | integer The maximum time allowed for the connection to remain inactive before timing out in seconds. This defaults to 600. |
object The health check configuration. See Load Balancer documentation. | |
Array of objects An array of forwarding rule objects. | |
object Enables sticky sessions for your load balancer when a cookie_name is provided. | |
object An SSL certificate to install on the Load Balancer. | |
label | string Label for your Load Balancer. |
instances | Array of strings An array of instances IDs that you want attached to the load balancer. |
Array of objects An array of firewall rule objects. | |
private_network | string Deprecated Use |
vpc | string ID of the VPC you wish to use. If a VPC ID is omitted it will default to the public network. |
object The Auto SSL configuration. Must be using Vultr DNS for Auto SSL. | |
global_regions | Array of strings Array of Region ids to deploy child Load Balancers to. |
{- "region": "ewr",
- "balancing_algorithm": "roundrobin",
- "ssl_redirect": false,
- "http2": false,
- "http3": false,
- "nodes": 1,
- "proxy_protocol": false,
- "timeout": 600,
- "label": "Example Load Balancer",
- "health_check": {
- "protocol": "http",
- "port": 80,
- "path": "/health",
- "check_interval": 10,
- "response_timeout": 5,
- "unhealthy_threshold": 3,
- "healthy_threshold": 3
}, - "forwarding_rules": [
- {
- "frontend_protocol": "http",
- "frontend_port": 80,
- "backend_protocol": "http",
- "backend_port": 80
}
], - "firewall_rules": [
- {
- "port": 80,
- "source": "24.187.16.196/16",
- "ip_type": "v4"
}
], - "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406",
- "auto_ssl": {
- "domain_zone": "example.com",
- "domain_sub": "sub"
}, - "global_regions": [
- "sea",
- "atl"
]
}
{- "load_balancer": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "label": "Example Load Balancer",
- "status": "pending",
- "ipv4": "",
- "ipv6": "",
- "generic_info": {
- "balancing_algorithm": "roundrobin",
- "ssl_redirect": false,
- "sticky_sessions": {
- "cookie_name": "example-cookie"
}, - "proxy_protocol": false,
- "timeout": 600,
- "private_network": "9fed374c-0afc-42bf-926c-abcf840b5406",
- "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406"
}, - "health_check": {
- "protocol": "http",
- "port": 80,
- "path": "/health",
- "check_interval": 10,
- "response_timeout": 5,
- "unhealthy_threshold": 3,
- "healthy_threshold": 3
}, - "has_ssl": false,
- "http2": false,
- "http3": false,
- "nodes": 1,
- "forwarding_rules": [
- {
- "id": "73d85156c2c3129d",
- "frontend_protocol": "http",
- "frontend_port": 80,
- "backend_protocol": "http",
- "backend_port": 80
}
], - "firewall_rules": [
- {
- "id": "abcd123b93016eafb",
- "port": 80,
- "source": "24.187.16.196/16",
- "ip_type": "v4"
}
], - "instances": [ ],
- "node_ips": {
- "v4": [ ],
- "v6": [ ]
}, - "auto_ssl": {
- "domain_zone": "",
- "domain": ""
}, - "global_regions": [ ]
}
}
Get information for a Load Balancer.
load-balancer-id required | string The Load Balancer id. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "load_balancer": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "label": "Example Load Balancer",
- "status": "active",
- "ipv4": "192.0.2.123",
- "ipv6": "2001:0db8:5:4973:ffff:ffff:ffff:ffff",
- "generic_info": {
- "balancing_algorithm": "roundrobin",
- "ssl_redirect": false,
- "sticky_sessions": {
- "cookie_name": "example-cookie"
}, - "proxy_protocol": false,
- "timeout": 600,
- "private_network": "9fed374c-0afc-42bf-926c-abcf840b5406",
- "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406"
}, - "health_check": {
- "protocol": "http",
- "port": 80,
- "path": "/health",
- "check_interval": 10,
- "response_timeout": 5,
- "unhealthy_threshold": 3,
- "healthy_threshold": 3
}, - "has_ssl": false,
- "http2": false,
- "http3": false,
- "nodes": 1,
- "forwarding_rules": [
- {
- "id": "73d85156c2c3129d",
- "frontend_protocol": "http",
- "frontend_port": 80,
- "backend_protocol": "http",
- "backend_port": 80
}
], - "firewall_rules": [
- {
- "id": "abcd123b93016eafb",
- "port": 80,
- "source": "198.51.100.0/24",
- "ip_type": "v4"
}
], - "instances": [ ],
- "node_ips": {
- "v4": [ ],
- "v6": [ ]
}, - "auto_ssl": {
- "domain_zone": "",
- "domain": ""
}, - "global_regions": [
- "sea",
- "atl"
]
}
}
Update information for a Load Balancer. All attributes are optional. If not set, the attributes will retain their original values.
load-balancer-id required | string The Load Balancer id. |
Include a JSON object in the request body with a content type of application/json.
object An SSL certificate to install on the Load Balancer. | |
object Enables sticky sessions for your load balancer when a cookie_name is provided. | |
Array of objects An array of forwarding rule objects. | |
object The health check configuration. See Load Balancer documentation. | |
proxy_protocol | boolean If
|
timeout | integer The maximum time allowed for the connection to remain inactive before timing out in seconds. This defaults to 600. |
ssl_redirect | boolean If
|
http2 | boolean If
|
http3 | boolean If
|
nodes | integer The number of nodes to add to the load balancer (1-99), must be an odd number. This defaults to 1. |
balancing_algorithm | string The balancing algorithm.
|
instances | Array of strings Send the complete array of Instances IDs that should be attached to this Load Balancer. Instances will be attached or detached to match your array. For example, if Instances X, Y, and Z are currently attached, and you send [A,B,Z], then Instance A and B will be attached, X and Y will be detached, and Z will remain attached. |
label | string The label for your Load Balancer |
private_network | string Deprecated Use |
vpc | string ID of the VPC you wish to use. If a VPC ID is omitted it will default to the public network. |
Array of objects An array of firewall rule objects. | |
object The Auto SSL configuration. Must be using Vultr DNS for Auto SSL. | |
global_regions | Array of strings Array of Region ids to deploy child Load Balancers to. |
{- "ssl": {
- "private_key": "-----BEGIN RSA ... ",
- "certificate": "-----BEGIN RSA ... ",
- "chain": "-----BEGIN RSA ... "
}, - "sticky_session": {
- "cookie_name": "example-cookie"
}, - "forwarding_rules": [
- {
- "frontend_protocol": "http",
- "frontend_port": 80,
- "backend_protocol": "http",
- "backend_port": 80
}
], - "firewall_rules": [
- {
- "port": 80,
- "source": "192.168.1.1/16",
- "ip_type": "v4"
}
], - "health_check": {
- "protocol": "http",
- "port": 80,
- "path": "/health",
- "check_interval": "10",
- "response_timeout": "5",
- "unhealthy_threshold": "3",
- "healthy_threshold": "3"
}, - "proxy_protocol": true,
- "timeout": 600,
- "ssl_redirect": true,
- "http2": true,
- "http3": true,
- "nodes": 1,
- "balancing_algorithm": "roundrobin",
- "instances": [
- "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
], - "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406",
- "auto_ssl": {
- "domain_zone": "example.com",
- "domain_sub": "sub"
}, - "global_regions": [
- "sea",
- "atl"
]
}
Delete a Load Balancer.
load-balancer-id required | string The Load Balancer id. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Delete a Load Balancer SSL.
load-balancer-id required | string The Load Balancer id. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/ssl" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Disable a Load Balancer Auto SSL. This will not remove an ssl certificate from the load balancer.
load-balancer-id required | string The Load Balancer id. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/auto_ssl" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List the fowarding rules for a Load Balancer.
load-balancer-id required | string The Load Balancer id. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "forwarding_rules": [
- {
- "id": "443f2e6c0b60",
- "frontend_protocol": "http",
- "frontend_port": 80,
- "backend_protocol": "http",
- "backend_port": 80
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new forwarding rule for a Load Balancer.
load-balancer-id required | string The Load Balancer id. |
Include a JSON object in the request body with a content type of application/json.
frontend_protocol required | string The protocol on the Load Balancer to forward to the backend.
|
frontend_port required | integer The port number on the Load Balancer to forward to the backend. |
backend_protocol required | string The protocol destination on the backend server.
|
backend_port required | integer The port number destination on the backend server. |
{- "frontend_protocol": "http",
- "frontend_port": 8080,
- "backend_protocol": "http",
- "backend_port": 80
}
Get information for a Forwarding Rule on a Load Balancer.
load-balancer-id required | string The Load Balancer id. |
forwarding-rule-id required | string The Forwarding Rule id. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules/{forwarding-rule-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "forwarding_rule": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "frontend_protocol": "http",
- "frontend_port": 8080,
- "backend_protocol": "http",
- "backend_port": 80
}
}
Delete a Forwarding Rule on a Load Balancer.
load-balancer-id required | string The Load Balancer id. |
forwarding-rule-id required | string The Forwarding Rule id. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules/{forwarding-rule-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List the firewall rules for a Load Balancer.
loadbalancer-id required | string |
per_page | string Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/firewall-rules" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "firewall_rules": [
- {
- "id": "asb123f2e6c0b60",
- "port": 80,
- "source": "24.187.16.196/16",
- "ip_type": "v4"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get a firewall rule for a Load Balancer.
loadbalancer-id required | string |
firewall-rule-id required | string |
curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/firewall-rules/{firewall-rule-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "firewall_rule": {
- "id": "asb123f2e6c0b60",
- "port": 80,
- "source": "24.187.16.196/16",
- "ip_type": "v4"
}
}
Vultr Managed Databases is a managed database offering supporting MySQL, PostgreSQL, Valkey, and Apache Kafka®.
List all Managed Databases plans.
engine | string Filter by engine type
|
nodes | integer Filter by number of nodes. |
region | string Filter by Region id. |
curl "https://api.vultr.com/v2/databases/plans" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "plans": [
- {
- "id": "vultr-dbaas-hobbyist-cc-1-25-1",
- "number_of_nodes": 1,
- "type": "vc2",
- "vcpu_count": 1,
- "ram": 1024,
- "disk": 25,
- "monthly_cost": 15,
- "supported_engines": {
- "mysql": true,
- "pg": true,
- "valkey": false,
- "kafka": false
}, - "max_connections": {
- "mysql": 75,
- "pg": 22
}, - "locations": [
- "DEV",
- "ICN",
- "SEA"
]
}
]
}
List all Managed Databases in your account.
label | string Filter by label. |
tag | string Filter by specific tag. |
region | string Filter by Region id. |
curl "https://api.vultr.com/v2/databases" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "databases": [
- {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2022-05-09 10:13:31",
- "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
- "plan_disk": 25,
- "plan_ram": 1024,
- "plan_vcpus": 1,
- "plan_replicas": 0,
- "region": "EWR",
- "database_engine": "mysql",
- "database_engine_version": 8,
- "vpc_id": "d39bf0bf-e050-47d4-a291-5d6fc736f250",
- "status": "Running",
- "label": "some label",
- "tag": "some tag",
- "dbname": "defaultdb",
- "host": "HOSTNAME_GOES_HERE",
- "public_host": "PUBLIC_HOSTNAME_GOES_HERE",
- "user": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "port": 16751,
- "maintenance_dow": "sunday",
- "maintenance_time": "06:00:00",
- "latest_backup": "2022-11-02 12:58:18\"",
- "trusted_ips": [
- "..."
], - "mysql_sql_modes": [
- "ANSI",
- "ERROR_FOR_DIVISION_BY_ZERO",
- "NO_ENGINE_SUBSTITUTION",
- "NO_ZERO_DATE",
- "NO_ZERO_IN_DATE",
- "STRICT_ALL_TABLES"
], - "mysql_require_primary_key": true,
- "mysql_slow_query_log": false,
- "cluster_time_zone": "America/New_York",
- "read_replicas": [
- "..."
]
}
], - "meta": {
- "total": 1
}
}
Create a new Managed Database in a region
with the desired plan
. Supply optional attributes as desired.
Include a JSON object in the request body with a content type of application/json.
database_engine required | string The database engine type for the Managed Database.
|
database_engine_version required | string The version of the chosen database engine type for the Managed Database.
|
region required | string The Region id where the Managed Database is located. |
plan required | string The Plan id to use when deploying this Managed Database. |
label required | string A user-supplied label for this Managed Database. |
tag | string The user-supplied tag for this Managed Database. |
vpc_id | string The VPC id to use when deploying this Managed Database. It can also be set to |
maintenance_dow | string The day of week for routine maintenance updates.
|
maintenance_time | string The preferred time (UTC) for routine maintenance updates to occur in 24-hour HH:00 format (e.g. |
trusted_ips | Array of strings A list of IP addresses allowed to access the Managed Database in CIDR notation (defaults to /32 if excluded). |
mysql_sql_modes | Array of strings A list of SQL modes to enable on the Managed Database (MySQL engine types only).
|
mysql_require_primary_key | boolean Require a primary key for all tables on the Managed Database (MySQL engine types only). |
mysql_slow_query_log | boolean Enable or disable slow query logging on the Managed Database (MySQL engine types only). |
mysql_long_query_time | integer The number of seconds to denote a slow query when logging is enabled (MySQL engine types only). |
redis_eviction_policy | string Deprecated Set the data eviction policy for the Managed Database (Redis engine types only) |
eviction_policy | string Set the data eviction policy for the Managed Database (Valkey engine types only) |
{- "database_engine": "mysql",
- "database_engine_version": "8",
- "region": "ewr",
- "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
- "label": "Example Managed Database"
}
{- "database": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2022-05-09 10:13:31",
- "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
- "plan_disk": 25,
- "plan_ram": 1024,
- "plan_vcpus": 1,
- "plan_replicas": 0,
- "region": "EWR",
- "database_engine": "mysql",
- "database_engine_version": 8,
- "vpc_id": "d39bf0bf-e050-47d4-a291-5d6fc736f250",
- "status": "Running",
- "label": "some label",
- "tag": "some tag",
- "dbname": "defaultdb",
- "host": "HOSTNAME_GOES_HERE",
- "public_host": "PUBLIC_HOSTNAME_GOES_HERE",
- "user": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "port": 16751,
- "maintenance_dow": "sunday",
- "maintenance_time": "06:00:00",
- "latest_backup": "2022-11-02 12:58:18\"",
- "trusted_ips": [
- "..."
], - "mysql_sql_modes": [
- "ANSI",
- "ERROR_FOR_DIVISION_BY_ZERO",
- "NO_ENGINE_SUBSTITUTION",
- "NO_ZERO_DATE",
- "NO_ZERO_IN_DATE",
- "STRICT_ALL_TABLES"
], - "mysql_require_primary_key": true,
- "mysql_slow_query_log": false,
- "cluster_time_zone": "America/New_York",
- "read_replicas": [
- "..."
]
}
}
Get information about a Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "database": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2022-05-09 10:13:31",
- "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
- "plan_disk": 25,
- "plan_ram": 1024,
- "plan_vcpus": 1,
- "plan_replicas": 0,
- "region": "EWR",
- "database_engine": "mysql",
- "database_engine_version": 8,
- "vpc_id": "d39bf0bf-e050-47d4-a291-5d6fc736f250",
- "status": "Running",
- "label": "some label",
- "tag": "some tag",
- "dbname": "defaultdb",
- "host": "HOSTNAME_GOES_HERE",
- "public_host": "PUBLIC_HOSTNAME_GOES_HERE",
- "user": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "port": 16751,
- "maintenance_dow": "sunday",
- "maintenance_time": "06:00:00",
- "latest_backup": "2022-11-02 12:58:18\"",
- "trusted_ips": [
- "..."
], - "mysql_sql_modes": [
- "ANSI",
- "ERROR_FOR_DIVISION_BY_ZERO",
- "NO_ENGINE_SUBSTITUTION",
- "NO_ZERO_DATE",
- "NO_ZERO_IN_DATE",
- "STRICT_ALL_TABLES"
], - "mysql_require_primary_key": true,
- "mysql_slow_query_log": false,
- "cluster_time_zone": "America/New_York",
- "read_replicas": [
- "..."
]
}
}
Update information for a Managed Database. All attributes are optional. If not set, the attributes will retain their original values.
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
region | string The Region id where the Managed Database is located. |
plan | string The Plan id for this Managed Database. |
label | string A user-supplied label for this Managed Database. |
tag | string The user-supplied tag for this Managed Database. |
vpc_id | string The VPC id for this Managed Database. |
maintenance_dow | string The day of week for routine maintenance updates.
|
maintenance_time | string The preferred time (UTC) for routine maintenance updates to occur in 24-hour HH:00 format (e.g. |
cluster_time_zone | string The configured time zone for the Managed Database in TZ database format (e.g. |
trusted_ips | Array of strings A list of IP addresses allowed to access the Managed Database in CIDR notation (defaults to /32 if excluded). |
mysql_sql_modes | Array of strings A list of SQL modes to enable on the Managed Database (MySQL engine types only).
|
mysql_require_primary_key | boolean Require a primary key for all tables on the Managed Database (MySQL engine types only). |
mysql_slow_query_log | boolean Enable or disable slow query logging on the Managed Database (MySQL engine types only). |
mysql_long_query_time | integer The number of seconds to denote a slow query when logging is enabled (MySQL engine types only). |
redis_eviction_policy | string Deprecated Set the data eviction policy for the Managed Database (Redis engine types only) |
eviction_policy | string Set the data eviction policy for the Managed Database (Valkey engine types only) |
{- "plan": "vultr-dbaas-startup-cc-1-55-2",
- "label": "Example Managed Database"
}
{- "database": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2022-05-09 10:13:31",
- "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
- "plan_disk": 25,
- "plan_ram": 1024,
- "plan_vcpus": 1,
- "plan_replicas": 0,
- "region": "EWR",
- "database_engine": "mysql",
- "database_engine_version": 8,
- "vpc_id": "d39bf0bf-e050-47d4-a291-5d6fc736f250",
- "status": "Running",
- "label": "some label",
- "tag": "some tag",
- "dbname": "defaultdb",
- "host": "HOSTNAME_GOES_HERE",
- "public_host": "PUBLIC_HOSTNAME_GOES_HERE",
- "user": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "port": 16751,
- "maintenance_dow": "sunday",
- "maintenance_time": "06:00:00",
- "latest_backup": "2022-11-02 12:58:18\"",
- "trusted_ips": [
- "..."
], - "mysql_sql_modes": [
- "ANSI",
- "ERROR_FOR_DIVISION_BY_ZERO",
- "NO_ENGINE_SUBSTITUTION",
- "NO_ZERO_DATE",
- "NO_ZERO_IN_DATE",
- "STRICT_ALL_TABLES"
], - "mysql_require_primary_key": true,
- "mysql_slow_query_log": false,
- "cluster_time_zone": "America/New_York",
- "read_replicas": [
- "..."
]
}
}
Delete a Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get disk, memory, and vCPU usage information for a Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/usage" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "usage": {
- "disk": {
- "current_gb": 1.25,
- "max_gb": 55,
- "percentage": 2.27
}, - "memory": {
- "current_mb": 768,
- "max_mb": 2048,
- "percentage": 37.5
}, - "cpu": {
- "percentage": 4.65
}
}
}
List all database users within the Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/users" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "users": [
- {
- "username": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "encryption": "Default (MySQL 8+)"
}, - {
- "username": "ANOTHER_USER_HERE",
- "password": "PASSWORD_GOES_HERE",
- "encryption": "Legacy (MySQL 5.x)"
}
], - "meta": {
- "total": 2
}
}
Create a new database user within the Managed Database. Supply optional attributes as desired.
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
username required | string The username of the database user. |
password | string The password for the database user. This can be omitted to auto-generate a secure password. |
encryption | string The password encryption type for the database user (MySQL engine types only).
|
permission | string The permission level for the database user (Kafka engine types only).
|
{- "username": "some_new_user",
- "password": "some_secure_password",
- "encryption": "caching_sha2_password"
}
{- "user": {
- "username": "some_new_user",
- "password": "some_secure_password",
- "encryption": "Default (MySQL 8+)"
}
}
Get information about a Managed Database user.
database-id required | string The Managed Database ID. |
username required | string The database user. |
curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "user": {
- "username": "some_username",
- "password": "some_secure_password",
- "encryption": "Default (MySQL 8+)"
}
}
Update database user information within a Managed Database.
database-id required | string The Managed Database ID. |
username required | string The database user. |
Include a JSON object in the request body with a content type of application/json.
password required | string The password for the database user. This can be empty to auto-generate a new secure password. |
{- "password": "some_new_password_here"
}
{- "user": {
- "username": "some_username",
- "password": "some_secure_password",
- "encryption": "Default (MySQL 8+)"
}
}
Delete a database user within a Managed Database.
database-id required | string The Managed Database ID. |
username required | string The database user. |
curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Configure access control settings for a Managed Database user (Valkey and Kafka engine types only).
database-id required | string The Managed Database ID. |
username required | string The database user. |
Include a JSON object in the request body with a content type of application/json.
redis_acl_categories | Array of strings Deprecated A list of rules for command categories. |
redis_acl_channels | Array of strings Deprecated A list of publish/subscribe channel patterns. |
redis_acl_commands | Array of strings Deprecated A list of rules for individual commands. |
redis_acl_keys | Array of strings Deprecated A list of key access rules. |
acl_categories | Array of strings A list of rules for command categories. |
acl_channels | Array of strings A list of publish/subscribe channel patterns. |
acl_commands | Array of strings A list of rules for individual commands. |
acl_keys | Array of strings A list of key access rules. |
{- "acl_categories": [
- "+@all"
], - "acl_channels": [
- "*"
], - "acl_commands": [ ],
- "acl_keys": [
- "*"
]
}
{- "user": {
- "username": "some_username",
- "password": "some_secure_password",
- "access_control": {
- "acl_categories": [
- "+@all"
], - "acl_channels": [
- "*"
], - "acl_commands": [ ],
- "acl_keys": [
- "*"
]
}
}
}
List all logical databases within the Managed Database (MySQL and PostgreSQL only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/dbs" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "dbs": [
- {
- "name": "defaultdb"
}, - {
- "name": "another_db"
}
], - "meta": {
- "total": 2
}
}
Create a new logical database within the Managed Database (MySQL and PostgreSQL only).
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
name required | string The name of the logical database. |
{- "name": "new_db_name"
}
{- "db": {
- "name": "new_db_name"
}
}
Get information about a logical database within a Managed Database (MySQL and PostgreSQL only).
database-id required | string The Managed Database ID. |
db-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/dbs/{db-name}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "db": {
- "name": "some_db_name"
}
}
Delete a logical database within a Managed Database (MySQL and PostgreSQL only).
database-id required | string The Managed Database ID. |
db-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/dbs/{db-name}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List all topics within the Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/topics" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "topics": [
- {
- "name": "some_topic",
- "partitions": 3,
- "replication": 2,
- "retention_hours": 160,
- "retention_bytes": -1
}, - {
- "name": "some_topic_2",
- "partitions": 5,
- "replication": 3,
- "retention_hours": 120,
- "retention_bytes": 150000
}
], - "meta": {
- "total": 2
}
}
Create a new topic within the Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
name required | string The name for the database topic. |
partitions required | integer The number of partitions for the database topic. |
replication required | integer The replication factor for the database topic. |
retention_hours required | integer The retention hours for the database topic. |
retention_bytes required | integer The retention bytes for the database topic. |
{- "name": "some_new_topic",
- "partitions": 3,
- "replication": 2,
- "retention_hours": 160,
- "retention_bytes": -1
}
{- "topic": {
- "name": "some_new_topic",
- "partitions": 3,
- "replication": 2,
- "retention_hours": 160,
- "retention_bytes": -1
}
}
Get information about a Managed Database topic (Kafka engine types only).
database-id required | string The Managed Database ID. |
topic-name required | string The database topic. |
curl "https://api.vultr.com/v2/databases/{database-id}/topics/{topic-name}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "topic": {
- "name": "some_topic",
- "partitions": 3,
- "replication": 2,
- "retention_hours": 160,
- "retention_bytes": -1
}
}
Update topic information within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
topic-name required | string The database topic. |
Include a JSON object in the request body with a content type of application/json.
partitions | integer The number of partitions for the database topic. |
replication | integer The replication factor for the database topic. |
retention_hours | integer The retention hours for the database topic. |
retention_bytes | integer The retention bytes for the database topic. |
{- "partitions": 5,
- "replication": 3,
- "retention_hours": 120,
- "retention_bytes": 150000
}
{- "topic": {
- "name": "some_topic",
- "partitions": 5,
- "replication": 3,
- "retention_hours": 120,
- "retention_bytes": 150000
}
}
Delete a topic within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
topic-name required | string The database topic. |
curl "https://api.vultr.com/v2/databases/{database-id}/topics/{topic-name}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List all quotas within the Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/quotas" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "quotas": [
- {
- "client_id": "some_client",
- "consumer_byte_rate": 12345,
- "producer_byte_rate": 23456,
- "request_percentage": 20,
- "user": "vultradmin"
}
], - "meta": {
- "total": 1
}
}
Create a new quota within the Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
client_id required | string The client ID for the database quota. Note: Creating a new quota with the same client ID and user will overwrite the previous record. |
consumer_byte_rate required | integer The consumer byte rate for the database quota. |
producer_byte_rate required | integer The producer byte rate for the database quota. |
request_percentage required | integer The CPU request percentage for the database quota. |
user required | string The user for the database quota. |
{- "client_id": "some_new_client",
- "consumer_byte_rate": 12345,
- "producer_byte_rate": 23456,
- "request_percentage": 20,
- "user": "vultradmin"
}
{- "quota": {
- "client_id": "some_new_quota",
- "consumer_byte_rate": 12345,
- "producer_byte_rate": 23456,
- "request_percentage": 20,
- "user": "vultradmin"
}
}
Get information about a Managed Database quota (Kafka engine types only).
database-id required | string The Managed Database ID. |
client-id required | string |
username required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/quotas/{client-id}/{username}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "quota": {
- "client_id": "some_quota",
- "consumer_byte_rate": 12345,
- "producer_byte_rate": 23456,
- "request_percentage": 20,
- "user": "vultradmin"
}
}
Delete a quota within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
client-id required | string |
username required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/quotas/{client-id}/{username}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List all available connectors for the Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/available-connectors" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "available_connector": [
- {
- "class": "com.couchbase.connect.kafka.CouchbaseSinkConnector",
- "title": "Couchbase Sink",
- "version": "4.1.11",
- "type": "sink",
}
]
}
Get the configuration schema for the Managed Database connector (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-class required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/available-connectors/{connector-class}/configuration" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "configuration_schema": [
- {
- "name": "couchbase.seed.nodes",
- "type": "LIST",
- "required": true,
- "default_value": "",
- "description": "Addresses of Couchbase Server nodes, delimited by commas.\n\nIf a custom port is specified, it must be the KV port (which is normally 11210 for insecure connections, or 11207 for secure connections)."
}
]
}
List all connectors within the Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "connector": [
- {
- "name": "some_connector",
- "class": "com.couchbase.connect.kafka.CouchbaseSinkConnector",
- "topics": "some_topic",
- "config": {
- "couchbase.seed.nodes": 3,
- "couchbase.username": "some_username",
- "couchbase.password": "some_password"
}
}
], - "meta": {
- "total": 1
}
}
Create a new connector within the Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
name required | string The name for the database connector. |
class required | string The class for the database connector. |
topics required | string A comma-separated list of topics to use with the database connector. |
config | object A JSON object containing the configuration properties you wish to use with this database connector. See Get Database Connector Configuration Schema for a list of available/required options for a connector. |
{- "name": "some_connector",
- "class": "com.couchbase.connect.kafka.CouchbaseSinkConnector",
- "topics": "some_topic",
- "config": {
- "couchbase.seed.nodes": 3,
- "couchbase.username": "some_username",
- "couchbase.password": "some_password"
}
}
{- "connector": {
- "name": "some_connector",
- "class": "com.couchbase.connect.kafka.CouchbaseSinkConnector",
- "topics": "some_topic",
- "config": {
- "couchbase.seed.nodes": 3,
- "couchbase.username": "some_username",
- "couchbase.password": "some_password"
}
}
}
Get information about a Managed Database connector (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "connector": {
- "name": "some_connector",
- "class": "com.couchbase.connect.kafka.CouchbaseSinkConnector",
- "topics": "some_topic",
- "config": {
- "couchbase.seed.nodes": 3,
- "couchbase.username": "some_username",
- "couchbase.password": "some_password"
}
}
}
Update connector information within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
Include a JSON object in the request body with a content type of application/json.
topics | string A comma-separated list of topics to use with the database connector. |
config | object A JSON object containing the configuration properties you wish to use with this database connector. See Get Database Connector Configuration Schema for a list of available/required options for a connector. Updating this will replace the entire configuration object currently set. |
{- "topics": "some_topic",
- "config": {
- "couchbase.seed.nodes": 3,
- "couchbase.username": "some_username",
- "couchbase.password": "some_password"
}
}
{- "connector": {
- "topics": "some_topic",
- "config": {
- "couchbase.seed.nodes": 3,
- "couchbase.username": "some_username",
- "couchbase.password": "some_password"
}
}
}
Delete a connector within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get status information about a Managed Database connector (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/status" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "connector_status": {
- "state": "RUNNING",
- "tasks": [
- {
- "id": 0,
- "state": "RUNNING",
- "trace": ""
}
]
}
}
Restart a connector within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/restart" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Pause a connector within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/pause" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Resume a paused connector within a Managed Database (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/resume" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Restart a task within a Managed Database connector (Kafka engine types only).
database-id required | string The Managed Database ID. |
connector-name required | string |
task-id required | string The connector task's ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/tasks/{task-id}/restart" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List all available maintenance updates within the Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/maintenance" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "available_updates": [
- "update_description_here",
- "another_description_here"
]
}
Start maintenance updates for the Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/maintenance" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "message": "Maintenance updates initialized. Please note the maintenance consists of switching to a new server that will host the service and all pending updates will be applied. This will cause a short service interruption."
}
List service alert messages for the Managed Database.
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
period required | string The time range to list Managed Database service alerts from. |
{- "period": "day"
}
{- "alerts": [
- {
- "timestamp": "2023-02-10 12:40:19",
- "message_type": "RESOURCE USAGE DISK",
- "description": "Disk usage is critically high for a database service, service is not performing normally.",
- "recommendation": "We recommend you review your application or upgrade to the next plan size.",
- "resource_type": "disk"
}, - {
- "timestamp": "2023-02-09 15:41:20",
- "message_type": "MAINTENANCE SCHEDULED",
- "description": "Mandatory maintenance has been scheduled for a database service.",
- "maintenance_scheduled": "2023-02-12 01:00:00 (UTC)"
}
]
}
View the status of a migration attached to the Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/migration" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "migration": {
- "status": "complete",
- "method": "replication",
- "credentials": {
- "host": "some_host",
- "port": 3306,
- "username": "some_username",
- "password": "some_password",
- "database": "some_database",
- "ignored_databases": "",
- "ssl": true
}
}
}
Start a migration to the Managed Database.
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
host required | string The host name of the source server. |
port required | integer The connection port of the source server. |
username required | string The username of the source server. Uses |
password required | string The password of the source server. |
database | string The database of the source server. Required for MySQL/PostgreSQL engine types, but excluded for Valkey. |
ignored_databases | string Comma-separated list of ignored databases on the source server. Excluded for Valkey engine types. |
ssl required | boolean The true/false value for whether SSL is needed to connect to the source server. |
{- "host": "some_host",
- "port": 3306,
- "username": "some_username",
- "password": "some_password",
- "database": "some_database",
- "ignored_databases": "",
- "ssl": true
}
{- "migration": {
- "status": "pending",
- "credentials": {
- "host": "some_host",
- "port": 3306,
- "username": "some_username",
- "password": "some_password",
- "database": "some_database",
- "ignored_databases": "",
- "ssl": true
}
}
}
Detach a migration from the Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/migration" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Create a read-only replica node for the Managed Database.
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
region required | string The Region id where the Managed Database is located. |
label required | string A user-supplied label for this Managed Database. |
{- "region": "ewr",
- "label": "new_read_replica_label"
}
{- "database": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2022-05-09 10:13:31",
- "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
- "plan_disk": 25,
- "plan_ram": 1024,
- "plan_vcpus": 1,
- "plan_replicas": 0,
- "region": "EWR",
- "database_engine": "mysql",
- "database_engine_version": 8,
- "vpc_id": "d39bf0bf-e050-47d4-a291-5d6fc736f250",
- "status": "Running",
- "label": "some label",
- "tag": "some tag",
- "dbname": "defaultdb",
- "host": "HOSTNAME_GOES_HERE",
- "public_host": "PUBLIC_HOSTNAME_GOES_HERE",
- "user": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "port": 16751,
- "maintenance_dow": "sunday",
- "maintenance_time": "06:00:00",
- "latest_backup": "2022-11-02 12:58:18\"",
- "trusted_ips": [
- "..."
], - "mysql_sql_modes": [
- "ANSI",
- "ERROR_FOR_DIVISION_BY_ZERO",
- "NO_ENGINE_SUBSTITUTION",
- "NO_ZERO_DATE",
- "NO_ZERO_IN_DATE",
- "STRICT_ALL_TABLES"
], - "mysql_require_primary_key": true,
- "mysql_slow_query_log": false,
- "cluster_time_zone": "America/New_York"
}
}
Promote a read-only replica node to its own primary Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/promote-read-replica" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get backup information for the Managed Database.
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/backups \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "latest_backup": {
- "date": "2023-02-07",
- "time": "20:51:05"
}, - "oldest_backup": {
- "date": "2023-02-05",
- "time": "20:51:07"
}
}
Create a new Managed Database from a backup.
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
label required | string A user-supplied label for this Managed Database. |
type | string The type of backup restoration to use for this Managed Database.
|
date | string The backup date to use when restoring the Managed Database in YYYY-MM-DD date format. Required for |
time | string The backup time to use when restoring the Managed Database in HH-MM-SS time format (24-hour UTC). Required for |
{- "label": "new_restore_label",
- "type": "pitr",
- "date": "2023-02-06",
- "time": "08:00:00"
}
{- "database": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2022-05-09 10:13:31",
- "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
- "plan_disk": 25,
- "plan_ram": 1024,
- "plan_vcpus": 1,
- "plan_replicas": 0,
- "region": "EWR",
- "database_engine": "mysql",
- "database_engine_version": 8,
- "vpc_id": "d39bf0bf-e050-47d4-a291-5d6fc736f250",
- "status": "Running",
- "label": "some label",
- "tag": "some tag",
- "dbname": "defaultdb",
- "host": "HOSTNAME_GOES_HERE",
- "public_host": "PUBLIC_HOSTNAME_GOES_HERE",
- "user": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "port": 16751,
- "maintenance_dow": "sunday",
- "maintenance_time": "06:00:00",
- "latest_backup": "2022-11-02 12:58:18\"",
- "trusted_ips": [
- "..."
], - "mysql_sql_modes": [
- "ANSI",
- "ERROR_FOR_DIVISION_BY_ZERO",
- "NO_ENGINE_SUBSTITUTION",
- "NO_ZERO_DATE",
- "NO_ZERO_IN_DATE",
- "STRICT_ALL_TABLES"
], - "mysql_require_primary_key": true,
- "mysql_slow_query_log": false,
- "cluster_time_zone": "America/New_York"
}
}
Fork a Managed Database to a new subscription from a backup.
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
label required | string A user-supplied label for this Managed Database. |
region required | string The Region id where the Managed Database is located. |
plan required | string The Plan id to use when deploying this Managed Database. |
vpc_id | string The VPC id to use when deploying this Managed Database. It can also be set to |
type | string The type of backup restoration to use for this Managed Database.
|
date | string The backup date to use when restoring the Managed Database in YYYY-MM-DD date format. Required for |
time | string The backup time to use when restoring the Managed Database in HH-MM-SS time format (24-hour UTC). Required for |
{- "label": "new_fork_label",
- "region": "sea",
- "plan": "vultr-dbaas-startup-cc-2-80-4",
- "type": "pitr",
- "date": "2023-02-06",
- "time": "08:00:00"
}
{- "database": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2022-05-09 10:13:31",
- "plan": "vultr-dbaas-startup-cc-2-80-4",
- "plan_disk": 80,
- "plan_ram": 4096,
- "plan_vcpus": 2,
- "plan_replicas": 0,
- "region": "SEA",
- "database_engine": "mysql",
- "database_engine_version": 8,
- "vpc_id": "d39bf0bf-e050-47d4-a291-5d6fc736f250",
- "status": "Running",
- "label": "new_fork_label",
- "tag": "some tag",
- "dbname": "defaultdb",
- "host": "HOSTNAME_GOES_HERE",
- "public_host": "PUBLIC_HOSTNAME_GOES_HERE",
- "user": "vultradmin",
- "password": "PASSWORD_GOES_HERE",
- "port": 16751,
- "maintenance_dow": "sunday",
- "maintenance_time": "06:00:00",
- "latest_backup": "2022-11-02 12:58:18\"",
- "trusted_ips": [
- "..."
], - "mysql_sql_modes": [
- "ANSI",
- "ERROR_FOR_DIVISION_BY_ZERO",
- "NO_ENGINE_SUBSTITUTION",
- "NO_ZERO_DATE",
- "NO_ZERO_IN_DATE",
- "STRICT_ALL_TABLES"
], - "mysql_require_primary_key": true,
- "mysql_slow_query_log": false,
- "cluster_time_zone": "America/New_York"
}
}
List all connection pools within the Managed Database (PostgreSQL engine types only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "connections": {
- "used": 12,
- "available": 10,
- "max": 22
}, - "connection_pools": [
- {
- "name": "first_pool_name",
- "database": "some_db_name",
- "username": "some_username",
- "mode": "transaction",
- "size": 5
}, - {
- "name": "second_pool_name",
- "database": "another_db_name",
- "username": "another_username",
- "mode": "session",
- "size": 7
}
], - "meta": {
- "total": 2
}
}
Create a new connection pool within the Managed Database (PostgreSQL engine types only).
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
name required | string The name of the connection pool. |
database required | string The logical database associated with the connection pool. |
username required | string The database user associated with the connection pool. |
mode required | string The mode for the connection pool.
|
size required | integer The size of the connection pool. |
{- "name": "new_connection_pool",
- "database": "some_database",
- "username": "some_user",
- "mode": "transaction",
- "size": 5
}
{- "connection_pool": {
- "name": "new_connection_pool",
- "database": "some_database",
- "username": "some_user",
- "mode": "transaction",
- "size": 5
}
}
Get information about a Managed Database connection pool (PostgreSQL engine types only).
database-id required | string The Managed Database ID. |
pool-name required | string The connection pool name. |
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools/{pool-name}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "connection_pool": {
- "name": "some_connection_pool",
- "database": "some_database",
- "username": "some_user",
- "mode": "transaction",
- "size": 5
}
}
Update connection-pool information within a Managed Database (PostgreSQL engine types only).
database-id required | string The Managed Database ID. |
pool-name required | string The connection pool name. |
Include a JSON object in the request body with a content type of application/json.
database | string The logical database associated with the connection pool. |
username | string The database user associated with the connection pool. |
mode | string The mode for the connection pool.
|
size | integer The size of the connection pool. |
{- "mode": "session"
}
{- "connection_pool": {
- "name": "some_connection_pool",
- "database": "some_database",
- "username": "some_user",
- "mode": "transaction",
- "size": 5
}
}
Delete a connection pool within a Managed Database (PostgreSQL engine types only).
database-id required | string The Managed Database ID. |
pool-name required | string The connection pool name. |
curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools/{pool-name}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List all configured and available advanced options for the Managed Database (MySQL, PostgreSQL, and Kafka engine types only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/advanced-options" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "configured_options": {
- "jit": false,
- "temp_file_limit": 10000,
- "track_io_timing": "off"
}, - "available_options": [
- {
- "name": "autovacuum_analyze_scale_factor",
- "type": "float",
- "min_value": 0,
- "max_value": 1
}, - {
- "name": "autovacuum_analyze_threshold",
- "type": "int",
- "min_value": 0,
- "max_value": 2147483647
}, - "..."
]
}
Updates an advanced configuration option for the Managed Database (MySQL, PostgreSQL, and Kafka engine types only).
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
autovacuum_analyze_scale_factor | number <float> Accepted values: 0 - 1 |
autovacuum_analyze_threshold | integer Accepted values: 0 - 2147483647 |
autovacuum_freeze_max_age | integer Accepted values: 200000000 - 1500000000 |
autovacuum_max_workers | integer Accepted values: 1 - 20 |
autovacuum_naptime | integer Accepted values: 1 - 86400 |
autovacuum_vacuum_cost_delay | integer Accepted values: -1 - 100 |
autovacuum_vacuum_cost_limit | integer Accepted values: -1 - 10000 |
autovacuum_vacuum_scale_factor | number <float> Accepted values: 0 - 1 |
autovacuum_vacuum_threshold | integer Accepted values: 0 - 2147483647 |
bgwriter_delay | integer Accepted values: 10 - 10000 |
bgwriter_flush_after | integer Accepted values: 0 - 2048 |
bgwriter_lru_maxpages | integer Accepted values: 0 - 1073741823 |
bgwriter_lru_multiplier | number <float> Accepted values: 0 - 10 |
deadlock_timeout | integer Accepted values: 500 - 1800000 |
default_toast_compression | string Enum: "lz4" "pglz" |
idle_in_transaction_session_timeout | integer Accepted values: 0 - 604800000 |
jit | boolean |
log_autovacuum_min_duration | integer Accepted values: -1 - 2147483647 |
log_error_verbosity | string Enum: "TERSE" "DEFAULT" "VERBOSE" |
log_line_prefix | string Enum: "'pid=%p,user=%u,db=%d,app=%a,client=%h '" "'%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '" "'%m [%p] %q[user=%u,db=%d,app=%a] '" |
log_min_duration_statement | integer Accepted values: -1 - 86400000 |
max_files_per_process | integer Accepted values: 1000 - 4096 |
max_locks_per_transaction | integer Accepted values: 64 - 6400 |
max_logical_replication_workers | integer Accepted values: 4 - 64 |
max_parallel_workers | integer Accepted values: 0 - 96 |
max_parallel_workers_per_gather | integer Accepted values: 0 - 96 |
max_pred_locks_per_transaction | integer Accepted values: 64 - 5120 |
max_prepared_transactions | integer Accepted values: 0 - 10000 |
max_replication_slots | integer Accepted values: 8 - 64 |
max_stack_depth | integer Accepted values: 2097152 - 6291456 |
max_standby_archive_delay | integer Accepted values: 1 - 43200000 |
max_standby_streaming_delay | integer Accepted values: 1 - 43200000 |
max_wal_senders | integer Accepted values: 20 - 64 |
max_worker_processes | integer Accepted values: 8 - 96 |
pg_partman_bgw.interval | integer Accepted values: 3600 - 604800 |
pg_partman_bgw.role | string Maximum length: 64 characters |
pg_stat_statements.track | string Enum: "all" "top" "none" |
temp_file_limit | integer Accepted values: -1 - 2147483647 |
track_activity_query_size | integer Accepted values: 1024 - 10240 |
track_commit_timestamp | string Enum: "off" "on" |
track_functions | string Enum: "all" "pl" "none" |
track_io_timing | string Enum: "off" "on" |
wal_sender_timeout | integer Accepted values: 0, 5000 - 10800000 |
wal_writer_delay | integer Accepted values: 10 - 200 |
{- "jit": false,
- "temp_file_limit": 10000,
- "track_io_timing": "off"
}
{- "configured_options": {
- "jit": false,
- "temp_file_limit": 10000,
- "track_io_timing": "off"
}, - "available_options": [
- {
- "name": "autovacuum_analyze_scale_factor",
- "type": "float",
- "min_value": 0,
- "max_value": 1
}, - {
- "name": "autovacuum_analyze_threshold",
- "type": "int",
- "min_value": 0,
- "max_value": 2147483647
}, - "..."
]
}
List all available version upgrades within the Managed Database (PostgreSQL and Kafka engine types only).
database-id required | string The Managed Database ID. |
curl "https://api.vultr.com/v2/databases/{database-id}/version-upgrade" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "available_versions": [
- "12",
- "13",
- "14",
- "15"
]
}
Start a version upgrade for the Managed Database (PostgreSQL and Kafka engine types only).
database-id required | string The Managed Database ID. |
Include a JSON object in the request body with a content type of application/json.
version required | string The version number to upgrade the Managed Database to. |
{- "version": "15"
}
{- "message": "Version upgrade successfully initialized."
}
Vultr Marketplace is a platform for vendors to publish custom applications on Vultr's infrastructure.
List all user-supplied variables for a Marketplace App.
image-id required | string The application's Image ID. |
curl "https://api.vultr.com/v2/marketplace/apps/{image-id}/variables" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "variables": [
- {
- "name": "some_required_field",
- "description": "This is an example required variable field for this marketplace app.",
- "required": true
}, - {
- "name": "some_optional_field",
- "description": "This is an example optional variable field for this marketplace app.",
- "required": false
}
]
}
Object Storage is S3 API compatible. Objects uploaded to object storage can be accessed privately or publicly on the web. Object storage supports a virtually unlimited number of objects. Control your Object Storage via the API or browse in the Customer Portal.
Get a list of all Object Storage in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/object-storage" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "object_storages": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "cluster_id": 2,
- "region": "ewr",
- "label": "Example Object Storage",
- "status": "active",
- "s3_hostname": "ewr1.vultrobjects.com",
- "s3_access_key": "00example11223344",
- "s3_secret_key": "00example1122334455667788990011",
- "tier": {
- "OBJSTORETIERID": 5,
- "bw_gb_price": 0.01,
- "disk_gb_price": 0.05,
- "is_default": "no",
- "price": 50,
- "ratelimit_ops_bytes": 1048576000,
- "ratelimit_ops_secs": 4000,
- "sales_desc": "Low-latency storage for datacenter workloads.",
- "sales_name": "Performance",
- "slug": "tier_004k_1000m"
}
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create new Object Storage. The cluster_id
attribute is required.
Include a JSON object in the request body with a content type of application/json.
cluster_id required | integer The Cluster id where the Object Storage will be created. |
tier_id required | integer The Tier id of the tier to set up for. Must be one of available tiers for the cluster. |
label | string The user-supplied label for this Object Storage. |
{- "label": "Example Object Storage",
- "cluster_id": 2,
- "tier_id": 4
}
{- "object_storage": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "cluster_id": 2,
- "region": "ewr",
- "location": "New Jersey",
- "label": "Example Object Storage",
- "status": "pending",
- "s3_hostname": "ewr1.vultrobjects.com",
- "s3_access_key": "00example11223344",
- "s3_secret_key": "00example1122334455667788990011"
}
}
Get information about an Object Storage.
object-storage-id required | string The Object Storage id. |
curl "https://api.vultr.com/v2/object-storage/{object-storage-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "object_storage": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "cluster_id": 2,
- "region": "ewr",
- "label": "Example Object Storage",
- "status": "active",
- "s3_hostname": "ewr1.vultrobjects.com",
- "s3_access_key": "00example11223344",
- "s3_secret_key": "00example1122334455667788990011"
}
}
Delete an Object Storage.
object-storage-id required | string The Object Storage id. |
curl "https://api.vultr.com/v2/object-storage/{object-storage-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update the label for an Object Storage.
object-storage-id required | string The Object Storage id. |
Include a JSON object in the request body with a content type of application/json.
label required | string The user-supplied label for the Object Storage. |
{- "label": "Updated Object Storage Label"
}
Regenerate the keys for an Object Storage.
object-storage-id required | string The Object Storage id. |
curl "https://api.vultr.com/v2/object-storage/{object-storage-id}/regenerate-keys" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "s3_credentials": {
- "s3_hostname": "ewr1.vultrobjects.com",
- "s3_access_key": "00example11223344",
- "s3_secret_key": "00example1122334455667788990011"
}
}
Get a list of all Object Storage Clusters.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/object-storage/clusters" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "clusters": [
- {
- "id": 2,
- "region": "ewr",
- "hostname": "ewr1.vultrobjects.com",
- "deploy": "yes"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
curl "https://api.vultr.com/v2/object-storage/tiers" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "tiers": [
- {
- "id": 1,
- "bw_gb_price": 0.01,
- "disk_gb_price": 0.006,
- "is_default": "yes",
- "locations": [
- {
- "hostname": "ewr1.vultrobjects.com",
- "id": 2,
- "name": "New Jersey",
- "region": "ewr"
}
], - "price": 6,
- "ratelimit_ops_bytes": 314572800,
- "ratelimit_ops_secs": 400,
- "sales_desc": "Vultr's historic object storage solution.",
- "sales_name": "Legacy",
- "slug": "tier_004h_0300m"
}
]
}
Get a list of all Object Storage Tiers for a given Cluster.
cluster-id required | string The Cluster id. |
curl "https://api.vultr.com/v2/object-storage/clusters/{cluster-id}/tiers" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "tiers": [
- {
- "id": 1,
- "bw_gb_price": 0.01,
- "disk_gb_price": 0.006,
- "is_default": "yes",
- "price": 6,
- "ratelimit_ops_bytes": 314572800,
- "ratelimit_ops_secs": 400,
- "sales_desc": "Vultr's historic object storage solution.",
- "sales_name": "Legacy",
- "slug": "tier_004h_0300m"
}
]
}
We have a wide range of operating systems available to deploy server instances. You can also upload an ISO or choose from our public ISO library.
List the OS images available for installation at Vultr.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/os" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "os": [
- {
- "id": 127,
- "name": "CentOS 6 x64",
- "arch": "x64",
- "family": "centos"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
A Plan is a particular configuration of vCPU, RAM, SSD, and bandwidth to deploy an Instance. Not all Plans are available in all Regions. You can browse plans in the Customer Portal or get a list of Plans from the API.
Get a list of all VPS plans at Vultr.
The response is an array of JSON plan
objects, with unique id
with sub-fields in the general format of:
For example: vc2-24c-96gb-sc1
More about the sub-fields:
<type>
: The Vultr type code. For example, vc2
, vhf
, vdc
, etc.<number of cores>
: The number of cores, such as 4c
for "4 cores", 8c
for "8 cores", etc.<memory size>
: Size in GB, such as 32gb
.<optional modifier>
: Some plans include a modifier for internal identification purposes, such as CPU type or location surcharges.Note: This information about plan id format is for general education. Vultr may change the sub-field format or values at any time. You should not attempt to parse the plan ID sub-fields in your code for any specific purpose.
type | string Filter the results by type.
| ||||||||||||||||||||||||
per_page | integer Number of items requested per page. Default is 100 and Max is 500. | ||||||||||||||||||||||||
cursor | string Cursor for paging. See Meta and Pagination. | ||||||||||||||||||||||||
os | string Filter the results by operating system.
|
curl "https://api.vultr.com/v2/plans" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "plans": [
- {
- "id": "vhf-8c-32gb",
- "vcpu_count": 8,
- "ram": 32768,
- "disk": 512,
- "disk_count": 1,
- "bandwidth": 6144,
- "monthly_cost": 192,
- "type": "vhf",
- "locations": [
- "sea"
]
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get a list of all Bare Metal plans at Vultr.
The response is an array of JSON plan
objects, with unique id
with sub-fields in the general format of:
For example: vc2-24c-96gb-sc1
More about the sub-fields:
<type>
: The Vultr type code. For example, vc2
, vhf
, vdc
, etc.<number of cores>
: The number of cores, such as 4c
for "4 cores", 8c
for "8 cores", etc.<memory size>
: Size in GB, such as 32gb
.<optional modifier>
: Some plans include a modifier for internal identification purposes, such as CPU type or location surcharges.Note: This information about plan id format is for general education. Vultr may change the sub-field format or values at any time. You should not attempt to parse the plan ID sub-fields in your code for any specific purpose.
per_page | string Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/plans-metal" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "plans_metal": [
- {
- "id": "vbm-4c-32gb",
- "cpu_count": 4,
- "cpu_threads": 8,
- "cpu_model": "E3-1270v6",
- "ram": 32768,
- "disk": 240,
- "disk_count": 2,
- "bandwidth": 5120,
- "monthly_cost": 300,
- "monthly_cost_preemptible": 300,
- "type": "SSD",
- "locations": [
- "ewr"
]
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Deprecated: use VPCs instead.
Private Networks are fully isolated networks accessible only by instances on your account. Each private network is only available in one Region and cannot span across regions. An instance can connect to multiple private networks and you may have up to 5 private networks per region.
Get information about a Private Network.
Deprecated: Use Get a VPC instead.
network-id required | string The Network id. |
curl "https://api.vultr.com/v2/private-networks/{network-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "network": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "description": "Example Network Description",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
}
Delete a Private Network.
Deprecated: Use Delete a VPC instead.
network-id required | string The Network id. |
curl "https://api.vultr.com/v2/private-networks/{network-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update information for a Private Network.
Deprecated: Use Update a VPC instead.
network-id required | string The Network id. |
Include a JSON object in the request body with a content type of application/json.
description required | string The Private Network description. |
{- "description": "Example Private Network"
}
Get a list of all Private Networks in your account.
Deprecated: Use List VPCs instead.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/private-networks" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "networks": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example Network Description",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new Private Network in a region
.
Deprecated: Use Create a VPC instead.
Private networks should use [RFC1918 private address space](https://tools.ietf.org/html/rfc1918):
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
Include a JSON object in the request body with a content type of application/json.
region required | string Create the Private Network in this Region id. |
description | string A description of the private network. |
v4_subnet | string The IPv4 network address. For example: 10.99.0.0 |
v4_subnet_mask | integer The number of bits for the netmask in CIDR notation. Example: 24 |
{- "region": "ewr",
- "description": "Example Private Network",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
{- "network": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "description": "Example Private Network",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
}
Vultr Serverless Inference intelligently deploys and serves GenAI models without the complexity of infrastructure management.
List all Serverless Inference subscriptions in your account.
curl "https://api.vultr.com/v2/inference" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "subscriptions": [
- {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2024-06-05T10:13:31+00:00",
- "label": "example-inference",
- "api_key": "ABCD7PQSLLGS6XDHQY4CMHUL55T5YO63EFGH"
}
]
}
Create a new Serverless Inference subscription.
Include a JSON object in the request body with a content type of application/json.
label required | string A user-supplied label for this Serverless Inference subscription. |
{- "label": "example-inference"
}
{- "subscription": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2024-06-05T10:13:31+00:00",
- "label": "example-inference",
- "api_key": "ABCD7PQSLLGS6XDHQY4CMHUL55T5YO63EFGH"
}
}
Get information about a Serverless Inference subscription.
inference-id required | string The Inference ID. |
curl "https://api.vultr.com/v2/inference/{inference-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "subscription": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2024-06-05T10:13:31+00:00",
- "label": "example-inference",
- "api_key": "ABCD7PQSLLGS6XDHQY4CMHUL55T5YO63EFGH"
}
}
Update information for a Serverless Inference subscription.
inference-id required | string The Inference ID. |
Include a JSON object in the request body with a content type of application/json.
label | string A user-supplied label for this Serverless Inference subscription. |
{- "label": "example-inference-udpated"
}
{- "subscription": {
- "id": "999c4ed0-f2e4-4f2a-a951-de358ceb9ab5",
- "date_created": "2024-06-05T10:13:31+00:00",
- "label": "example-inference-updated",
- "api_key": "ABCD7PQSLLGS6XDHQY4CMHUL55T5YO63EFGH"
}
}
Delete a Serverless Inference subscription.
inference-id required | string The Inference ID. |
curl "https://api.vultr.com/v2/inference/{inference-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get usage information for a Serverless Inference subscription.
inference-id required | string The Inference ID. |
curl "https://api.vultr.com/v2/inference/{inference-id}/usage" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "usage": {
- "chat": {
- "current_tokens": 1234567,
- "monthly_allotment": 50000000,
- "overage": 0
}, - "audio": {
- "tts_characters": 45678,
- "tts_sm_characters": 23456
}
}
}
Get information about a VPC.
vpc-id required | string The VPC ID. |
curl "https://api.vultr.com/v2/vpcs/{vpc-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpc": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "description": "Example VPC Description",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
}
Delete a VPC.
vpc-id required | string The VPC ID. |
curl "https://api.vultr.com/v2/vpcs/{vpc-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update information for a VPC.
vpc-id required | string The VPC ID. |
Include a JSON object in the request body with a content type of application/json.
description required | string The VPC description. |
{- "description": "Example VPC"
}
Get a list of all VPCs in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/vpcs" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpcs": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example VPC Description",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new VPC in a region
. VPCs should use RFC1918 private address space:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
Include a JSON object in the request body with a content type of application/json.
region required | string Create the VPC in this Region id. |
description | string A description of the VPC. |
v4_subnet | string The IPv4 VPC address. For example: 10.99.0.0 |
v4_subnet_mask | integer The number of bits for the netmask in CIDR notation. Example: 24 |
{- "region": "ewr",
- "description": "Example VPC",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
{- "network": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "description": "Example VPC",
- "v4_subnet": "10.99.0.0",
- "v4_subnet_mask": 24
}
}
Get information about a VPC 2.0 network.
Deprecated: Migrate to VPC Networks and use Get a VPC instead.
vpc-id required | string The VPC ID. |
curl "https://api.vultr.com/v2/vpc2/{vpc-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpc": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "description": "Example VPC Description",
- "ip_block": "10.99.0.0",
- "prefix_length": 24
}
}
Delete a VPC 2.0 network.
Deprecated: Migrate to VPC Networks and use Delete a VPC instead.
vpc-id required | string The VPC ID. |
curl "https://api.vultr.com/v2/vpc2/{vpc-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update information for a VPC 2.0 network.
Deprecated: Migrate to VPC Networks and use Update a VPC instead.
vpc-id required | string The VPC ID. |
Include a JSON object in the request body with a content type of application/json.
description required | string The VPC description. Must be no longer than 255 characters and may include only letters, numbers, spaces, underscores and hyphens. |
{- "description": "Example VPC"
}
Get a list of all VPC 2.0 networks in your account.
Deprecated: Migrate to VPC Networks and use List VPCs instead.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/vpc2" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "vpcs": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example VPC Description",
- "ip_block": "10.99.0.0",
- "prefix_length": 24
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new VPC 2.0 network in a region
.
Deprecated: Migrate to VPC Networks and use Create a VPC instead.
VPCs should use RFC1918 private address space:
10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)
Include a JSON object in the request body with a content type of application/json.
region required | string Create the VPC in this Region id. |
description | string A description of the VPC. Must be no longer than 255 characters and may include only letters, numbers, spaces, underscores and hyphens. |
ip_type | string Value: "v4" Accepted values:
|
ip_block | string The VPC subnet IP address. For example: 10.99.0.0 |
prefix_length | integer The number of bits for the netmask in CIDR notation. Example: 24 |
{- "region": "ewr",
- "description": "Example VPC",
- "ip_block": "10.99.0.0",
- "prefix_length": 24
}
{- "vpc": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "region": "ewr",
- "description": "Example VPC",
- "ip_block": "10.99.0.0",
- "prefix_length": 24
}
}
Get a list of nodes attached to a VPC 2.0 network.
Deprecated: Use VPCs instead.
vpc-id required | string The VPC ID. |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/vpc2/{vpc-id}/nodes" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "nodes": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "ip_address": "10.1.96.3",
- "mac_address": "98964710968448",
- "description": "Example-Description",
- "type": "vps",
- "node_status": "active"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Attach nodes to a VPC 2.0 network.
Deprecated: Use VPCs instead.
vpc-id required | string The VPC ID. |
Include a JSON object in the request body with a content type of application/json.
nodes required | Array of arrays An array of ID strings for instances and Bare Metal servers to attach as nodes to the VPC 2.0 network. A limit of 1000 nodes can be processed in a request |
{- "nodes": [
- "a4021db4-c1d0-43ba-8b5c-7a4a35444167",
- "12a43ca5-0025-40ef-9edb-3a475809a8c0"
]
}
Remove nodes from a VPC 2.0 network.
Deprecated: Use VPCs instead.
vpc-id required | string The VPC ID. |
Include a JSON object in the request body with a content type of application/json.
nodes required | Array of arrays An array of ID strings for nodes to detach from the VPC 2.0 network. A limit of 1000 nodes can be processed in a request |
{- "nodes": [
- "a4021db4-c1d0-43ba-8b5c-7a4a35444167",
- "12a43ca5-0025-40ef-9edb-3a475809a8c0"
]
}
IP addresses can be reserved and moved between instances. Reserved IPs can also be used as floating addresses for high-availability.
Get information about a Reserved IP.
reserved-ip required | string The Reserved IP id. |
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "reserved_ip": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "ip_type": "v4",
- "subnet": "192.0.2.123",
- "subnet_size": 32,
- "label": "Example Reserved IPv4",
- "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
}
Delete a Reserved IP.
reserved-ip required | string The Reserved IP id. |
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update information on a Reserved IP.
reserved-ip required | string The Reserved IP id. |
Include a JSON object in the request body with a content type of application/json.
label required | string |
{- "label": "Example Label"
}
{- "reserved_ip": {
- "id": "string",
- "region": "string",
- "ip_type": "string",
- "subnet": "string",
- "subnet_size": 0,
- "label": "string",
- "instance_id": "string"
}
}
List all Reserved IPs in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/reserved-ips" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "reserved_ips": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "ip_type": "v4",
- "subnet": "192.0.2.123",
- "subnet_size": 32,
- "label": "Example Reserved IPv4",
- "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}, - {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "ip_type": "v6",
- "subnet": "2001:0db8:5:5157::",
- "subnet_size": 64,
- "label": "Example Reserved IPv6",
- "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
], - "meta": {
- "total": 2,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new Reserved IP. The region
and ip_type
attributes are required.
Include a JSON object in the request body with a content type of application/json.
region required | string The Region id where the Reserved IP will be created. |
ip_type required | string The type of IP address.
|
label | string The user-supplied label. |
{- "region": "ewr",
- "ip_type": "v4",
- "label": "Example Reserved IPv4"
}
{- "reserved_ip": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "ip_type": "v4",
- "subnet": "192.0.2.123",
- "subnet_size": 32,
- "label": "Example Reserved IPv4",
- "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
}
Attach a Reserved IP to an compute instance or a baremetal instance - instance_id
.
reserved-ip required | string The Reserved IP id |
Include a JSON object in the request body with a content type of application/json.
instance_id required | string Attach the Reserved IP to a Compute Instance id or a Bare Metal Instance id. |
{- "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}
Detach a Reserved IP.
reserved-ip required | string The Reserved IP id |
curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}/detach" \ -X POST \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Convert the ip_address
of an existing instance into a Reserved IP.
Include a JSON object in the request body with a content type of application/json.
ip_address required | string The IP address to convert. |
label | string A user-supplied label for this IP address. |
{- "ip_address": "192.0.2.123",
- "label": "Example Reserved IPv4"
}
{- "reserved_ip": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "region": "ewr",
- "ip_type": "v4",
- "subnet": "192.0.2.123",
- "subnet_size": 64,
- "label": "Example Reserved IPv4",
- "instance_id": "3f26dfe9-6a18-4f3d-a543-0cbca7a3e496"
}
}
Instances can be deployed in many Regions on multiple continents. Choose any of our worldwide locations to deploy servers near your office or customers for low-latency.
List all Regions at Vultr.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/regions" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "regions": [
- {
- "id": "ams",
- "city": "Amsterdam",
- "country": "NL",
- "continent": "Europe",
- "options": [
- "ddos_protection",
- "block_storage_high_perf",
- "block_storage_storage_opt",
- "kubernetes",
- "load_balancers"
]
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Get a list of the available plans in Region region-id
. Not all plans are available in all regions.
region-id required | string The Region id. |
type | string Filter the results by type.
|
curl "https://api.vultr.com/v2/regions/{region-id}/availability" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "available_plans": [
- "vc2-1c-1gb",
- "vc2-1c-2gb",
- "vc2-2c-4gb",
- "vc2-4c-8gb",
- "vc2-6c-16gb",
- "vc2-8c-32gb",
- "vc2-16c-64gb",
- "vc2-24c-96gb",
- "vdc-4vcpu-8gb",
- "vdc-4vcpu-16gb",
- "vdc-6vcpu-24gb",
- "vdc-8vcpu-32gb",
- "vhf-1c-1gb",
- "vhf-1c-2gb",
- "vhf-2c-4gb",
- "vhf-3c-8gb",
- "vhf-4c-16gb",
- "vhf-6c-24gb",
- "vhf-8c-32gb",
- "vhf-12c-48gb"
]
}
A snapshot is a point-in-time image of an instance. We do not stop the instance when taking a snapshot. Booting from a snapshot is similar to rebooting after a non-graceful restart. Snapshots are physically the same as backups, but snapshots are manual while backups run automatically on a schedule. See our Snapshot Quickstart Guide for more information.
Delete a Snapshot.
snapshot-id required | string The Snapshot id. |
curl "https://api.vultr.com/v2/snapshots/{snapshot-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Get information about a Snapshot.
snapshot-id required | string The Snapshot id. |
curl "https://api.vultr.com/v2/snapshots/{snapshot-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "snapshot": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example Snapshot",
- "size": 42949672960,
- "compressed_size": 949678560,
- "status": "complete",
- "os_id": 215,
- "app_id": 0
}
}
Update the description for a Snapshot.
snapshot-id required | string The Snapshot id. |
Include a JSON object in the request body with a content type of application/json.
description required | string The user-supplied description for the Snapshot. |
{- "description": "Example Snapshot"
}
Get information about all Snapshots in your account.
description | string Filter the list of Snapshots by |
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/snapshots" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "snapshots": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example Snapshot",
- "size": 42949672960,
- "compressed_size": 949678560,
- "status": "complete",
- "os_id": 215,
- "app_id": 0
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new Snapshot for instance_id
.
Include a JSON object in the request body with a content type of application/json.
instance_id required | string Create a Snapshot for this Instance id. |
description | string The user-supplied description of the Snapshot. |
{- "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "description": "Example Snapshot"
}
{- "snapshot": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example Snapshot",
- "size": 0,
- "compressed_size": 0,
- "status": "pending",
- "os_id": 215,
- "app_id": 0
}
}
Create a new Snapshot from a RAW image located at url
.
Include a JSON object in the request body with a content type of application/json.
url required | string The public URL containing a RAW image. |
description | string The user-supplied description of the Snapshot. |
uefi | string Whether or not the snapshot uses UEFI. |
{- "description": "Example Snapshot"
}
{- "snapshot": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "description": "Example Snapshot",
- "size": 0,
- "compressed_size": 0,
- "status": "pending",
- "os_id": 215,
- "app_id": 0
}
}
Sub-accounts are separate Vultr accounts that are directly linked to your account. These accounts function similarly to normal Vultr accounts with some additional billing and administrative features available to your account.
Get information about all sub-accounts for your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/subaccounts" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "subaccounts": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "email": "subaccount@vultr.com",
- "subaccount_name": "Acme Widgets LLC",
- "subaccount_id": 472924,
- "activated": false,
- "balance": 0,
- "pending_charges": 0
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new subaccount.
Include a JSON object in the request body with a content type of application/json.
email required | string Create a new sub-account with this email address. |
subaccount_name | string Your name for this sub-account. |
subaccount_id | string Your ID for this sub-account. |
{- "email": "subaccount@vultr.com",
- "subaccount_name": "Acme Widgets LLC",
- "subaccount_id": 472924
}
{- "subaccount": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "email": "subaccount@vultr.com",
- "subaccount_name": "Acme Widgets LLC",
- "subaccount_id": 472924,
- "activated": false,
- "balance": 0,
- "pending_charges": 0
}
}
Get information about an SSH Key.
ssh-key-id required | string The SSH Key id. |
curl "https://api.vultr.com/v2/ssh-keys/{ssh-key-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "ssh_key": {
- "id": "3b8066a7-b438-455a-9688-44afc9a3597f",
- "date_created": "2020-10-10T01:56:20+00:00",
- "name": "Example SSH Key",
- "ssh_key": "ssh-rsa AA... user@example.com"
}
}
Update an SSH Key. The attributes name
and ssh_key
are optional. If not set, the attributes will retain their original values. New deployments will use the updated key, but this action does not update previously deployed instances.
ssh-key-id required | string The SSH Key id. |
Include a JSON object in the request body with a content type of application/json.
name | string The user-supplied name for this SSH Key. |
ssh_key | string The SSH Key. |
{- "name": "Example SSH Key",
- "ssh_key": "ssh-rsa AA... user@example.com"
}
Delete an SSH Key.
ssh-key-id required | string The SSH Key id. |
curl "https://api.vultr.com/v2/ssh-keys/{ssh-key-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
List all SSH Keys in your account.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/ssh-keys" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "ssh_keys": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "name": "Example SSH Key",
- "ssh_key": "ssh-rsa AA... user@example.com"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new SSH Key for use with future instances. This does not update any running instances.
Include a JSON object in the request body with a content type of application/json.
name required | string The user-supplied name for this SSH Key. |
ssh_key required | string The SSH Key. |
{- "name": "Example SSH Key",
- "ssh_key": "ssh-rsa AA... user@example.com"
}
{- "ssh_key": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "name": "Example SSH Key",
- "ssh_key": "ssh-rsa AA... user@example.com"
}
}
Vultr allows you to assign two types of scripts to a server. Boot scripts configure new deployments, and PXE scripts automatically install operating systems. Assign startup scripts to your servers through the API or on your Startup Scripts page in the customer portal.
Note: There is a size limit of 64KB on the startup script.
Get information for a Startup Script.
startup-id required | string The Startup Script id. |
curl "https://api.vultr.com/v2/startup-scripts/{startup-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "startup_script": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "date_modified": "2020-10-10T01:59:20+00:00",
- "name": "Example Startup Script",
- "type": "pxe",
- "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}
}
Delete a Startup Script.
startup-id required | string The Startup Script id. |
curl "https://api.vultr.com/v2/startup-scripts/{startup-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update a Startup Script. The attributes name
and script
are optional. If not set, the attributes will retain their original values. The script
attribute is base-64 encoded. New deployments will use the updated script, but this action does not update previously deployed instances.
startup-id required | string The Startup Script id. |
Include a JSON object in the request body with a content type of application/json.
name | string The name of the Startup Script. |
script | string The base-64 encoded Startup Script. |
type | string The Startup Script type. boot (default) pxe |
{- "name": "Example Startup Script",
- "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}
Get a list of all Startup Scripts.
per_page | integer Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/startup-scripts" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "startup_scripts": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "date_modified": "2020-10-10T01:59:20+00:00",
- "name": "Example Startup Script",
- "type": "pxe"
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new Startup Script. The name
and script
attributes are required, and scripts are base-64 encoded.
Include a JSON object in the request body with a content type of application/json.
name required | string The name of the Startup Script. |
type | string The Startup Script type.
|
script required | string The base-64 encoded Startup Script. |
{- "name": "Example Startup Script",
- "type": "pxe",
- "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}
{- "startup_script": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "date_created": "2020-10-10T01:56:20+00:00",
- "date_modified": "2020-10-10T01:56:20+00:00",
- "name": "Example Startup Script",
- "type": "pxe",
- "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}
}
Vultr supports multiple users in each account, and each user has individual access permissions. Users have unique API keys, which respect the permission for that user.
Get information about a User.
user-id required | string The User id. |
curl "https://api.vultr.com/v2/users/{user-id}" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "user": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "name": "Example User",
- "email": "user@example.com",
- "api_enabled": true,
- "acls": [
- "manage_users",
- "subscriptions_view",
- "subscriptions",
- "provisioning",
- "billing",
- "support",
- "abuse",
- "dns",
- "upgrade",
- "objstore",
- "loadbalancer"
]
}
}
Delete a User.
user-id required | string The User id. |
curl "https://api.vultr.com/v2/users/{user-id}" \ -X DELETE \ -H "Authorization: Bearer ${VULTR_API_KEY}"
Update information for a User. All attributes are optional. If not set, the attributes will retain their original values.
user-id required | string The User id. |
Include a JSON object in the request body with a content type of application/json.
string The User's email address. | |
name | string The User's name. |
password | string The User's password. |
api_enabled | boolean API access is permitted for this User.
|
acls | Array of strings An array of permission granted. Valid values:
|
{- "email": "user@example.com",
- "name": "Example User",
- "password": "example-password",
- "api_enabled": true,
- "acls": [
- "manage_users",
- "subscriptions_view",
- "subscriptions",
- "provisioning",
- "billing",
- "support",
- "abuse",
- "dns",
- "upgrade",
- "objstore",
- "loadbalancer"
]
}
Get a list of all Users in your account.
per_page | number Number of items requested per page. Default is 100 and Max is 500. |
cursor | string Cursor for paging. See Meta and Pagination. |
curl "https://api.vultr.com/v2/users" \ -X GET \ -H "Authorization: Bearer ${VULTR_API_KEY}"
{- "users": [
- {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "name": "Example User",
- "email": "user@example.com",
- "api_enabled": true,
- "acls": [
- "manage_users",
- "subscriptions_view",
- "subscriptions",
- "provisioning",
- "billing",
- "support",
- "abuse",
- "dns",
- "upgrade",
- "objstore",
- "loadbalancer"
]
}
], - "meta": {
- "total": 1,
- "links": {
- "next": "",
- "prev": ""
}
}
}
Create a new User. The email
, name
, and password
attributes are required.
Include a JSON object in the request body with a content type of application/json.
email required | string The User's email address. |
name required | string The User's name. |
password required | string The User's password. |
api_enabled | boolean API access is permitted for this User.
|
acls | Array of strings An array of permissions granted.
|
{- "name": "Example User",
- "email": "user@example.com",
- "password": "sh#sedHA_FTdz6w+",
- "api_enabled": true,
- "acls": [
- "manage_users",
- "subscriptions_view",
- "subscriptions",
- "provisioning",
- "billing",
- "support",
- "abuse",
- "dns",
- "upgrade",
- "objstore",
- "loadbalancer"
]
}
{- "user": {
- "id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
- "name": "Example User",
- "email": "user@example.com",
- "api_enabled": true,
- "acls": [
- "manage_users",
- "subscriptions_view",
- "subscriptions",
- "provisioning",
- "billing",
- "support",
- "abuse",
- "dns",
- "upgrade",
- "objstore",
- "loadbalancer"
]
}
}
Retrieve a list of all regions where VFS can be deployed
{- "regions": [
- {
- "id": "ewr",
- "country": "US",
- "continent": "North America",
- "description": "New Jersey",
- "price_per_gb": {
- "nvme": 0.1,
- "hdd": 0.025
}, - "min_size_gb": {
- "nvme": 10,
- "hdd": 40
}
}
]
}
{- "vfs": [
- {
- "id": "123e4567-e89b-12d3-a456-123ab4567c89",
- "region": "ewr",
- "date_created": "2024-01-01T12:00:00Z",
- "status": "active",
- "label": "my-storage",
- "tags": [
- "prod",
- "web"
], - "disk_type": "nvme",
- "storage_size": {
- "bytes": 10737418240,
- "gb": 10
}, - "storage_used": {
- "bytes": 10737418240,
- "gb": 10
}, - "billing": {
- "charges": 10.5,
- "monthly": 30
}
}
]
}
Create a new VFS subscription with the specified configuration
region required | string Region identifier where to create the VFS |
label required | string User-defined label for the VFS subscription |
required | object |
disk_type | string Value: "nvme" Type of storage disk (defaults to nvme if not specified) |
tags | Array of strings Optional tags to apply to the VFS subscription |
{- "region": "ewr",
- "label": "my-production-storage",
- "storage_size": {
- "gb": 100
}, - "disk_type": "nvme",
- "tags": [
- "prod",
- "web"
]
}
{- "id": "123e4567-e89b-12d3-a456-123ab4567c89",
- "region": "ewr",
- "date_created": "2024-01-01T12:00:00Z",
- "status": "active",
- "label": "my-storage",
- "tags": [
- "prod",
- "web"
], - "disk_type": "nvme",
- "storage_size": {
- "bytes": 10737418240,
- "gb": 10
}, - "storage_used": {
- "bytes": 10737418240,
- "gb": 10
}, - "billing": {
- "charges": 10.5,
- "monthly": 30
}
}
Retrieve a specific VFS subscription by ID
vfs_id required | string Example: vfs-123abc ID of the VFS subscription to retrieve |
{- "id": "123e4567-e89b-12d3-a456-123ab4567c89",
- "region": "ewr",
- "date_created": "2024-01-01T12:00:00Z",
- "status": "active",
- "label": "my-storage",
- "tags": [
- "prod",
- "web"
], - "disk_type": "nvme",
- "storage_size": {
- "bytes": 10737418240,
- "gb": 10
}, - "storage_used": {
- "bytes": 10737418240,
- "gb": 10
}, - "billing": {
- "charges": 10.5,
- "monthly": 30
}
}
Update a VFS subscription's label or storage size
label | string New label for the VFS subscription |
object New storage size (can only increase, not decrease) |
{- "label": "updated-production-storage",
- "storage_size": {
- "gb": 200
}
}
{- "id": "123e4567-e89b-12d3-a456-123ab4567c89",
- "region": "ewr",
- "date_created": "2024-01-01T12:00:00Z",
- "status": "active",
- "label": "my-storage",
- "tags": [
- "prod",
- "web"
], - "disk_type": "nvme",
- "storage_size": {
- "bytes": 10737418240,
- "gb": 10
}, - "storage_used": {
- "bytes": 10737418240,
- "gb": 10
}, - "billing": {
- "charges": 10.5,
- "monthly": 30
}
}
Retrieve a list of all attachments for a specific VFS subscription
vfs_id required | string Example: vfs-123abc ID of the VFS subscription |
{- "attachments": [
- {
- "state": "ATTACHED",
- "vfs_id": "123e4567-e89b-12d3-a456-123ab4567c89",
- "target_id": "inst-456def",
- "mount_tag": 12345
}
]
}
Attach a VPS instance to a VFS subscription
vfs_id required | string Example: 123e4567-e89b-12d3-a456-123ab4567c89 ID of the VFS subscription |
vps_id required | string Example: 123e4567-e89b-12d3-a456-123ab4567c89 ID of the VPS subscription to attach |
{- "state": "ATTACHED",
- "vfs_id": "123e4567-e89b-12d3-a456-123ab4567c89",
- "target_id": "inst-456def",
- "mount_tag": 12345
}
Retrieve details about a specific VFS-VPS attachment
vfs_id required | string Example: 123e4567-e89b-12d3-a456-123ab4567c89 ID of the VFS subscription |
vps_id required | string Example: 123e4567-e89b-12d3-a456-123ab4567c89 ID of the VPS subscription to attach |
{- "state": "ATTACHED",
- "vfs_id": "123e4567-e89b-12d3-a456-123ab4567c89",
- "target_id": "inst-456def",
- "mount_tag": 12345
}
Detach a VPS instance from a VFS subscription
vfs_id required | string Example: 123e4567-e89b-12d3-a456-123ab4567c89 ID of the VFS subscription |
vps_id required | string Example: 123e4567-e89b-12d3-a456-123ab4567c89 ID of the VPS subscription to attach |