JustAVPS Python SDK
Official Python client for the JustAVPS API.
pip install kortix-justavps
Quick Start
from justavps import JustAVPS
client = JustAVPS("sk_live_...")
Machines
# List machines
machines = client.machines.list()
# Create a machine
machine = client.machines.create(server_type="starter", region="eu", name="my-box")
print(f"Created: {machine['id']} — {machine['slug']}")
# Get details
machine = client.machines.get(machine_id)
print(f"Status: {machine['status']}, IP: {machine['ip']}")
# Reboot / Resize / Delete
client.machines.reboot(machine_id)
client.machines.resize(machine_id, server_type="pro")
client.machines.delete(machine_id)
Toolbox: Filesystem
Read, write, search, and manage files on a running machine.
tb = client.toolbox(machine_id)
# List files
entries = tb.files.list("/root")
for e in entries:
print(f" {e['type']:4s} {e['mode_bits']} {e['size']:>8d} {e['name']}")
# Upload a file (auto-creates parent dirs)
tb.files.upload("/root/app.py", "print('hello')", mode="755")
# Download a file
content = tb.files.download("/root/app.py")
# Check existence
result = tb.files.exists("/root/app.py")
print(result["exists"], result["type"])
# File metadata
info = tb.files.info("/root/app.py")
print(f"Size: {info['size']}, Owner: {info['owner']}")
# Create directory (mkdir -p)
tb.files.mkdir("/root/project/src")
# Search text in files (grep)
result = tb.files.find("/root/project", r"TODO|FIXME", include="*.py")
for m in result["matches"]:
print(f" {m['file']}:{m['line']}: {m['content']}")
# Find and replace
tb.files.replace(["/root/app.py"], "hello", "goodbye")
# Move / rename
tb.files.move("/root/app.py", "/root/main.py")
# Set permissions
tb.files.chmod("/root/main.py", "755")
# Delete file
tb.files.remove("/root/main.py")
# Delete directory recursively
tb.files.remove("/root/project", recursive=True)
Toolbox: Process
Execute commands, run code, and manage processes on a running machine.
tb = client.toolbox(machine_id)
# Execute a shell command
result = tb.process.exec("ls -la /root")
print(f"Exit: {result['exit_code']}")
print(result["stdout"])
# Execute with cwd, timeout, env vars
result = tb.process.exec(
"npm install && npm run build",
cwd="/root/project",
timeout=120,
env={"NODE_ENV": "production"},
)
# Run a code snippet
result = tb.process.code_run("print(6 * 7)", language="python")
print(result["stdout"]) # "42\n"
# List running processes
processes = tb.process.list()
for p in processes:
print(f" PID {p['pid']}: {p['command']}")
# Kill a process
tb.process.kill(1234, signal="SIGTERM")
Images
# Create image from a running machine
image = client.machines.create_image(machine_id, name="my-snapshot")
# List / get / delete
images = client.images.list()
image = client.images.get(image_id)
client.images.delete(image_id)
SSH Keys, API Keys, Webhooks
# SSH Keys
keys = client.ssh_keys.list()
key = client.ssh_keys.create("laptop", "ssh-ed25519 AAAA...")
client.ssh_keys.delete(key["id"])
# API Keys
keys = client.api_keys.list()
key = client.api_keys.create("ci-deploy")
print(key["key"]) # Only shown once!
client.api_keys.delete(key["id"])
# Webhooks
hooks = client.webhooks.list()
hook = client.webhooks.create("https://example.com/hook", ["machine.ready", "machine.deleted"])
client.webhooks.delete(hook["id"])
Server Types
providers = client.server_types.providers()
regions = client.server_types.regions("cloud")
types = client.server_types.list("eu")
for t in types:
print(f" {t['name']}: {t['cores']} vCPU, {t['memory']}GB, ${t['price_monthly']}/mo")
Context Manager
with JustAVPS("sk_live_...") as client:
machines = client.machines.list()
# client.close() called automatically
API Reference
Full interactive docs: justavps.com/api/docs
Metadata
Release files for kortix-justavps 2026.3.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| kortix_justavps-2026.3.6.tar.gz | 64.5 kB | With provenance | Details for kortix_justavps-2026.3.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kortix_justavps-2026.3.6-py3-none-any.whl | Python 3 | none | any | Details for kortix_justavps-2026.3.6-py3-none-any.whl |
Total release size: 355.9 kB
Release files / kortix_justavps-2026.3.6.tar.gz
| Download URL | kortix_justavps-2026.3.6.tar.gz |
|---|---|
| Size | 64.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e4e1e309f503b194ec3c7313fb8d4d1ed65baac928edf12249fea9378999b5b0
|
|
BLAKE2b-256 checksum How to use checksums |
cf604fdcd06329ddf31e3a53bb56b711cf77393349ccf9c97e03472ecde7ca7b
|
| 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 Mar 20, 2026.
Transparency logRelease files / kortix_justavps-2026.3.6-py3-none-any.whl
| Download URL | kortix_justavps-2026.3.6-py3-none-any.whl |
|---|---|
| Size | 291.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a219cc846ce5491182c9fda55bef80dc3bce83f963e62c6e1f2447d3d4400ed1
|
|
BLAKE2b-256 checksum How to use checksums |
f86f7e3a9235360b35d22d2d28acbd50270ba17ec098abc4213643b298eb31cb
|
| 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 Mar 20, 2026.
Transparency logSecurity for kortix-justavps 2026.3.6
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for kortix_justavps-2026.3.6.tar.gz
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 Mar 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.