Log in Sign up

Vultr API (2.0)

Download OpenAPI specification:Download

Introduction

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.

Requests

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.

Response Codes

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.

Meta and Pagination

Many API calls will return a meta object with paging information.

Definitions

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.

How to use Paging

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.

Paging Example

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.

Parameters

You can pass information to the API with three different types of parameters.

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

Query parameters

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

Request Body

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.

API Example Conventions

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"
  }'
  • The -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.
  • The -H lines set required HTTP headers. These examples are formatted to expand the VULTR_API_KEY environment variable for your convenience.
  • Examples that require a JSON object in the request body pass the required data via the --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.

Account

Read-only information about your user account and billing information.

Get Account Info

Get your Vultr account, permission, and billing information.

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/account" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "account": {
    }
}

Get Account Bandwidth Info

Get your Vultr account bandwidth information.

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/account/bandwidth" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "bandwidth": {
    }
}

Applications

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.

List Applications

Get a list of all available Applications.

query Parameters
type
string

Filter the results by type.

Type Description
all All available application types
marketplace Marketplace applications
one-click Vultr One-Click applications
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.

Responses

Request samples

curl "https://api.vultr.com/v2/applications" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "applications": [
    ],
  • "meta": {
    }
}

Backups

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.

List Backups

Get information about Backups in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/backups" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "backups": [
    ],
  • "meta": {
    }
}

Get a Backup

Get the information for the Backup.

Authorizations:
API Key
path Parameters
backup-id
required
string

The Backup id.

Responses

Request samples

curl "https://api.vultr.com/v2/backups/{backup-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "backup": {
    }
}

Bare Metal

Bare Metal servers give you access to the underlying physical hardware in a single-tenant environment without a virtualization layer.

List Bare Metal Instances

List all Bare Metal instances in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "bare_metals": [
    ],
  • "meta": {
    }
}

Create Bare Metal Instance

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.

Authorizations:
API Key
Request Body schema: application/json

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.

  • true
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.

  • true
  • false (default)
hostname
string

The user-supplied hostname to use when deploying this instance.

tag
string
Deprecated

Use tags instead. The user-supplied tag.

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.

  • true
  • false (default)
attach_vpc2
Array of strings
Deprecated

An array of VPC IDs to attach to this Bare Metal Instance. This parameter takes precedence over enable_vpc2. Please choose one parameter.

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.

enable_vpc2
boolean
Deprecated

If true, VPC 2.0 support will be added to the new server.

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 attach_vpc2 instead to specify a VPC 2.0 network.

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.

  • root
  • limited
mdisk_mode
string

The RAID configuration used for the disks on this instance. The instance must be reinstalled for this change to take effect.

  • raid1
  • jbod
  • none (default)
app_variables
object

The app variable inputs for configuring the marketplace app (name/value pairs).

Responses

Request samples

Content type
application/json
{
  • "region": "ams",
  • "plan": "vbm-4c-32gb",
  • "label": "Example Bare Metal",
  • "app_id": 3,
  • "enable_ipv6": true
}

Response samples

Content type
application/json
{
  • "bare_metal": {
    }
}

Get Bare Metal

Get information for a Bare Metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "bare_metal": {
    }
}

Update Bare Metal

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.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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 tags instead. The user-supplied tag.

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.

  • true
attach_vpc2
Array of strings
Deprecated

An array of VPC IDs to attach to this Bare Metal Instance. This parameter takes precedence over enable_vpc2. Please choose one parameter.

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.

enable_vpc2
boolean
Deprecated

If true, VPC 2.0 support will be added to the new server.

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 attach_vpc2 instead to specify a VPC 2.0 network.

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.

  • root
  • limited
mdisk_mode
string

The RAID configuration used for the disks on this instance. The instance must be reinstalled for this change to take effect.

  • raid1
  • jbod
  • none (default)
ipxe_chain_url
string

The URL location of the iPXE chainloader.

Responses

Request samples

Content type
application/json
{
  • "label": "Updated Bare Metal Label",
  • "tags": [
    ],
  • "user_data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}

Response samples

Content type
application/json
{
  • "bare_metal": {
    }
}

Delete Bare Metal

Delete a Bare Metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Bare Metal IPv4 Addresses

Get the IPv4 information for the Bare Metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv4" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "ipv4s": [
    ],
  • "meta": {
    }
}

Bare Metal IPv6 Addresses

Get the IPv6 information for the Bare Metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/ipv6" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "ipv6s": [
    ],
  • "meta": {
    }
}

Create Baremetal Reverse IPv4

Create a reverse IPv4 entry for a Bare Metal Instance. The ip and reverse attributes are required.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "ip": "192.0.2.123",
  • "reverse": "foo.example.com"
}

Create Baremetal Reverse IPv6

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.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "ip": "2001:0db8:0005:6bb0:5400:2ff0:fee5:0002",
  • "reverse": "foo.example.com"
}

Set Default Reverse DNS Entry

Set a reverse DNS entry for an IPv4 address

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

ip
required
string

Responses

Request samples

Content type
application/json
{
  • "ip": "192.0.2.123"
}

Delete BareMetal Reverse IPv6

Delete the reverse IPv6 for a Bare metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
ipv6
required
string

The IPv6 address.

Responses

Request samples

curl "https://api.vultr.com/v2/baremetal/{baremetal-id}/ipv6/reverse/{ipv6}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Start Bare Metal

Start the Bare Metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/start" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Reboot Bare Metal

Reboot the Bare Metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/reboot" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Reinstall Bare Metal

Reinstall the Bare Metal instance using an optional hostname.

Note: This action may take some time to complete.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "hostname": "my_new_hostname"
}

Response samples

Content type
application/json
{
  • "bare_metal": {
    }
}

Halt Bare Metal

Halt the Bare Metal instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/halt" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Bare Metal Bandwidth

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.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/bandwidth" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "bandwidth": {
    }
}

Halt Bare Metals

Halt Bare Metals.

Authorizations:
API Key
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

baremetal_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "baremetal_ids": [
    ]
}

Reboot Bare Metals

Reboot Bare Metals.

Authorizations:
API Key
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

baremetal_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "baremetal_ids": [
    ]
}

Start Bare Metals

Start Bare Metals.

Authorizations:
API Key
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

baremetal_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "baremetal_ids": [
    ]
}

Get Bare Metal User Data

Get the user-supplied, base64 encoded user data for a Bare Metal.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/user-data" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "user_data": {
    }
}

Get Available Bare Metal Upgrades

Get available upgrades for a Bare Metal

Authorizations:
API Key
path Parameters
baremetal-id
required
string
query Parameters
type
string

Filter upgrade by type:

  • all (applications, plans)
  • applications
  • os

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/upgrades" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "upgrades": {
    }
}

Get VNC URL for a Bare Metal

Get the VNC URL for a Bare Metal

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vnc" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json

Attach VPC Network to Bare Metal Instance

Attach a VPC Network to a Bare Metal Instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Detach VPC Network from Bare Metal Instance

Detach a VPC Network from an Bare Metal Instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

List Bare Metal Instance VPC Networks

List the VPC networks for a Bare Metal Instance.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vpcs" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpcs": [
    ]
}

Attach VPC 2.0 Network to Bare Metal Instance Deprecated

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.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
  • "ip_address": "10.1.144.4"
}

Detach VPC 2.0 Network from Bare Metal Instance Deprecated

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.

Authorizations:
API Key
path Parameters
baremetal-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

List Bare Metal Instance VPC 2.0 Networks Deprecated

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.

Authorizations:
API Key
path Parameters
baremetal-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/bare-metals/{baremetal-id}/vpc2" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpcs": [
    ]
}

Billing

Read-only billing information for your user account.

List Billing History

Retrieve list of billing history

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/billing/history" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "billing_history": [
    ],
  • "meta": {
    }
}

List Invoices

Retrieve a list of invoices

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/billing/invoices" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "billing_invoices": [
    ],
  • "meta": {
    }
}

Get Invoice

Retrieve specified invoice

Authorizations:
API Key
path Parameters
invoice-id
required
string

ID of invoice

Responses

Request samples

curl "https://api.vultr.com/v2/billing/invoices/{invoice-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "billing_invoice": {
    }
}

Get Invoice Items

Retrieve full specified invoice

Authorizations:
API Key
path Parameters
invoice-id
required
string

ID of invoice

Responses

Request samples

curl "https://api.vultr.com/v2/billing/invoices/{invoice-id}/items" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "invoice_items": [
    ],
  • "meta": {
    }
}

List Pending Charges

Retrieve list of billing pending charges

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/billing/pending-charges" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "pending_charges": [
    ]
}

Block Storage

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 Block storages

List all Block Storage in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/blocks" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "blocks": [
    ],
  • "meta": {
    }
}

Create Block Storage

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.

Authorizations:
API Key
Request Body schema: application/json

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 block_type.

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.

  • high_perf from 10GB to 10,000GB
  • storage_opt from 40GB to 40,000GB

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "size_gb": 50,
  • "label": "Example Block Storage"
}

Response samples

Content type
application/json
{
  • "block": {
    }
}

Get Block Storage

Get information for Block Storage.

Authorizations:
API Key
path Parameters
block-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/blocks/{block-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "block": {
    }
}

Delete Block Storage

Delete Block Storage.

Authorizations:
API Key
path Parameters
block-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/blocks/{block-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update Block Storage

Update information for Block Storage.

Authorizations:
API Key
path Parameters
block-id
required
string
Request Body schema: application/json

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 block_type.

Responses

Request samples

Content type
application/json
{
  • "label": "Updated Block Storage Label",
  • "size_gb": 50
}

Attach Block Storage

Attach Block Storage to Instance instance_id.

Authorizations:
API Key
path Parameters
block-id
required
string
Request Body schema: application/json

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.

Value Description
true Attach live, do not restart the instance.
false Restart the instance and attach the Block Storage.

Responses

Request samples

Content type
application/json
{
  • "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
  • "live": true
}

Detach Block Storage

Detach Block Storage.

Authorizations:
API Key
path Parameters
block-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

live
boolean

Detach Block Storage without restarting the Instance.

Value Description
true Detach live, do not restart the instance.
false Restart the instance and detach the Block Storage.

Responses

Request samples

Content type
application/json
{
  • "live": true
}

CDNs

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.

List CDN Pull Zones

List CDN Pull Zones

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/pull-zones/" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "pull_zones": [
    ],
  • "meta": {
    }
}

Create CDN Pull Zones

Create a new CDN Pull Zone.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "label": "my-pullzone",
  • "origin_scheme": "https",
  • "origin_domain": "www.vultr.com",
  • "cors": false,
  • "gzip": true,
  • "block_ai": false,
  • "block_bad_bots": false
}

Response samples

Content type
application/json
{
  • "pull_zone": {
    }
}

Get CDN Pull Zone

Get information about a CDN Pull Zones

Authorizations:
API Key
path Parameters
pullzone-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/pull-zones/{pullzone-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "pull_zone": {
    }
}

Update CDN Pull Zone

Update information for a CDN Pullzone. All attributes are optional. If not set, the attributes will retain their original values.

Authorizations:
API Key
path Parameters
pullzone-id
required
string
Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "label": "my-pullzone",
  • "cors": false,
  • "gzip": true,
  • "block_ai": false,
  • "block_bad_bots": false,
  • "regions": [
    ]
}

Response samples

Content type
application/json
{
  • "pull_zone": {
    }
}

Delete CDN Pullzone

Delete a CDN Pull Zone.

Authorizations:
API Key
path Parameters
pullzone-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/pull-zones/{pullzone-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"

Purge CDN Pull Zone

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.

Authorizations:
API Key
path Parameters
pullzone-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/pull-zones/{pullzone-id}/purge" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
[ ]

List CDN Push Zones

List CDN Push Zones

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/push-zones/" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "push_zones": [
    ],
  • "meta": {
    }
}

Create CDN Push Zones

Create a new CDN Push Zone.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "label": "my-pushzone",
  • "cors": false,
  • "gzip": true,
  • "block_ai": false,
  • "block_bad_bots": false
}

Response samples

Content type
application/json
{
  • "push_zone": {
    }
}

Get CDN Push Zone

Get information about a CDN Push Zone

