Skip to main content

PyPI Version TOML Python Version PyPI Downloads Pepy Total Downloads Codacy Badge Quality Gate Status Workflow Lint Workflow Test Deployments PyPi Deployments Pages GitHub Last Commit GitHub Repo Size GitHub Top Language GitHub Contributors GitHub Discussions GitHub Forks GitHub Repo Stars GitHub Org Stars Discord Ko-fi

Vultr Python

Vultr Python

Python 3 wrapper for the Vultr API v2.

GitHub PyPi Docs Vultr

Vultr API Reference: https://www.vultr.com/api

[!TIP]
Please submit a Feature Request or report any Issues.

For more details visit www.vultr.com.

Install

From PyPi: https://pypi.org/project/vultr-python

python -m pip install vultr-python

From Source:

git clone https://github.com/cssnr/vultr-python.git
python -m pip install vultr-python

Usage

You will need to create an api key and whitelist your IP address for most functions.

Initialize the Vultr class with your API Key or use the VULTR_API_KEY environment variable.

from vultr import Vultr

vultr = Vultr("VULTR_API_KEY")

List plans and get available regions for that plan

plans = vultr.list_plans({"type": "vc2"})  # Filter by type
plan = plans[0]  # 0 seems to be the base plan
regions = vultr.list_regions()
available = vultr.filter_regions(regions, plan["locations"])

Get the OS list and filter by name

os_list = vultr.list_os()
ubuntu_lts = vultr.filter_os(os_list, "Ubuntu 24.04 LTS x64")

Create a new ssh key from key string

sshkey = vultr.create_key("key-name", "ssh-rsa AAAA...")
vultr.delete_key(sshkey['id'])

Create a new instance

data = {
    "os_id": ubuntu_lts["id"],
    "sshkey_id": [sshkey["id"]],
    "hostname": "my-new-host",
    "label": "my-new-host",
}
instance = vultr.create_instance(available[0], plan, **data)

Arbitrary Methods get, post, patch, put, delete

plans = vultr.get("/plans", {"type": "vc2"})
sshkey = vultr.post("/ssh-keys", name="key-name", ssh_key="ssh-rsa AAAA...")
instance = vultr.patch("/instances/{instance-id}", plan=plans[1]["id"])
database = vultr.put("/databases/{database-id}", tag="new tag")
vultr.delete("/snapshots/{snapshot-id}")

Error Handling

>>> instance = vultr.create_instance("atl", "vc2-1c-0.5gb-v6", os_id=2284)
Traceback (most recent call last):
vultr.vultr.VultrException: Error 400: Server add failed: Ubuntu 24.04 LTS x64 requires a plan with at least 1000 MB memory.

Using the VultrException class

from vultr import VultrException

try:
    instance = vultr.create_instance("atl", "vc2-1c-0.5gb-v6", os_id=2284)
except VultrException as error:
    print(error.error)
    # 'Server add failed: Ubuntu 24.04 LTS x64 requires a plan with at least 1000 MB memory.'
    print(error.status)
    # 400

Full Documentation: https://cssnr.github.io/vultr-python

Vultr API Reference: https://www.vultr.com/api

Support

For general help or to request a feature, see:

If you are experiencing an issue/bug or getting unexpected results, you can:

Contributing

If you would like to submit a PR, please review the CONTRIBUTING.md.

Please consider making a donation to support the development of this project and additional open source projects.

Ko-fi

For a full list of current projects visit: https://cssnr.github.io/

Metadata

Release files for vultr-python 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vultr-python 0.2.0
File Size Uploaded
vultr_python-0.2.0.tar.gz 10.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vultr-python 0.2.0
File Interpreter ABI Platform
vultr_python-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.8 kB

Release files / vultr_python-0.2.0.tar.gz

Download URL vultr_python-0.2.0.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8f955d46b017320a967fd002fece8a10ca441e8a52ed6124b9a55cb5dd46ee63
BLAKE2b-256 checksum
How to use checksums
48ce6a1b73ff865f549facd64a1657b8910fe13aa1d3e2a6fbd55ef04c691a8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 1, 2025.

Transparency log

Release files / vultr_python-0.2.0-py3-none-any.whl

Download URL vultr_python-0.2.0-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f8dd1355b7dc93a5dfa352f912796f5ad363214d92c4c1d6382041363bce7cd
BLAKE2b-256 checksum
How to use checksums
7727f37609490a8e019e707d28fea2c1c3fc19f46b16275bc784f282a551f282
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 1, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page