Authorizations:
API Key
path Parameters
pushzone-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "push_zone": {
    }
}

Update CDN Push Zone

Update information for a CDN Pushzone. All attributes are optional. If not set, the attributes will retain their original values.

Authorizations:
API Key
path Parameters
pushzone-id
required
string
Request Body schema: application/json
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.

Responses

Request samples

Content type
application/json
{
  • "label": "my-pushzone",
  • "cors": false,
  • "gzip": true,
  • "block_ai": false,
  • "block_bad_bots": false,
  • "regions": [
    ]
}

Response samples

Content type
application/json
{
  • "push_zone": {
    }
}

Delete CDN Pushzone

Delete a CDN Push Zone.

Authorizations:
API Key
path Parameters
pushzone-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"

List CDN Push Zone Files

Get a list of files that have been uploaded to a specific CDN Push Zones

Authorizations:
API Key
path Parameters
pushzone-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}/files" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "files": [
    ],
  • "count": 10,
  • "total_size": 189238221
}

Create CDN Push Zone File Upload Endpoint

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.

Authorizations:
API Key
path Parameters
pushzone-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "name": "my-image.jpg",
  • "size": 857773
}

Response samples

Content type
application/json
{
  • "upload_endpoint": {
    }
}

Get CDN Push Zone File

Get information about a CDN Push Zone file

Authorizations:
API Key
path Parameters
pushzone-id
required
string
file-name
required
string

The File Name.

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}/files/{file-name}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "file": {
    }
}

Delete CDN Pushzone File

Delete a CDN Push Zone file.

Authorizations:
API Key
path Parameters
pushzone-id
required
string
file-name
required
string

The File Name.

Responses

Request samples

curl "https://api.vultr.com/v2/cdns/push-zones/{pushzone-id}/files/{file-name}" \
-X DELETE \
-H "Authorization: Bearer ${VULTR_API_KEY}"

Container Registry

Store and manage public and private container images for rapid deployment to Vultr Managed Kubernetes.

List Container Registries

List All Container Registry Subscriptions for this account

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/registries" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "registries": [
    ],
  • "meta": {
    }
}

Create Container Registry

Create a new Container Registry Subscription

Authorizations:
API Key
Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "name": "charizard",
  • "public": false,
  • "region": "sjc",
  • "plan": "business"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "urn": "string",
  • "storage": {
    },
  • "date_created": "string",
  • "public": true,
  • "root_user": {
    },
  • "metadata": {
    }
}

Read Container Registry

Get a single Container Registry Subscription

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "urn": "string",
  • "storage": {
    },
  • "date_created": "string",
  • "public": true,
  • "root_user": {
    },
  • "metadata": {
    }
}

Update Container Registry

Update a Container Registry Subscription

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "public": true,
  • "plan": "business"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "urn": "string",
  • "storage": {
    },
  • "date_created": "string",
  • "public": true,
  • "root_user": {
    },
  • "metadata": {
    }
}

Delete Container Registry

Deletes a Container Registry Subscription

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Repositories

List All Repositories in a Container Registry Subscription

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/repositories" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "repositories": [
    ],
  • "meta": {
    }
}

Read Repository

Get a single Repository in a Container Registry Subscription

Authorizations:
API Key
path Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "name": "string",
  • "image": "string",
  • "description": "string",
  • "added_at": "string",
  • "updated_at": "string",
  • "pull_count": 0,
  • "artifact_count": 0
}

Update Repository

Update a Repository in a Container Registry Subscription

Authorizations:
API Key
path Parameters
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.

Request Body schema: application/json
description
string

User defined description of this repository

Responses

Request samples

Content type
application/json
{
  • "description": "This is my super cool hello-world project"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "image": "string",
  • "description": "string",
  • "added_at": "string",
  • "updated_at": "string",
  • "pull_count": 0,
  • "artifact_count": 0
}

Delete Repository

Deletes a Repository from a Container Registry Subscription

Authorizations:
API Key
path Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Create Docker Credentials

Create a fresh set of Docker Credentials for this Container Registry Subscription

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/docker-credentials" \
  -X OPTIONS \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "auths": {
    }
}

Create Docker Credentials for Kubernetes

Create a fresh set of Docker Credentials for this Container Registry Subscription and return them in a Kubernetes friendly YAML format

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/docker-credentials/kubernetes" \
  -X OPTIONS \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update Container Registry Password

Update the Container Registy Password for this Container Registry Subscription

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "old_password": "12345abc456ABC123ABcd6789efgH1234abc",
  • "new_password": "sup3rh4rdt0cr4ck"
}

Response samples

Content type
application/json
{
  • "success": "Password update successfully"
}

List Robots

List All Robots in a Conainer Registry Subscription

Authorizations:
API Key
path Parameters
registry-id
required
string

The Registry ID. Which can be found by List Registries.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/robots" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "robots": [
    ],
  • "meta": {
    }
}

Read Robot

Get a single Robot in a Container Registry Subscription

Authorizations:
API Key
path Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/robot/{robot-name}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "secret": "string",
  • "disable": true,
  • "duration": 0,
  • "creation_time": "string",
  • "permissions": {
    }
}

Update Robot

Update the description, disable, duration, and add or remove access, in a Container Registry Subscription Robot

Authorizations:
API Key
path Parameters
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.

Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "description": "Robot user auto generated by Vultr - enter only what you want to update in the request body",
  • "disable": true,
  • "duration": -1,
  • "access": [
    ]
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "secret": "string",
  • "disable": true,
  • "duration": 0,
  • "creation_time": "string",
  • "permissions": {
    }
}

Delete Robot

Deletes a Robot from a Container Registry Subscription

Authorizations:
API Key
path Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/robot/{robot-name}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Artifacts

List All Artifacts in a Container Registry Repository

Authorizations:
API Key
path Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}/artifacts" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "artifacts": [
    ],
  • "meta": {
    }
}

Read Artifact

Get a single Artifact in a Container Registry Repository

Authorizations:
API Key
path Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}/artifact/{artifact-digest}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "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": [ ]
}

Delete Artifact

Deletes an Artifact from a Container Registry Repository

Authorizations:
API Key
path Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/registry/{registry-id}/repository/{repository-image}/artifact/{artifact-digest}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Registry Regions

List All Regions where a Container Registry can be deployed

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/registry/region/list" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "regions": [
    ],
  • "meta": {
    }
}

List Registry Plans

List All Plans to help choose which one is the best fit for your Container Registry

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/registry/plan/list" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "plans": {
    }
}

DNS

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 DNS Domains

List all DNS Domains in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/domains" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "domains": [
    ],
  • "meta": {
    }
}

Create DNS Domain

Create a DNS Domain for domain. If no ip address is supplied a domain with no records will be created.

Authorizations:
API Key
Request Body schema: application/json

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.

  • enabled
  • disabled (default)

Responses

Request samples

Content type
application/json
{
  • "domain": "example.com",
  • "ip": "192.0.2.123",
  • "dns_sec": "enabled"
}

Response samples

Content type
application/json
{
  • "domain": {
    }
}

Get DNS Domain

Get information for the DNS Domain.

Authorizations:
API Key
path Parameters
dns-domain
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/domains/{dns-domain}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "domain": {
    }
}

Delete Domain

Delete the DNS Domain.

Authorizations:
API Key
path Parameters
dns-domain
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/domains/{dns-domain}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update a DNS Domain

Update the DNS Domain.

Authorizations:
API Key
path Parameters
dns-domain
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

dns_sec
required
string

Enable or disable DNSSEC.

  • enabled
  • disabled

Responses

Request samples

Content type
application/json
{
  • "dns_sec": "enabled"
}

Get SOA information

Get SOA information for the DNS Domain.

Authorizations:
API Key
path Parameters
dns-domain
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/domains/{dns-domain}/soa" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "dns_soa": {
    }
}

Update SOA information

Update the SOA information for the DNS Domain. All attributes are optional. If not set, the attributes will retain their original values.

Authorizations:
API Key
path Parameters
dns-domain
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

nsprimary
string

Set the primary nameserver.

email
string

Set the contact email address.

Responses

Request samples

Content type
application/json
{
  • "nsprimary": "ns1.vultr.com",
  • "email": "admin@example.com"
}

Get DNSSec Info

Get the DNSSEC information for the DNS Domain.

Authorizations:
API Key
path Parameters
dns-domain
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/domains/{dns-domain}/dnssec" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "dns_sec": [
    ]
}

Create Record

Create a DNS record.

Authorizations:
API Key
path Parameters
dns-domain
required
string
Request Body schema: application/json

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.

  • A
  • AAAA
  • CNAME
  • NS
  • MX
  • SRV
  • TXT
  • CAA
  • SSHFP
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)

Responses

Request samples

Content type
application/json
{
  • "name": "www",
  • "type": "A",
  • "data": "192.0.2.123",
  • "ttl": 300,
  • "priority": 0
}

Response samples

Content type
application/json
{
  • "record": {
    }
}

List Records

Get the DNS records for the Domain.

Authorizations:
API Key
path Parameters
dns-domain
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/domains/{dns-domain}/records" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "records": [
    ],
  • "meta": {
    }
}

Get Record

Get information for a DNS Record.

Authorizations:
API Key
path Parameters
dns-domain
required
string
record-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "record": {
    }
}

Update Record

Update the information for a DNS record. All attributes are optional. If not set, the attributes will retain their original values.

Authorizations:
API Key
path Parameters
dns-domain
required
string
record-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "name": "CNAME",
  • "data": "foo.example.com",
  • "ttl": 300,
  • "priority": 0
}

Delete Record

Delete the DNS record.

Authorizations:
API Key
path Parameters
dns-domain
required
string
record-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/domains/{dns-domain}/records/{record-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Firewall

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.

List Firewall Groups

Get a list of all Firewall Groups.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/firewalls" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "firewall_groups": [
    ],
  • "meta": {
    }
}

Create Firewall Group

Create a new Firewall Group.

Authorizations:
API Key
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

description
string

User-supplied description of this Firewall Group.

Responses

Request samples

Content type
application/json
{
  • "description": "Example Firewall Group"
}

Response samples

Content type
application/json
{
  • "firewall_group": {
    }
}

Get Firewall Group

Get information for a Firewall Group.

Authorizations:
API Key
path Parameters
firewall-group-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "firewall_group": {
    }
}

Update Firewall Group

Update information for a Firewall Group.

Authorizations:
API Key
path Parameters
firewall-group-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "description": "Updated Firewall Group Name"
}

Delete Firewall Group

Delete a Firewall Group.

Authorizations:
API Key
path Parameters
firewall-group-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Firewall Rules

Get the Firewall Rules for a Firewall Group.

Authorizations:
API Key
path Parameters
firewall-group-id
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "firewall_rules": [
    ],
  • "meta": {
    }
}

Create Firewall Rules

Create a Firewall Rule for a Firewall Group. The attributes ip_type, protocol, subnet, and subnet_size are required.

Authorizations:
API Key
path Parameters
firewall-group-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

ip_type
required
string

The type of IP rule.

  • v4
  • v6
protocol
required
string

The protocol for this rule.

  • ICMP
  • TCP
  • UDP
  • GRE
  • ESP
  • AH
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:

Value Description
"" Use the value from subnet and subnet_size.
cloudflare Allow all of Cloudflare's IP space through the firewall
Load Balancer id Provide a load balancer ID to use its IPs
notes
string

User-supplied notes for this rule.

Responses

Request samples

Content type
application/json
{
  • "ip_type": "v4",
  • "protocol": "tcp",
  • "port": "80",
  • "subnet": "192.0.2.0",
  • "subnet_size": 24,
  • "source": "",
  • "notes": "Example Firewall Rule"
}

Response samples

Content type
application/json
{
  • "firewall_rule": {
    }
}

Delete Firewall Rule

Delete a Firewall Rule.

Authorizations:
API Key
path Parameters
firewall-group-id
required
string
firewall-rule-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules/{firewall-rule-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Get Firewall Rule

Get a Firewall Rule.

Authorizations:
API Key
path Parameters
firewall-group-id
required
string
firewall-rule-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/firewalls/{firewall-group-id}/rules/{firewall-rule-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "firewall_rule": {
    }
}

Instances

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 Instances

List all VPS instances in your account.

Authorizations:
API Key
query Parameters
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 true to show pending charges.

Responses

Request samples

curl "https://api.vultr.com/v2/instances" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "instances": [
    ],
  • "meta": {
    }
}

Create Instance

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.

Authorizations:
API Key
Request Body schema: application/json

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.

  • true
disable_public_ipv4
boolean

Don't set up a public IPv4 address when IPv6 is enabled. Will not do anything unless enable_ipv6 is also true.

  • true
attach_private_network
Array of strings
Deprecated

Use attach_vpc instead. An array of Private Network ids to attach to this Instance. This parameter takes precedence over enable_private_network. Please choose one parameter.

attach_vpc
Array of strings

An array of VPC IDs to attach to this Instance. This parameter takes precedence over enable_vpc. Please choose one parameter.

attach_vpc2
Array of strings
Deprecated

Use attach_vpc instead. An array of VPC IDs to attach to this Instance. This parameter takes precedence over enable_vpc2. Please choose one parameter.

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.

  • enabled
  • disabled
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).

  • true
  • false
activation_email
boolean

Notify by email after deployment.

  • true
  • false (default)
hostname
string

The hostname to use when deploying this instance.

tag
string
Deprecated

Use tags instead. The user-supplied tag.

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 enable_vpc instead.

If true, private networking support will be added to the new server.

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 attach_private_network instead to specify a network.

enable_vpc
boolean

If true, VPC support will be added to the new server.

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 attach_vpc instead to specify a network.

enable_vpc2
boolean
Deprecated

Use enable_vpc instead.

If true, VPC 2.0 support will be added to the new server.

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 attach_vpc2 instead to specify a network.

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.

  • root
  • limited
app_variables
object

The app variable inputs for configuring the marketplace app (name/value pairs).

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "plan": "vc2-6c-16gb",
  • "label": "Example Instance",
  • "os_id": 215,
  • "user_data": "QmFzZTY0IEV4YW1wbGUgRGF0YQ==",
  • "backups": "enabled",
  • "hostname": "my_hostname",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "instance": {
    }
}

Get Instance

Get information about an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "instance": {
    }
}

Update Instance

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.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

  • enabled
  • disabled
firewall_group_id
string

The Firewall Group id to attach to this Instance.

enable_ipv6
boolean

Enable IPv6.

  • true
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 tags instead. The user-supplied tag.

plan
string

Upgrade the instance with this Plan id.

ddos_protection
boolean

Enable DDoS Protection (there is an additional charge for this).

  • true
  • false
attach_private_network
Array of strings
Deprecated

Use attach_vpc instead. An array of Private Network ids to attach to this Instance. This parameter takes precedence over enable_private_network. Please choose one parameter.

attach_vpc
Array of strings

An array of VPC IDs to attach to this Instance. This parameter takes precedence over enable_vpc. Please choose one parameter.

attach_vpc2
Array of strings
Deprecated

Use attach_vpc instead. An array of VPC IDs to attach to this Instance. This parameter takes precedence over enable_vpc2. Please choose one parameter.

detach_private_network
Array of strings
Deprecated

Use detach_vpc instead. An array of Private Network ids to detach from this Instance. This parameter takes precedence over enable_private_network.

detach_vpc
Array of strings

An array of VPC IDs to detach from this Instance. This parameter takes precedence over enable_vpc.

detach_vpc2
Array of strings
Deprecated

Use detach_vpc instead. An array of VPC IDs to detach from this Instance. This parameter takes precedence over enable_vpc2.

enable_private_network
boolean
Deprecated

Use enable_vpc instead.

If true, private networking support will be added to the new server.

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 attach_private_network instead to specify a network.

enable_vpc
boolean

If true, VPC support will be added to the new server.

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 attach_vpc instead to specify a VPC.

enable_vpc2
boolean
Deprecated

Use enable_vpc instead.

If true, VPC 2.0 support will be added to the new server.

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 attach_vpc2 instead to specify a VPC 2.0 network.

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.

  • root
  • limited

Responses

Request samples

Content type
application/json
{
  • "label": "Example Instance",
  • "tags": [
    ],
  • "plan": "vc2-24c-97gb"
}

Response samples

Content type
application/json
{
  • "instance": {
    }
}

Delete Instance

Delete an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Halt Instances

Halt Instances.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "instance_ids": [
    ]
}

Reboot instances

Reboot Instances.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "instance_ids": [
    ]
}

Start instances

Start Instances.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "instance_ids": [
    ]
}

Start instance

Start an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/start" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Reboot Instance

Reboot an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/reboot" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Reinstall Instance

Reinstall an Instance using an optional hostname.

Note: This action may take a few extra seconds to complete.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "hostname": "my_new_hostname"
}

Response samples

Content type
application/json
{
  • "instance": {
    }
}

Instance Bandwidth

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.

Authorizations:
API Key
path Parameters
instance-id
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/bandwidth" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "bandwidth": {
    }
}

Get Instance neighbors

Get a list of other instances in the same location as this Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/neighbors" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "neighbors": [
    ]
}

List instance Private Networks Deprecated

Deprecated: use List Instance VPCs instead.

List the private networks for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/private-networks" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "private_networks": [
    ],
  • "meta": {
    }
}

List instance VPCs

List the VPCs for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/vpcs" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpcs": [
    ],
  • "meta": {
    }
}

List Instance VPC 2.0 Networks Deprecated

List the VPC 2.0 networks for an Instance.

Deprecated: Migrate to VPC Networks and use List Instance VPCs instead.

Authorizations:
API Key
path Parameters
instance-id
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/vpc2" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpcs": [
    ],
  • "meta": {
    }
}

Get Instance ISO Status

Get the ISO status for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/iso" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "iso_status": {
    }
}

Attach ISO to Instance

Attach an ISO to an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "iso_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Response samples

Content type
application/json
{
  • "iso_status": {
    }
}

Detach ISO from instance

Detach the ISO from an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/iso/detach" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "iso_status": {
    }
}

Attach Private Network to Instance Deprecated

Attach Private Network to an Instance.

Deprecated: use Attach VPC to Instance instead.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Detach Private Network from Instance. Deprecated

Detach Private Network from an Instance.

Deprecated: use Detach VPC from Instance instead.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "network_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Attach VPC to Instance

Attach a VPC to an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Detach VPC from Instance

Detach a VPC from an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Attach VPC 2.0 Network to Instance Deprecated

Attach a VPC 2.0 Network to an Instance.

Deprecated: Migrate to VPC Networks and use Attach VPC to Instance instead.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
  • "ip_address": "10.1.144.4"
}

Detach VPC 2.0 Network from Instance Deprecated

Detach a VPC 2.0 Network from an Instance.

Deprecated: Migrate to VPC Networks and use Detach VPC from Instance instead.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "vpc_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Set Instance Backup Schedule

Set the backup schedule for an Instance in UTC. The type is required.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

type
required
string

Type of backup schedule:

Value Description
daily Back up once per day at hour.
weekly Back up once per week on dow at hour.
monthly Back up each month at dom at hour.
daily_alt_even Back up on even dates at hour.
daily_alt_odd Back up on odd dates at hour.
hour
integer

Hour of day to run in UTC.

dow
integer

Day of week to run.

Value Description
1 Sunday
2 Monday
3 Tuesday
4 Wednesday
5 Thursday
6 Friday
7 Saturday
dom
integer

Day of month to run. Use values between 1 and 28.

Responses

Request samples

Content type
application/json
{
  • "type": "daily",
  • "hour": 10,
  • "dow": 1,
  • "dom": 1
}

Get Instance Backup Schedule

Get the backup schedule for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/backup-schedule" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "backup_schedule": {
    }
}

Restore Instance

Restore an Instance from either backup_id or snapshot_id.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "backup_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Response samples

Content type
application/json
{
  • "status": {
    }
}

List Instance IPv4 Information

List the IPv4 information for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
query Parameters
public_network
boolean

If true, includes information about the public network adapter (such as MAC address) with the main_ip entry.

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.

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "ipv4s": [
    ],
  • "meta": {
    }
}

Create IPv4

Create an IPv4 address for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

  • true (default)
  • false

Responses

Request samples

Content type
application/json
{
  • "reboot": true
}

Response samples

Content type
application/json
{
  • "ipv4": {
    }
}

Get Instance IPv6 Information

Get the IPv6 information for an VPS Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "ipv6s": [
    ],
  • "meta": {
    }
}

Create Instance Reverse IPv6

Create a reverse IPv6 entry for an Instance. The ip and reverse attributes are required. IP address must be in full, expanded format.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "ip": "2001:0db8:0005:6bb0:5400:2ff0:fee5:0002",
  • "reverse": "foo.example.com"
}

List Instance IPv6 Reverse

List the reverse IPv6 information for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "reverse_ipv6s": [
    ]
}

Create Instance Reverse IPv4

Create a reverse IPv4 entry for an Instance. The ip and reverse attributes are required.

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "ip": "192.0.2.123",
  • "reverse": "foo.example.com"
}

Get Instance User Data

Get the user-supplied, base64 encoded user data for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/user-data" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "user_data": {
    }
}

Halt Instance

Halt an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/halt" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Set Default Reverse DNS Entry

Set a reverse DNS entry for an IPv4 address

Authorizations:
API Key
path Parameters
instance-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

ip
required
string

Responses

Request samples

Content type
application/json
{
  • "ip": "192.0.2.123"
}

Delete IPv4 Address

Delete an IPv4 address from an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
ipv4
required
string

The IPv4 address.

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/ipv4/{ipv4}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Delete Instance Reverse IPv6

Delete the reverse IPv6 for an Instance.

Authorizations:
API Key
path Parameters
instance-id
required
string
ipv6
required
string

The IPv6 address.

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/ipv6/reverse/{ipv6}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Get Available Instance Upgrades

Get available upgrades for an Instance

Authorizations:
API Key
path Parameters
instance-id
required
string
query Parameters
type
string

Filter upgrade by type:

  • all (applications, os, plans)
  • applications
  • os
  • plans

Responses

Request samples

curl "https://api.vultr.com/v2/instances/{instance-id}/upgrades" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "upgrades": {
    }
}

ISO

Upload and boot instances from your ISO, or choose one from our public ISO library. See our ISO documentation.

List ISOs

Get the ISOs in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/iso" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "isos": [
    ],
  • "meta": {
    }
}

Create ISO

Create a new ISO in your account from url.

Authorizations:
API Key
Request Body schema: application/json

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

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "iso": {
    }
}

Get ISO

Get information for an ISO.

Authorizations:
API Key
path Parameters
iso-id
required
string

The ISO id.

Responses

Request samples

curl "https://api.vultr.com/v2/iso/{iso-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "iso": {
    }
}

Delete ISO

Delete an ISO.

Authorizations:
API Key
path Parameters
iso-id
required
string

The ISO id.

Responses

Request samples

curl "https://api.vultr.com/v2/iso/{iso-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Public ISOs

List all Vultr Public ISOs.

Responses

Request samples

curl "https://api.vultr.com/v2/iso-public" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "public_isos": [
    ],
  • "meta": {
    }
}

Kubernetes

Vultr Kubernetes Engine is a managed Kubernetes offering.

Create Kubernetes Cluster

Create Kubernetes Cluster

Authorizations:
API Key
Request Body schema: application/json

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

  • true
  • false (default)
enable_firewall
boolean

Whether a Firewall Group should be deployed and managed by this cluster

  • true
  • false (default)
Array of objects

Responses

Request samples

Content type
application/json
{
  • "label": "vke",
  • "region": "lax",
  • "version": "v1.20.0+1",
  • "node_pools": [
    ]
}

Response samples

Content type
application/json
{
  • "vke_cluster": {
    }
}

List all Kubernetes Clusters

List all Kubernetes clusters currently deployed

Authorizations:
API Key

Responses

Response samples

Content type
application/json
{
  • "vke_clusters": [
    ],
  • "meta": {
    }
}

Get Kubernetes Cluster

Get Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Responses

Response samples

Content type
application/json
{
  • "vke_cluster": {
    }
}

Update Kubernetes Cluster

Update Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Request Body schema: application/json

Request Body

label
required
string

Label for the Kubernetes cluster

Responses

Request samples

Content type
application/json
{
  • "label": "my new label"
}

Delete Kubernetes Cluster

Delete Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Responses

Delete VKE Cluster and All Related Resources

Delete Kubernetes Cluster and all related resources.

Authorizations:
API Key
path Parameters
vke-id
required
string

Responses

Get Kubernetes Resources

Get the block storage volumes and load balancers deployed by the specified Kubernetes cluster.

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Responses

Response samples

Content type
application/json
{
  • "resources": {
    }
}

Get Kubernetes Available Upgrades

Get the available upgrades for the specified Kubernetes cluster.

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Responses

Request samples

curl "https://api.vultr.com/v2/kubernetes/clusters/{vke-id}/available-upgrades" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "available_upgrades": [
    ]
}

Start Kubernetes Cluster Upgrade

Start a Kubernetes cluster upgrade.

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Request Body schema: application/json

Request Body

upgrade_version
required
string

The version you're upgrading to.

Responses

Request samples

Content type
application/json
{
  • "upgrade_version": "v1.22.8+3"
}

Create NodePool

Create NodePool for a Existing Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "node_quantity": 2,
  • "label": "nodepool",
  • "plan": "vc2-1c-2gb",
  • "tag": "my-tag",
  • "min_nodes": 2,
  • "max_nodes": 5,
  • "auto_scaler": true
}

Response samples

Content type
application/json
{
  • "node_pool": {
    }
}

List NodePools

List all available NodePools on a Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Responses

Response samples

Content type
application/json
{
  • "node_pools": [
    ],
  • "meta": {
    }
}

Get NodePool

Get Nodepool from a Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

nodepool-id
required
string

Responses

Response samples

Content type
application/json
{
  • "node_pool": {
    }
}

Update Nodepool

Update a Nodepool on a Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

nodepool-id
required
string
Request Body schema:

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.

Responses

Request samples

Content type
{
  • "node_quantity": 1,
  • "tag": "my-tag",
  • "min_nodes": 1,
  • "max_nodes": 5,
  • "auto_scaler": true
}

Response samples

Content type
application/json
{
  • "node_pool": {
    }
}

Delete Nodepool

Delete a NodePool from a Kubernetes Cluster

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

nodepool-id
required
string

Responses

Delete NodePool Instance

Delete a single nodepool instance from a given Nodepool

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

nodepool-id
required
string
node-id
required
string

Responses

Recycle a NodePool Instance

Recycle a specific NodePool Instance

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

nodepool-id
required
string
node-id
required
string

Node ID

Responses

Get Kubernetes Cluster Kubeconfig

Get Kubernetes Cluster Kubeconfig

Authorizations:
API Key
path Parameters
vke-id
required
string

The VKE ID.

Responses

Response samples

Content type
application/json
{
  • "kube_config": "YXBpdmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VSblZFTkRRVzF0WjBGM1NVSkJaMGxKU2psdFN6bEViRk5pY0RSM1JGRlpTa3R2V2tsb2RtTk9RVkZGVEVKUlFYZFVla1ZNVFVGclIwRXhWVVVLUW1oTlExWldUWGhHYWtGVlFtZE9Wa0pCWTFSRVZrNW9ZbWxDUjJOdFJuVlpNbXg2V1RJNGVFVjZRVkpDWjA1V1FrRnZWRU5yZERGWmJWWjVZbTFXTUFwYVdFMTRSWHBCVWtKblRsWkNRVTFVUTJ0ME1WbHRWbmxpYlZZd1dsaE5kMGhvWTA1TmFrVjNUbnBCZVUxVVNYaE5la0Y1VjJoalRrMXFTWGRPZWtGNUNrMVVTWGhOZWtGNVYycENVRTFSYzNkRFVWbEVWbEZSUjBWM1NsWlZla1ZYVFVKUlIwRXhWVVZDZUUxT1ZUSkdkVWxGV25sWlZ6VnFZVmhPYW1KNlJWUUtUVUpGUjBFeFZVVkRhRTFMVXpOV2FWcFlTblZhV0ZKc1kzcEZWRTFDUlVkQk1WVkZRWGhOUzFNelZtbGFXRXAxV2xoU2JHTjZRME5CVTBsM1JGRlpTZ3BMYjFwSmFIWmpUa0ZSUlVKQ1VVRkVaMmRGVUVGRVEwTkJVVzlEWjJkRlFrRk1laTlITXpOaVlWZG5TMU5GVmpKQ2RsQlhZbWd6WkhZclYybEhOVlJqQ2s1bllVTlZNMlJWVm5KdGNtaHVXbVJPYWtkTVl5OUJTR3RIWm1OaVIxQlRXbkJ2UVZCbWFuaGtWRTA0WlVOTFlXdGxkR0Z6YkRsdFNDOVhlVTlETXpnS1pGcEZVWGRSZWpseFIzWnpaa3BTT0RKQ01WWTBWM3AxUVdRMEwxSmtaVGxqU3psaVdIWktkRUZMU2xrNVF6aG9VM2RtTDNNM1drRlNabGxYYTIxb1R3cHZkSHBFUnpaR2JtaFljSFJtUkRZdmRXNXNXRWhyYTNveFVHSjZhR1Z2ZG5adU9GUkNUamR2UWpkTVdUaG9kRE5tVTBJeFEwSlRTMGxxV1hsaGJEaHJDbU5XZVU1R1MyUndVRVoxV0ZvelkyYzRaMHN2ZUROS1VXZHBLMGxqVTA0Mk9GZDJaa3gxYXpjM2JXOXNWWE5IY25neWNWRkZTa2RwU2k5SGEzUm5kMndLWlVnNU1FbHpMMkZDZERjd1dsaG9aM2cyTnpkSmVuTnVWMnN3UWpWSFlVeGpaRk5oYUN0WlNraGthbkpMU0N0R01qVTNWekpvTUVOQmQwVkJRV0ZPYUFwTlJqaDNSR2RaUkZaU01GQkJVVWd2UWtGUlJFRm5TMFZOUWpCSFFURlZaRXBSVVZkTlFsRkhRME56UjBGUlZVWkNkMDFEUW1kbmNrSm5SVVpDVVdORUNrRlVRVkJDWjA1V1NGSk5Ra0ZtT0VWQ1ZFRkVRVkZJTDAxQ01FZEJNVlZrUkdkUlYwSkNVME5EVWtoSmFERm1XbnBzU210MFMwVmtOalpITVZWWGRqQUtNRVJCVGtKbmEzRm9hMmxIT1hjd1FrRlJjMFpCUVU5RFFWRkZRV0V3VG1SUVlYa3dPREp0YVcxWllUa3ZOVVpMY1hWa1YwSmpabVpHVkVScFdrTmljUXA1YVUxNFZXeEVTQzl6Tm1Od1YzbEJORXRuY0ZGRWMySXdiM0pzYTNwTk1ERjNieTlsTUc1clUxTTFVVkIyWVZvNU9FaFNObFlyTUV4a0swZzViM1JCQ2xZM2VUbEdlQzlJVUhCdldGWTJhVWswYWpCaVpFdFBNMHQ0VUZKVWRsaDFRMUZETTNRd2FHc3pjVnBRSzFSalNEaHhWRTV6VkVwb1JGTnlSMWRLUjNvS1dqZ3liMGwwY0c5RVRsaEJZVUpqYmxSRmNUUkNXRzFoTTJVNVJHSkpVMU5SZW5aaGFIYzBWMkZwVTFWNGVYUllVakJ5Um1oaFpFUnpkbFJuVVhZNGF3cEdlbkV5TjNkS2RUaHZUV2hIWTJWb2VGUlRXVUpyWjNGWVUzYzNPR2xsTVZadk1XVlBMMGxTYlhsM1ZtMWlhM2M1TWswcldtZFdOV0Z3VERCNlNYRnNDbFEzWmtkekszWTViREkwYkM4eGFIbExVekZCU1ZKTmVrRkljMGw1YVdWdE1GUkZUM0Z6WVVVNVFYWjBlWEZZZEZKblBUMEtMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIHNlcnZlcjogaHR0cHM6Ly9jOTA3ZTgzMi0zMDgwLTQ4YTYtYTU0ZC03Mzc5ZTY0NWMwYjcudnVsdHItazhzLmNvbTo2NDQzCiAgbmFtZTogdmtlCmNvbnRleHRzOgotIGNvbnRleHQ6CiAgICBjbHVzdGVyOiB2a2UKICAgIHVzZXI6IGFkbWluCiAgbmFtZTogdmtlCmN1cnJlbnQtY29udGV4dDogdmtlCmtpbmQ6IENvbmZpZwpwcmVmZXJlbmNlczoge30KdXNlcnM6Ci0gbmFtZTogYWRtaW4KICB1c2VyOgogICAgY2xpZW50LWNlcnRpZmljYXRlLWRhdGE6IExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJWUkVORFFXcHBaMEYzU1VKQlowbEpUVmg0VTFOSGRFRnliR2QzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpSUVhkVWVrVk1UVUZyUjBFeFZVVUtRbWhOUTFaV1RYaEdha0ZWUW1kT1ZrSkJZMVJFVms1b1ltbENSMk50Um5WWk1teDZXVEk0ZUVWNlFWSkNaMDVXUWtGdlZFTnJkREZaYlZaNVltMVdNQXBhV0UxNFJYcEJVa0puVGxaQ1FVMVVRMnQwTVZsdFZubGliVll3V2xoTmQwaG9ZMDVOYWtWM1RucEJlVTFVU1hoTmVrRjVWMmhqVGsxcVNYZE9la0Y1Q2sxVVNYaE5la0Y1VjJwQ1QwMVJjM2REVVZsRVZsRlJSMFYzU2xaVmVrVlhUVUpSUjBFeFZVVkNlRTFPVlRKR2RVbEZXbmxaVnpWcVlWaE9hbUo2UlZnS1RVSlZSMEV4VlVWRGFFMVBZek5zZW1SSFZuUlBiVEZvWXpOU2JHTnVUWGhFYWtGTlFtZE9Wa0pCVFZSQ1YwWnJZbGRzZFUxSlNVSkpha0ZPUW1kcmNRcG9hMmxIT1hjd1FrRlJSVVpCUVU5RFFWRTRRVTFKU1VKRFowdERRVkZGUVhselRIVndNSHBvYXpsUFVHODVWa05TTUZSbmJ6UTFORThyV0hOTVEyUXhDbE5CWVdKNmFtMVJaM1pEVVZKeFdEaEZUa0Z0VW5kbVdFUjNaRkJMWTFkbmFtcHpRaTlQU2pSR2F6TmpWWFZIVVdkNmFrRkRXVVJYVjNBM1RWaG1TM1VLVm5GeVNGTmtZMnhQWVV0dEwwbGpNMEkxWVd0a1pYcGxRVFJ4UzFGRlRrbFVSbXR1VkdSWVJ6RTFVV3MxU2tNMGNIWXpaa3M1ZUhVMldqZHhjVmRXVlFwdmVFMXdjR2huV1hGWFVsUkNSMnByT0hSRk5sbDZOazVZZGs5NkwxVXpNWEprV0ZOVFluYzRWakpxTUdnNU1FTlRMMkZLVkN0U01sRmxNRWh3YkZNeUNsSjBWek0yYlRjMFVGaHpXRGQ2Ym1aTVZWZEpaMGQxYjBvNVdYTkJNRFphUTFSVllrdFNTekV2V0haRmFGZHVPSGRtWTFCblRHTXlRWEJRTnpsMVlYa0taV0phZVV4SmFXOWFXRXRNVERWQ05tcEZaVkZWV2pGWlRFTjNSV0pCTXpWYVdYSm1lRTVCUmsxcFUwcDFTMnhhUlRWSGNYRlJTVVJCVVVGQ2IzcEZkd3BNZWtGUFFtZE9Wa2hST0VKQlpqaEZRa0ZOUTBGdlVYZElVVmxFVmxJd2JFSkNXWGRHUVZsSlMzZFpRa0pSVlVoQmQwbEhRME56UjBGUlZVWkNkMDFDQ2sxQk1FZERVM0ZIVTBsaU0wUlJSVUpEZDFWQlFUUkpRa0ZSUWpWbUwwdHJVVGxRV1d4WE1uQllUek13V1dSYVZHMUlhbWRhTm10RlFUUmhVelJvVWs4S2NqSldSbHBwUjBoUVluZGFZMjVuZFc1UVRXTnJaRmh2UWs5a1dsVkhkelpoYkUxaVFVOUZhRlpIUVVOSU5IcEhkM2RUUlZrMk5HRTJVV0ZsVFVaSWF3cHZkalU1UW1GclJIZFJkVlprTVdoMk1rcFZkMXB3WTFsTVZUZE5PWGRLWTI5a09FODBNM0EyVGxwTmNrVjBObHB2YmtsSWJGbEpkMGhFTWxWaGVYcHZDamhUVkhWeWNXVm5jakJvYzAwd1ltWlFRbkZzY25CdE9VTXZOV2hVVjJVemJ6STJiRFpNUTBabWFFdzBaamN5VURSaWFYWnNkVTVoYVc5UFp6QXZXVVlLZFVwd09WUjZkMnRuUWtSVE9DOU5hVTFUVDFwSFpVdHlia2hWYlhKa2FGbHpSbTFCVVRCRVRYWlJiMnh1TWtwVlRYSXlkWE4yU0VGcFJGWm9PVkZMWlFwM1lrSlRMMlJ3UW04M09UbEZRWHBpWkdaclpIcG5iVWhDU2k5WU4wVjNNR3B4Tm5Nek5YTkRNMUpqY0dNNFJrd0tMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIGNsaWVudC1rZXktZGF0YTogTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGYjJkSlFrRkJTME5CVVVWQmVYTk1kWEF3ZW1ock9VOVFiemxXUTFJd1ZHZHZORFUwVHl0WWMweERaREZUUVdGaWVtcHRVV2QyUTFGU2NWZzRDa1ZPUVcxU2QyWllSSGRrVUV0alYyZHFhbk5DTDA5S05FWnJNMk5WZFVkUlozcHFRVU5aUkZkWGNEZE5XR1pMZFZaeGNraFRaR05zVDJGTGJTOUpZek1LUWpWaGEyUmxlbVZCTkhGTFVVVk9TVlJHYTI1VVpGaEhNVFZSYXpWS1F6Undkak5tU3psNGRUWmFOM0Z4VjFaVmIzaE5jSEJvWjFseFYxSlVRa2RxYXdvNGRFVTJXWG8yVGxoMlQzb3ZWVE14Y21SWVUxTmlkemhXTW1vd2FEa3dRMU12WVVwVUsxSXlVV1V3U0hCc1V6SlNkRmN6Tm0wM05GQlljMWczZW01bUNreFZWMGxuUjNWdlNqbFpjMEV3TmxwRFZGVmlTMUpMTVM5WWRrVm9WMjQ0ZDJaalVHZE1ZekpCY0ZBM09YVmhlV1ZpV25sTVNXbHZXbGhMVEV3MVFqWUtha1ZsVVZWYU1WbE1RM2RGWWtFek5WcFpjbVo0VGtGR1RXbFRTblZMYkZwRk5VZHhjVkZKUkVGUlFVSkJiMGxDUVVKaWN6VXpUQzlJUm5CTmFESmpjd3A1Tm5WdVVFRmpRMHQwU1VzNGVVMXBObll6VkRCWVdVWjVSRTFzTlVGdk5EVnJSVFJhTjNWTlVsZExjbTUxV0VsT1NtdG5WSFE0Tmpndk1FSnVURWMyQ2xVd05tazRaMDlvUkRWME4ySlFkMHRZYlM5eFN6RktUVUY1WkRkSWIzQmhPVE4yYVV0dlNYa3pMemxwWjB4Tk0yRkZkRXB2Vlc5S2NUaDJaMDFxVDNRS2MxWk5aMVJWVmpKVVVYZGFUR056ZEdFNU5YTlphamh1V214S2QyczNhSHBFTmtFemNUSTBhRVJ0YUU1a2FUZ3dSSEJEVDJjMk1IbFpTaXQ2Y0dab1dBcHZORkJPTlhsTVZGaFhkSG80SzJ0UllqaDZaR3B0Wms5a1pHVnJaeTlOTTA1T1pUY3JPRVZHV2tJMWExWkRkbEV3UmxoSVIxRlZPREUzV1dNdlNEZHZDamhpVFZsM2QySlZRbEppTkdobmVWWnZkemxVV2s5YVkwMXVMM2xoYVd3M1JtVmljblpGU2s5dVJtdG9Wa3BoUlRKdVlWSlJjbEJ1TmtORWRVdEdXRGdLUTJNM2JHZGhSVU5uV1VWQmVuZEVURlpFY1UxWlYxcHNiWFJUYzJGdWVGaEJhMnBwUW5GVWFreFhTbGRIZVZSTk0xZEtUM2RzZG1GWk9FTlRiSHB5TkFwelMyOTNOMXByT0doQ1ZXSm1WRFJCV1ZWTlpVRlBSV0p2UkhCTVpYQTBURmxYU0hSUmJuQkpWakY1ZURSMVdWZHlSM28yZVhSemVGbE1MMnRvYTBSMENtUnVRVTFDVTBOdlZXOW1VVWczSzBWa2NHdFpZbGxrYW05bFZuWXdlalpPVG1SQ1ZYSk9VbFpQWlc1NFR6WkllR1JIZDNwSFUxVkRaMWxGUVN0elJXVUtVMk5wU0RSbWIybDVkRlZNWW5VMVJVVmtaM0YwTDFseUszTmtVMjl6TURGTWVtOXpSVU4wZGpFMGJrNHZWVlpIYTI5WE5UUTRVVEpOYmtkeUswSTFLd3BvUkRCME1XTXpXQ3RPT1dOc2FYRXdWVzVGZVhad09DOXhWblJUZGxSYWFscEdOVTFKTXpadWJqWXhVVkkxV0hOcFNEVmhWbWQyUlRoYWNFNTBSbHBsQ21sWlRVNHpRM2R6VjNCb1drMUJTV2hVZDI1S1RVOVZlVXhHVlhWT05rTjNhelJFUlhacVZVTm5XVUZ2UWs5R1MxVldPV1ZZVTNRM1pWYzBlakJCU1VzS1VWRnFhR1V2VFc1cVVVWlZhMmhNUWtsbldsUTRUMjlTY1hWTmMwNVplSEZ4ZUhneVkzTXJUMUZZTld4QmFESlZjME5OVjNwSE5Va3hZbmhPTkd0M1ZRbzRXbVZ4TmtoVlpqTndNMDVZWlc4MFVEUkdhM2R0WlZSaGMxaEdXbkozUW5vM2RXcExhVTFuWjFnd2RFSm9kVmg1YUZVNE5UVllUbU5OZG1weVVUUnFDblo2YWk5cFRGWktWWFkzSzBwc2NrWjRWREZFZFZGTFFtZEhZbkJrVmxoUk1FUjJiRmhtZDJrellrNXJXa1pzZVdZeU0wdDNXbWRHTUVKMGVUTjJORWtLUVU5bFRpOUVVRmx2WTNKMFkwbzFXRGxqWms0d2JsSXphRW95Y2xocU9VWnZTbU5qUTFOU2FDOHllU3RGUVRJMU1scHhNRmgyZEZKMVN6Vm9UVkFyVkFwV0szQkdXU3RSTjNwRVVHeERlRTlzZWpoME5uWjRVblJSVEVSbWRHRk1ORkF5Y2paVmFWaEpWM1Z3UTBwWmREZDBOaXQ1YTFKdWVYZzJiMkUzTHpGS0NtNTJWakZCYjBkQlRtRkZSV1VyZERoNGFXUlFaeXRIUm5FemN6VkhUa1pPU0VKQmMzcG1NV3BxVFdwdmF6ZEtiMmxyWWxaVU1FNUJWVmhLZEdWclNra0taekZPVUd0UVQxSjRWakZWY0dKUGVsUXJhMWhyTjBwVmExTTNiVE0zV0VneWRuUm1abVIxTlhFNVEzWkhObkZaYW1OcVpVOHZSRWhzYUZWRmNrMUpXUXBsVHpSQk9FOUNWRWgwUVRkM01XTjVVa2hIVUZWUE1VRlFiRXRTTWtWVU9XMXVOeXROV0hSRU1GQmxjRWh2TVV0UU9VRTlDaTB0TFMwdFJVNUVJRkpUUVNCUVVrbFdRVlJGSUV0RldTMHRMUzB0Q2c9PQo="
}

Get Kubernetes Versions

Get a list of supported Kubernetes versions

Responses

Response samples

Content type
application/json
{
  • "versions": [
    ]
}

Load Balancers

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 Load Balancers

List the Load Balancers in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "load_balancers": [
    ],
  • "meta": {
    }
}

Create Load Balancer

Create a new Load Balancer in a particular region.

Authorizations:
API Key
Request Body schema: application/json

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.

  • roundrobin (default)
  • leastconn
ssl_redirect
boolean

If true, this will redirect all HTTP traffic to HTTPS. You must have an HTTPS rule and SSL certificate installed on the load balancer to enable this option.

  • true
  • false
http2
boolean

If true, this will enable HTTP2 traffic. You must have an HTTPS forwarding rule combo (HTTPS -> HTTPS) to enable this option.

  • true
  • false
http3
boolean

If true, this will enable HTTP3/QUIC traffic. You must have HTTP2 enabled.

  • true
  • false
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 true, you must configure backend nodes to accept Proxy protocol.

  • true
  • false (Default)
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 instead. ID of the private network you wish to use. If private_network is omitted it will default to the public network.

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.

Responses

Request samples

Content type
application/json
{
  • "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": {
    },
  • "forwarding_rules": [
    ],
  • "firewall_rules": [
    ],
  • "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406",
  • "auto_ssl": {
    },
  • "global_regions": [
    ]
}

Response samples

Content type
application/json
{
  • "load_balancer": {
    }
}

Get Load Balancer

Get information for a Load Balancer.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "load_balancer": {
    }
}

Update Load Balancer

Update information for a Load Balancer. All attributes are optional. If not set, the attributes will retain their original values.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string
Request Body schema: application/json

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 true, you must configure backend nodes to accept Proxy protocol.

  • true
  • false (Default)
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 true, this will redirect all HTTP traffic to HTTPS. You must have an HTTPS rule and SSL certificate installed on the load balancer to enable this option.

  • true
  • false
http2
boolean

If true, this will enable HTTP2 traffic. You must have an HTTPS forwarding rule combo (HTTPS -> HTTPS) to enable this option.

  • true
  • false
http3
boolean

If true, this will enable HTTP3/QUIC traffic. You must have HTTP2 enabled.

  • true
  • false
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.

  • roundrobin (default)
  • leastconn
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 instead. ID of the private network you wish to use. If private_network is omitted it will default to the public network.

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.

Responses

Request samples

Content type
application/json
{
  • "ssl": {
    },
  • "sticky_session": {
    },
  • "forwarding_rules": [
    ],
  • "firewall_rules": [
    ],
  • "health_check": {
    },
  • "proxy_protocol": true,
  • "timeout": 600,
  • "ssl_redirect": true,
  • "http2": true,
  • "http3": true,
  • "nodes": 1,
  • "balancing_algorithm": "roundrobin",
  • "instances": [
    ],
  • "vpc": "9fed374c-0afc-42bf-926c-abcf840b5406",
  • "auto_ssl": {
    },
  • "global_regions": [
    ]
}

Delete Load Balancer

Delete a Load Balancer.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Delete Load Balancer SSL

Delete a Load Balancer SSL.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/ssl" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Disable Load Balancer Auto SSL

Disable a Load Balancer Auto SSL. This will not remove an ssl certificate from the load balancer.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/auto_ssl" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Forwarding Rules

List the fowarding rules for a Load Balancer.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "forwarding_rules": [
    ],
  • "meta": {
    }
}

Create Forwarding Rule

Create a new forwarding rule for a Load Balancer.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string
Request Body schema: application/json

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.

  • HTTP
  • HTTPS
  • TCP
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.

  • HTTP
  • HTTPS
  • TCP
backend_port
required
integer

The port number destination on the backend server.

Responses

Request samples

Content type
application/json
{
  • "frontend_protocol": "http",
  • "frontend_port": 8080,
  • "backend_protocol": "http",
  • "backend_port": 80
}

Get Forwarding Rule

Get information for a Forwarding Rule on a Load Balancer.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string
forwarding-rule-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/forwarding-rules/{forwarding-rule-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "forwarding_rule": {
    }
}

Delete Forwarding Rule

Delete a Forwarding Rule on a Load Balancer.

Authorizations:
API Key
path Parameters
load-balancer-id
required
string
forwarding-rule-id
required
string

Responses

Request samples

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 Firewall Rules

List the firewall rules for a Load Balancer.

Authorizations:
API Key
path Parameters
loadbalancer-id
required
string
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/firewall-rules" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "firewall_rules": [
    ],
  • "meta": {
    }
}

Get Firewall Rule

Get a firewall rule for a Load Balancer.

Authorizations:
API Key
path Parameters
loadbalancer-id
required
string
firewall-rule-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/load-balancers/{load-balancer-id}/firewall-rules/{firewall-rule-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "firewall_rule": {
    }
}

Managed Databases

Vultr Managed Databases is a managed database offering supporting MySQL, PostgreSQL, Valkey, and Apache Kafka®.

List Managed Database Plans

List all Managed Databases plans.

Authorizations:
API Key
query Parameters
engine
string

Filter by engine type

  • mysql
  • pg
  • valkey
  • kafka
nodes
integer

Filter by number of nodes.

region
string

Filter by Region id.

Responses

Request samples

curl "https://api.vultr.com/v2/databases/plans" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "plans": [
    ]
}

List Managed Databases

List all Managed Databases in your account.

Authorizations:
API Key
query Parameters
label
string

Filter by label.

tag
string

Filter by specific tag.

region
string

Filter by Region id.

Responses

Request samples

curl "https://api.vultr.com/v2/databases" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "databases": [
    ],
  • "meta": {
    }
}

Create Managed Database

Create a new Managed Database in a region with the desired plan. Supply optional attributes as desired.

Authorizations:
API Key
Request Body schema: application/json

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.

  • mysql
  • pg
  • valkey
  • kafka
database_engine_version
required
string

The version of the chosen database engine type for the Managed Database.

  • MySQL: 8
  • PostgreSQL: 13 - 17
  • Valkey: 7
  • Kafka: 3.8
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 new to configure a new VPC network with this deployment.

maintenance_dow
string

The day of week for routine maintenance updates.

  • monday
  • tuesday
  • wednesday
  • thursday
  • friday
  • saturday
  • sunday
maintenance_time
string

The preferred time (UTC) for routine maintenance updates to occur in 24-hour HH:00 format (e.g. 01:00, 13:00, 23:00, etc.).

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).

  • ALLOW_INVALID_DATES
  • ANSI (Combination Mode)
  • ANSI_QUOTES
  • ERROR_FOR_DIVISION_BY_ZERO
  • HIGH_NOT_PRECEDENCE
  • IGNORE_SPACE
  • NO_AUTO_VALUE_ON_ZERO
  • NO_DIR_IN_CREATE
  • NO_ENGINE_SUBSTITUTION
  • NO_UNSIGNED_SUBTRACTION
  • NO_ZERO_DATE
  • NO_ZERO_IN_DATE
  • ONLY_FULL_GROUP_BY
  • PIPES_AS_CONCAT
  • REAL_AS_FLOAT
  • STRICT_ALL_TABLES
  • STRICT_TRANS_TABLES
  • TIME_TRUNCATE_FRACTIONAL
  • TRADITIONAL (Combination Mode)
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)

Responses

Request samples

Content type
application/json
{
  • "database_engine": "mysql",
  • "database_engine_version": "8",
  • "region": "ewr",
  • "plan": "vultr-dbaas-hobbyist-cc-1-25-1",
  • "label": "Example Managed Database"
}

Response samples

Content type
application/json
{
  • "database": {
    }
}

Get Managed Database

Get information about a Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "database": {
    }
}

Update Managed Database

Update information for a Managed Database. All attributes are optional. If not set, the attributes will retain their original values.

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

  • monday
  • tuesday
  • wednesday
  • thursday
  • friday
  • saturday
  • sunday
maintenance_time
string

The preferred time (UTC) for routine maintenance updates to occur in 24-hour HH:00 format (e.g. 01:00, 13:00, 23:00, etc.).

cluster_time_zone
string

The configured time zone for the Managed Database in TZ database format (e.g. UTC, America/New_York, Europe/London, etc.).

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).

  • ALLOW_INVALID_DATES
  • ANSI (Combination Mode)
  • ANSI_QUOTES
  • ERROR_FOR_DIVISION_BY_ZERO
  • HIGH_NOT_PRECEDENCE
  • IGNORE_SPACE
  • NO_AUTO_VALUE_ON_ZERO
  • NO_DIR_IN_CREATE
  • NO_ENGINE_SUBSTITUTION
  • NO_UNSIGNED_SUBTRACTION
  • NO_ZERO_DATE
  • NO_ZERO_IN_DATE
  • ONLY_FULL_GROUP_BY
  • PIPES_AS_CONCAT
  • REAL_AS_FLOAT
  • STRICT_ALL_TABLES
  • STRICT_TRANS_TABLES
  • TIME_TRUNCATE_FRACTIONAL
  • TRADITIONAL (Combination Mode)
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)

Responses

Request samples

Content type
application/json
{
  • "plan": "vultr-dbaas-startup-cc-1-55-2",
  • "label": "Example Managed Database"
}

Response samples

Content type
application/json
{
  • "database": {
    }
}

Delete Managed Database

Delete a Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Get Database Usage Information

Get disk, memory, and vCPU usage information for a Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/usage" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "usage": {
    }
}

List Database Users

List all database users within the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/users" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "users": [
    ],
  • "meta": {
    }
}

Create Database User

Create a new database user within the Managed Database. Supply optional attributes as desired.

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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).

  • caching_sha2_password (default if omitted)
  • mysql_native_password
permission
string

The permission level for the database user (Kafka engine types only).

  • admin
  • read
  • write
  • readwrite

Responses

Request samples

Content type
application/json
{
  • "username": "some_new_user",
  • "password": "some_secure_password",
  • "encryption": "caching_sha2_password"
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

Get Database User

Get information about a Managed Database user.

Authorizations:
API Key
path Parameters
database-id
required
string
username
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "user": {
    }
}

Update Database User

Update database user information within a Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string
username
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "password": "some_new_password_here"
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

Delete Database User

Delete a database user within a Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string
username
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/users/{username}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Set Database User Access Control

Configure access control settings for a Managed Database user (Valkey and Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
username
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

One of
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.

Responses

Request samples

Content type
application/json
{
  • "acl_categories": [
    ],
  • "acl_channels": [
    ],
  • "acl_commands": [ ],
  • "acl_keys": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

List Logical Databases

List all logical databases within the Managed Database (MySQL and PostgreSQL only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/dbs" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "dbs": [
    ],
  • "meta": {
    }
}

Create Logical Database

Create a new logical database within the Managed Database (MySQL and PostgreSQL only).

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

name
required
string

The name of the logical database.

Responses

Request samples

Content type
application/json
{
  • "name": "new_db_name"
}

Response samples

Content type
application/json
{
  • "db": {
    }
}

Get Logical Database

Get information about a logical database within a Managed Database (MySQL and PostgreSQL only).

Authorizations:
API Key
path Parameters
database-id
required
string
db-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/dbs/{db-name}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "db": {
    }
}

Delete Logical Database

Delete a logical database within a Managed Database (MySQL and PostgreSQL only).

Authorizations:
API Key
path Parameters
database-id
required
string
db-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/dbs/{db-name}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Database Topics

List all topics within the Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/topics" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "topics": [
    ],
  • "meta": {
    }
}

Create Database Topic

Create a new topic within the Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "name": "some_new_topic",
  • "partitions": 3,
  • "replication": 2,
  • "retention_hours": 160,
  • "retention_bytes": -1
}

Response samples

Content type
application/json
{
  • "topic": {
    }
}

Get Database Topic

Get information about a Managed Database topic (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
topic-name
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/topics/{topic-name}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "topic": {
    }
}

Update Database Topic

Update topic information within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
topic-name
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "partitions": 5,
  • "replication": 3,
  • "retention_hours": 120,
  • "retention_bytes": 150000
}

Response samples

Content type
application/json
{
  • "topic": {
    }
}

Delete Database Topic

Delete a topic within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
topic-name
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/topics/{topic-name}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Database Quotas

List all quotas within the Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/quotas" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "quotas": [
    ],
  • "meta": {
    }
}

Create Database Quota

Create a new quota within the Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "client_id": "some_new_client",
  • "consumer_byte_rate": 12345,
  • "producer_byte_rate": 23456,
  • "request_percentage": 20,
  • "user": "vultradmin"
}

Response samples

Content type
application/json
{
  • "quota": {
    }
}

Get Database Quota

Get information about a Managed Database quota (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
client-id
required
username
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/quotas/{client-id}/{username}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "quota": {
    }
}

Delete Database Quota

Delete a quota within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
client-id
required
username
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/quotas/{client-id}/{username}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Database Available Connectors

List all available connectors for the Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/available-connectors" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{}

Get Database Connector Configuration Schema

Get the configuration schema for the Managed Database connector (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-class
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/available-connectors/{connector-class}/configuration" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "configuration_schema": [
    ]
}

List Database Connectors

List all connectors within the Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connectors" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "connector": [
    ],
  • "meta": {
    }
}

Create Database Connector

Create a new connector within the Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "name": "some_connector",
  • "class": "com.couchbase.connect.kafka.CouchbaseSinkConnector",
  • "topics": "some_topic",
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "connector": {
    }
}

Get Database Connector

Get information about a Managed Database connector (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "connector": {
    }
}

Update Database Connector

Update connector information within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "topics": "some_topic",
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "connector": {
    }
}

Delete Database Connector

Delete a connector within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Get Database Connector Status

Get status information about a Managed Database connector (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/status" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "connector_status": {
    }
}

Restart Database Connector

Restart a connector within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/restart" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Pause Database Connector

Pause a connector within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/pause" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Resume Database Connector

Resume a paused connector within a Managed Database (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connectors/{connector-name}/resume" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Restart Database Connector Task

Restart a task within a Managed Database connector (Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
connector-name
required
task-id
required
string

Responses

Request samples

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 Maintenance Updates

List all available maintenance updates within the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/maintenance" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "available_updates": [
    ]
}

Start Maintenance Updates

Start maintenance updates for the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/maintenance" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "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 Alerts

List service alert messages for the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "period": "day"
}

Response samples

Content type
application/json
{
  • "alerts": [
    ]
}

Get Migration Status

View the status of a migration attached to the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/migration" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "migration": {
    }
}

Start Migration

Start a migration to the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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 default for Valkey if left empty or unset.

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.

Responses

Request samples

Content type
application/json
{
  • "host": "some_host",
  • "port": 3306,
  • "username": "some_username",
  • "password": "some_password",
  • "database": "some_database",
  • "ignored_databases": "",
  • "ssl": true
}

Response samples

Content type
application/json
{
  • "migration": {
    }
}

Detach Migration

Detach a migration from the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/migration" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Add Read-Only Replica

Create a read-only replica node for the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "label": "new_read_replica_label"
}

Response samples

Content type
application/json
{
  • "database": {
    }
}

Promote Read-Only Replica

Promote a read-only replica node to its own primary Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/promote-read-replica" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Get Backup Information

Get backup information for the Managed Database.

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/backups \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "latest_backup": {
    },
  • "oldest_backup": {
    }
}

Restore from Backup

Create a new Managed Database from a backup.

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

  • pitr: Point-in-time recovery
  • basebackup: Latest backup (default if omitted)
date
string

The backup date to use when restoring the Managed Database in YYYY-MM-DD date format. Required for pitr type requests.

time
string

The backup time to use when restoring the Managed Database in HH-MM-SS time format (24-hour UTC). Required for pitr type requests.

Responses

Request samples

Content type
application/json
{
  • "label": "new_restore_label",
  • "type": "pitr",
  • "date": "2023-02-06",
  • "time": "08:00:00"
}

Response samples

Content type
application/json
{
  • "database": {
    }
}

Fork Managed Database

Fork a Managed Database to a new subscription from a backup.

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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 new to configure a new VPC network with this deployment.

type
string

The type of backup restoration to use for this Managed Database.

  • pitr: Point-in-time recovery
  • basebackup: Latest backup (default if omitted)
date
string

The backup date to use when restoring the Managed Database in YYYY-MM-DD date format. Required for pitr type requests.

time
string

The backup time to use when restoring the Managed Database in HH-MM-SS time format (24-hour UTC). Required for pitr type requests.

Responses

Request samples

Content type
application/json
{
  • "label": "new_fork_label",
  • "region": "sea",
  • "plan": "vultr-dbaas-startup-cc-2-80-4",
  • "type": "pitr",
  • "date": "2023-02-06",
  • "time": "08:00:00"
}

Response samples

Content type
application/json
{
  • "database": {
    }
}

List Connection Pools

List all connection pools within the Managed Database (PostgreSQL engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "connections": {
    },
  • "connection_pools": [
    ],
  • "meta": {
    }
}

Create Connection Pool

Create a new connection pool within the Managed Database (PostgreSQL engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

  • session
  • transaction
  • statement
size
required
integer

The size of the connection pool.

Responses

Request samples

Content type
application/json
{
  • "name": "new_connection_pool",
  • "database": "some_database",
  • "username": "some_user",
  • "mode": "transaction",
  • "size": 5
}

Response samples

Content type
application/json
{
  • "connection_pool": {
    }
}

Get Connection Pool

Get information about a Managed Database connection pool (PostgreSQL engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
pool-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools/{pool-name}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "connection_pool": {
    }
}

Update Connection Pool

Update connection-pool information within a Managed Database (PostgreSQL engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
pool-name
required
Request Body schema: application/json

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.

  • session
  • transaction
  • statement
size
integer

The size of the connection pool.

Responses

Request samples

Content type
application/json
{
  • "mode": "session"
}

Response samples

Content type
application/json
{
  • "connection_pool": {
    }
}

Delete Connection Pool

Delete a connection pool within a Managed Database (PostgreSQL engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
pool-name
required

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/connection-pools/{pool-name}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List Advanced Options

List all configured and available advanced options for the Managed Database (MySQL, PostgreSQL, and Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/advanced-options" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "configured_options": {
    },
  • "available_options": [
    ]
}

Update Advanced Options

Updates an advanced configuration option for the Managed Database (MySQL, PostgreSQL, and Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

One of
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

Responses

Request samples

Content type
application/json
{
  • "jit": false,
  • "temp_file_limit": 10000,
  • "track_io_timing": "off"
}

Response samples

Content type
application/json
{
  • "configured_options": {
    },
  • "available_options": [
    ]
}

List Available Versions

List all available version upgrades within the Managed Database (PostgreSQL and Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/databases/{database-id}/version-upgrade" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "available_versions": [
    ]
}

Start Version Upgrade

Start a version upgrade for the Managed Database (PostgreSQL and Kafka engine types only).

Authorizations:
API Key
path Parameters
database-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "version": "15"
}

Response samples

Content type
application/json
{
  • "message": "Version upgrade successfully initialized."
}

Marketplace

Vultr Marketplace is a platform for vendors to publish custom applications on Vultr's infrastructure.

List Marketplace App Variables

List all user-supplied variables for a Marketplace App.

Authorizations:
API Key
path Parameters
image-id
required
string

The application's Image ID.

Responses

Request samples

curl "https://api.vultr.com/v2/marketplace/apps/{image-id}/variables" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "variables": [
    ]
}

Object Storage

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.

List Object Storages

Get a list of all Object Storage in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/object-storage" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "object_storages": [
    ],
  • "meta": {
    }
}

Create Object Storage

Create new Object Storage. The cluster_id attribute is required.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "label": "Example Object Storage",
  • "cluster_id": 2,
  • "tier_id": 4
}

Response samples

Content type
application/json
{
  • "object_storage": {
    }
}

Get Object Storage

Get information about an Object Storage.

Authorizations:
API Key
path Parameters
object-storage-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/object-storage/{object-storage-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "object_storage": {
    }
}

Delete Object Storage

Delete an Object Storage.

Authorizations:
API Key
path Parameters
object-storage-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/object-storage/{object-storage-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update Object Storage

Update the label for an Object Storage.

Authorizations:
API Key
path Parameters
object-storage-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "label": "Updated Object Storage Label"
}

Regenerate Object Storage Keys

Regenerate the keys for an Object Storage.

Authorizations:
API Key
path Parameters
object-storage-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/object-storage/{object-storage-id}/regenerate-keys" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "s3_credentials": {
    }
}

Get All Clusters

Get a list of all Object Storage Clusters.

query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/object-storage/clusters" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "clusters": [
    ],
  • "meta": {
    }
}

Get All Tiers

Get a list of all Object Storage Tiers.

Responses

Request samples

curl "https://api.vultr.com/v2/object-storage/tiers" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "tiers": [
    ]
}

Get All Cluster Tiers

Get a list of all Object Storage Tiers for a given Cluster.

path Parameters
cluster-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/object-storage/clusters/{cluster-id}/tiers" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "tiers": [
    ]
}

Operating Systems

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 OS

List the OS images available for installation at Vultr.

query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/os" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "os": [
    ],
  • "meta": {
    }
}

Plans

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.

List Plans

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.

query Parameters
type
string

Filter the results by type.

Type Description
all All available types
vc2 Cloud Compute
vdc Dedicated Cloud
vhf High Frequency Compute
vhp High Performance
voc All Optimized Cloud types
voc-g General Purpose Optimized Cloud
voc-c CPU Optimized Cloud
voc-m Memory Optimized Cloud
voc-s Storage Optimized Cloud
vcg Cloud GPU
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.

Type Description
windows All available plans that support windows

Responses

Request samples

curl "https://api.vultr.com/v2/plans" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "plans": [
    ],
  • "meta": {
    }
}

List Bare Metal Plans

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.

query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/plans-metal" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "plans_metal": [
    ],
  • "meta": {
    }
}

Private Networks

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 a private network Deprecated

Get information about a Private Network.

Deprecated: Use Get a VPC instead.

Authorizations:
API Key
path Parameters
network-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/private-networks/{network-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "network": {
    }
}

Delete a private network Deprecated

Delete a Private Network.

Deprecated: Use Delete a VPC instead.

Authorizations:
API Key
path Parameters
network-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/private-networks/{network-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update a Private Network Deprecated

Update information for a Private Network.

Deprecated: Use Update a VPC instead.

Authorizations:
API Key
path Parameters
network-id
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

description
required
string

The Private Network description.

Responses

Request samples

Content type
application/json
{
  • "description": "Example Private Network"
}

List Private Networks Deprecated

Get a list of all Private Networks in your account.

Deprecated: Use List VPCs instead.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/private-networks" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "networks": [
    ],
  • "meta": {
    }
}

Create a Private Network Deprecated

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)
Authorizations:
API Key
Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "description": "Example Private Network",
  • "v4_subnet": "10.99.0.0",
  • "v4_subnet_mask": 24
}

Response samples

Content type
application/json
{
  • "network": {
    }
}

Serverless Inference

Vultr Serverless Inference intelligently deploys and serves GenAI models without the complexity of infrastructure management.

List Serverless Inference

List all Serverless Inference subscriptions in your account.

Authorizations:
API Key

Responses

Request samples

curl "https://api.vultr.com/v2/inference" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "subscriptions": [
    ]
}

Create Serverless Inference

Create a new Serverless Inference subscription.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "label": "example-inference"
}

Response samples

Content type
application/json
{
  • "subscription": {
    }
}

Get Serverless Inference

Get information about a Serverless Inference subscription.

Authorizations:
API Key
path Parameters
inference-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/inference/{inference-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "subscription": {
    }
}

Update Serverless Inference

Update information for a Serverless Inference subscription.

Authorizations:
API Key
path Parameters
inference-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "label": "example-inference-udpated"
}

Response samples

Content type
application/json
{
  • "subscription": {
    }
}

Delete Serverless Inference

Delete a Serverless Inference subscription.

Authorizations:
API Key
path Parameters
inference-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/inference/{inference-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Get Serverless Inference Usage Information

Get usage information for a Serverless Inference subscription.

Authorizations:
API Key
path Parameters
inference-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/inference/{inference-id}/usage" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "usage": {
    }
}

VPCs

VPCs are fully isolated networks accessible only by instances on your account. Each VPC is only available in one region and cannot span across regions. An instance can connect to multiple VPCs and you may have up to 5 VPCs per region.

Get a VPC

Get information about a VPC.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Responses

Request samples

curl "https://api.vultr.com/v2/vpcs/{vpc-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpc": {
    }
}

Delete a VPC

Delete a VPC.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Responses

Request samples

curl "https://api.vultr.com/v2/vpcs/{vpc-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update a VPC

Update information for a VPC.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

description
required
string

The VPC description.

Responses

Request samples

Content type
application/json
{
  • "description": "Example VPC"
}

List VPCs

Get a list of all VPCs in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/vpcs" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpcs": [
    ],
  • "meta": {
    }
}

Create a VPC

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)
Authorizations:
API Key
Request Body schema: application/json

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
If v4_subnet_mask is specified then v4_subnet is a required field.

v4_subnet_mask
integer

The number of bits for the netmask in CIDR notation. Example: 24
If v4_subnet is specified then v4_subnet_mask is a required field.

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "description": "Example VPC",
  • "v4_subnet": "10.99.0.0",
  • "v4_subnet_mask": 24
}

Response samples

Content type
application/json
{
  • "network": {
    }
}

VPC 2.0

Deprecated: Use VPCs instead.

VPC 2.0s are fully isolated networks accessible only by instances on your account. Each VPC is only available in one region and cannot span across regions. An instance can connect to multiple VPCs and you may have up to 5 VPCs per region.

Get a VPC 2.0 network Deprecated

Get information about a VPC 2.0 network.

Deprecated: Migrate to VPC Networks and use Get a VPC instead.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Responses

Request samples

curl "https://api.vultr.com/v2/vpc2/{vpc-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpc": {
    }
}

Delete a VPC 2.0 network Deprecated

Delete a VPC 2.0 network.

Deprecated: Migrate to VPC Networks and use Delete a VPC instead.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Responses

Request samples

curl "https://api.vultr.com/v2/vpc2/{vpc-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update a VPC 2.0 network Deprecated

Update information for a VPC 2.0 network.

Deprecated: Migrate to VPC Networks and use Update a VPC instead.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "description": "Example VPC"
}

List VPC 2.0 networks Deprecated

Get a list of all VPC 2.0 networks in your account.

Deprecated: Migrate to VPC Networks and use List VPCs instead.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/vpc2" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "vpcs": [
    ],
  • "meta": {
    }
}

Create a VPC 2.0 network Deprecated

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)
Authorizations:
API Key
Request Body schema: application/json

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:

  • v4
ip_block
string

The VPC subnet IP address. For example: 10.99.0.0
If a prefix_length is specified then ip_block is a required field.

prefix_length
integer

The number of bits for the netmask in CIDR notation. Example: 24
If an ip_block is specified then prefix_length is a required field.

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "description": "Example VPC",
  • "ip_block": "10.99.0.0",
  • "prefix_length": 24
}

Response samples

Content type
application/json
{
  • "vpc": {
    }
}

Get a list of nodes attached to a VPC 2.0 network Deprecated

Get a list of nodes attached to a VPC 2.0 network.

Deprecated: Use VPCs instead.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/vpc2/{vpc-id}/nodes" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "nodes": [
    ],
  • "meta": {
    }
}

Attach nodes to a VPC 2.0 network Deprecated

Attach nodes to a VPC 2.0 network.

Deprecated: Use VPCs instead.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "nodes": [
    ]
}

Remove nodes from a VPC 2.0 network Deprecated

Remove nodes from a VPC 2.0 network.

Deprecated: Use VPCs instead.

Authorizations:
API Key
path Parameters
vpc-id
required
string

The VPC ID.

Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "nodes": [
    ]
}

Reserved IPs

IP addresses can be reserved and moved between instances. Reserved IPs can also be used as floating addresses for high-availability.

Get Reserved IP

Get information about a Reserved IP.

Authorizations:
API Key
path Parameters
reserved-ip
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "reserved_ip": {
    }
}

Delete Reserved IP

Delete a Reserved IP.

Authorizations:
API Key
path Parameters
reserved-ip
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update Reserved IP

Update information on a Reserved IP.

Authorizations:
API Key
path Parameters
reserved-ip
required
string
Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

label
required
string

Responses

Request samples

Content type
application/json
{
  • "label": "Example Label"
}

Response samples

Content type
application/json
{
  • "reserved_ip": {
    }
}

List Reserved IPs

List all Reserved IPs in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/reserved-ips" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "reserved_ips": [
    ],
  • "meta": {
    }
}

Create Reserved IP

Create a new Reserved IP. The region and ip_type attributes are required.

Authorizations:
API Key
Request Body schema: application/json

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.

  • v4
  • v6
label
string

The user-supplied label.

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "ip_type": "v4",
  • "label": "Example Reserved IPv4"
}

Response samples

Content type
application/json
{
  • "reserved_ip": {
    }
}

Attach Reserved IP

Attach a Reserved IP to an compute instance or a baremetal instance - instance_id.

Authorizations:
API Key
path Parameters
reserved-ip
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
}

Detach Reserved IP

Detach a Reserved IP.

Authorizations:
API Key
path Parameters
reserved-ip
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/reserved-ips/{reserved-ip}/detach" \
  -X POST \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Convert Instance IP to Reserved IP

Convert the ip_address of an existing instance into a Reserved IP.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "ip_address": "192.0.2.123",
  • "label": "Example Reserved IPv4"
}

Response samples

Content type
application/json
{
  • "reserved_ip": {
    }
}

Regions

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 Regions

List all Regions at Vultr.

query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/regions" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "regions": [
    ],
  • "meta": {
    }
}

List available plans in region

Get a list of the available plans in Region region-id. Not all plans are available in all regions.

path Parameters
region-id
required
string

The Region id.

query Parameters
type
string

Filter the results by type.

Type Description
all All available types
vc2 Cloud Compute
vdc Dedicated Cloud
vhf High Frequency Compute
vhp High Performance
voc All Optimized Cloud types
voc-g General Purpose Optimized Cloud
voc-c CPU Optimized Cloud
voc-m Memory Optimized Cloud
voc-s Storage Optimized Cloud
vbm Bare Metal
vcg Cloud GPU

Responses

Request samples

curl "https://api.vultr.com/v2/regions/{region-id}/availability" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "available_plans": [
    ]
}

Snapshots

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 Snapshot

Delete a Snapshot.

Authorizations:
API Key
path Parameters
snapshot-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/snapshots/{snapshot-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Get Snapshot

Get information about a Snapshot.

Authorizations:
API Key
path Parameters
snapshot-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/snapshots/{snapshot-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "snapshot": {
    }
}

Update Snapshot

Update the description for a Snapshot.

Authorizations:
API Key
path Parameters
snapshot-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "description": "Example Snapshot"
}

List Snapshots

Get information about all Snapshots in your account.

Authorizations:
API Key
query Parameters
description
string

Filter the list of Snapshots by description

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.

Responses

Request samples

curl "https://api.vultr.com/v2/snapshots" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "snapshots": [
    ],
  • "meta": {
    }
}

Create Snapshot

Create a new Snapshot for instance_id.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "instance_id": "cb676a46-66fd-4dfb-b839-443f2e6c0b60",
  • "description": "Example Snapshot"
}

Response samples

Content type
application/json
{
  • "snapshot": {
    }
}

Create Snapshot from URL

Create a new Snapshot from a RAW image located at url.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "snapshot": {
    }
}

Sub-Accounts

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.

List Sub-Accounts

Get information about all sub-accounts for your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/subaccounts" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "subaccounts": [
    ],
  • "meta": {
    }
}

Create Sub-Account

Create a new subaccount.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "email": "subaccount@vultr.com",
  • "subaccount_name": "Acme Widgets LLC",
  • "subaccount_id": 472924
}

Response samples

Content type
application/json
{
  • "subaccount": {
    }
}

SSH Keys

You can add SSH keys to your account, which can be copied to new instances when first deployed. Updating a key does not update any running instances. If you reinstall an instance (erasing all its data), it will inherit the updated key.

Get SSH Key

Get information about an SSH Key.

Authorizations:
API Key
path Parameters
ssh-key-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/ssh-keys/{ssh-key-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "ssh_key": {
    }
}

Update SSH Key

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.

Authorizations:
API Key
path Parameters
ssh-key-id
required
string
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "name": "Example SSH Key",
  • "ssh_key": "ssh-rsa AA... user@example.com"
}

Delete SSH Key

Delete an SSH Key.

Authorizations:
API Key
path Parameters
ssh-key-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/ssh-keys/{ssh-key-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

List SSH Keys

List all SSH Keys in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/ssh-keys" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "ssh_keys": [
    ],
  • "meta": {
    }
}

Create SSH key

Create a new SSH Key for use with future instances. This does not update any running instances.

Authorizations:
API Key
Request Body schema: application/json

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.

Responses

Request samples

Content type
application/json
{
  • "name": "Example SSH Key",
  • "ssh_key": "ssh-rsa AA... user@example.com"
}

Response samples

Content type
application/json
{
  • "ssh_key": {
    }
}

Startup Scripts

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 Startup Script

Get information for a Startup Script.

Authorizations:
API Key
path Parameters
startup-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/startup-scripts/{startup-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "startup_script": {
    }
}

Delete Startup Script

Delete a Startup Script.

Authorizations:
API Key
path Parameters
startup-id
required
string

Responses

Request samples

curl "https://api.vultr.com/v2/startup-scripts/{startup-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update Startup Script

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.

Authorizations:
API Key
path Parameters
startup-id
required
string
Request Body schema: application/json

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

Responses

Request samples

Content type
application/json
{
  • "name": "Example Startup Script",
  • "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}

List Startup Scripts

Get a list of all Startup Scripts.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/startup-scripts" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "startup_scripts": [
    ],
  • "meta": {
    }
}

Create Startup Script

Create a new Startup Script. The name and script attributes are required, and scripts are base-64 encoded.

Authorizations:
API Key
Request Body schema: application/json

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.

  • boot (default)
  • pxe
script
required
string

The base-64 encoded Startup Script.

Responses

Request samples

Content type
application/json
{
  • "name": "Example Startup Script",
  • "type": "pxe",
  • "script": "QmFzZTY0IEV4YW1wbGUgRGF0YQ=="
}

Response samples

Content type
application/json
{
  • "startup_script": {
    }
}

Users

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 User

Get information about a User.

Authorizations:
API Key
path Parameters
user-id
required
string

The User id.

Responses

Request samples

curl "https://api.vultr.com/v2/users/{user-id}" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "user": {
    }
}

Delete User

Delete a User.

Authorizations:
API Key
path Parameters
user-id
required
string

The User id.

Responses

Request samples

curl "https://api.vultr.com/v2/users/{user-id}" \
  -X DELETE \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Update User

Update information for a User. All attributes are optional. If not set, the attributes will retain their original values.

Authorizations:
API Key
path Parameters
user-id
required
string

The User id.

Request Body schema: application/json

Include a JSON object in the request body with a content type of application/json.

email
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.

  • true (default)
  • false
acls
Array of strings

An array of permission granted. Valid values:

  • abuse
  • alerts
  • billing
  • dns
  • firewall
  • loadbalancer
  • manage_users
  • objstore
  • provisioning
  • subscriptions
  • subscriptions_view
  • support
  • upgrade

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com",
  • "name": "Example User",
  • "password": "example-password",
  • "api_enabled": true,
  • "acls": [
    ]
}

Get Users

Get a list of all Users in your account.

Authorizations:
API Key
query Parameters
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.

Responses

Request samples

curl "https://api.vultr.com/v2/users" \
  -X GET \
  -H "Authorization: Bearer ${VULTR_API_KEY}"

Response samples

Content type
application/json
{
  • "users": [
    ],
  • "meta": {
    }
}

Create User

Create a new User. The email, name, and password attributes are required.

Authorizations:
API Key
Request Body schema: application/json

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.

  • true (default)
  • false
acls
Array of strings

An array of permissions granted.

  • abuse
  • alerts
  • billing
  • dns
  • firewall
  • loadbalancer
  • manage_users
  • objstore
  • provisioning
  • subscriptions
  • subscriptions_view
  • support
  • upgrade

Responses

Request samples

Content type
application/json
{
  • "name": "Example User",
  • "email": "user@example.com",
  • "password": "sh#sedHA_FTdz6w+",
  • "api_enabled": true,
  • "acls": [
    ]
}

Response samples

Content type
application/json
{
  • "user": {
    }
}

VFS

List VFS Regions

Retrieve a list of all regions where VFS can be deployed

Authorizations:
API Key

Responses

Response samples

Content type
application/json
{
  • "regions": [
    ]
}

List VFSs

Retrieve a list of all VFS subscriptions for the account

Authorizations:
API Key

Responses

Response samples

Content type
application/json
{
  • "vfs": [
    ]
}

Create VFS

Create a new VFS subscription with the specified configuration

Authorizations:
API Key
Request Body schema: application/json
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

Responses

Request samples

Content type
application/json
{
  • "region": "ewr",
  • "label": "my-production-storage",
  • "storage_size": {
    },
  • "disk_type": "nvme",
  • "tags": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "123e4567-e89b-12d3-a456-123ab4567c89",
  • "region": "ewr",
  • "date_created": "2024-01-01T12:00:00Z",
  • "status": "active",
  • "label": "my-storage",
  • "tags": [
    ],
  • "disk_type": "nvme",
  • "storage_size": {
    },
  • "storage_used": {
    },
  • "billing": {
    }
}

Get VFS

Retrieve a specific VFS subscription by ID

Authorizations:
API Key
path Parameters
vfs_id
required
string
Example: vfs-123abc

ID of the VFS subscription to retrieve

Responses

Response samples

Content type
application/json
{
  • "id": "123e4567-e89b-12d3-a456-123ab4567c89",
  • "region": "ewr",
  • "date_created": "2024-01-01T12:00:00Z",
  • "status": "active",
  • "label": "my-storage",
  • "tags": [
    ],
  • "disk_type": "nvme",
  • "storage_size": {
    },
  • "storage_used": {
    },
  • "billing": {
    }
}

Update VFS

Update a VFS subscription's label or storage size

Authorizations:
API Key
Request Body schema: application/json
non-empty
label
string

New label for the VFS subscription

object

New storage size (can only increase, not decrease)

Responses

Request samples

Content type
application/json
{
  • "label": "updated-production-storage",
  • "storage_size": {
    }
}

Response samples

Content type
application/json
{
  • "id": "123e4567-e89b-12d3-a456-123ab4567c89",
  • "region": "ewr",
  • "date_created": "2024-01-01T12:00:00Z",
  • "status": "active",
  • "label": "my-storage",
  • "tags": [
    ],
  • "disk_type": "nvme",
  • "storage_size": {
    },
  • "storage_used": {
    },
  • "billing": {
    }
}

Delete VFS

Delete a specific VFS subscription by ID

Authorizations:
API Key
path Parameters
vfs_id
required
string
Example: vfs-123abc

ID of the VFS subscription to retrieve

Responses

List VFS Attachments

Retrieve a list of all attachments for a specific VFS subscription

Authorizations:
API Key
path Parameters
vfs_id
required
string
Example: vfs-123abc

ID of the VFS subscription

Responses

Response samples

Content type
application/json
{
  • "attachments": [
    ]
}

Attach VPS Instance to VFS

Attach a VPS instance to a VFS subscription

Authorizations:
API Key
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "state": "ATTACHED",
  • "vfs_id": "123e4567-e89b-12d3-a456-123ab4567c89",
  • "target_id": "inst-456def",
  • "mount_tag": 12345
}

Get VFS Attachment

Retrieve details about a specific VFS-VPS attachment

Authorizations:
API Key
path Parameters
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

Responses

Response samples

Content type
application/json
{
  • "state": "ATTACHED",
  • "vfs_id": "123e4567-e89b-12d3-a456-123ab4567c89",
  • "target_id": "inst-456def",
  • "mount_tag": 12345
}

Delete VFS Attachment

Detach a VPS instance from a VFS subscription

Authorizations:
API Key
path Parameters
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

Responses