Skip to content
Security hardening, live updates and lease fixes
Verlocx

REST API

Everything you can do in the portal's VM pages, as HTTP. Same roles, same quotas, same audit log.

Authentication

Create an API key under Profile → API keys. A key acts with its owner's permissions, can be limited to scopes and projects, and every call is written to the activity log.

shell
curl https://verlocx.example.com/api/v1/projects \  -H "Authorization: Bearer hx_…"# or:  -H "X-Api-Key: hx_…"

Endpoints

Projects

PathWhat
GET /api/v1/projectsProjects you can see
GET · POST /api/v1/projects/{project}/vmsVMs of a project · create one (same rules as the New VM dialog)
/api/v1/projects/{project}/clustersClusters the project may deploy to
/api/v1/projects/{project}/templatesTemplates the project may use, with their limits
/api/v1/projects/{project}/usageResource usage and costs
/api/v1/projects/{project}/activityThe project's audit log
/api/v1/projects/{project}/alertsAlert rules — list, create, change, delete

A single VM

PathWhat
GET · PATCH · DELETE /api/v1/vms/{id}Details · resize, rename, owner, tags · delete
/api/v1/vms/{id}/powerStart, shutdown, reboot, stop, suspend, resume
/api/v1/vms/{id}/execRun a script in the guest through the agent
/api/v1/vms/{id}/metricsCPU, memory and disk usage
/api/v1/vms/{id}/snapshotsList and create; …/{name} deletes, …/{name}/restore rolls back
/api/v1/vms/{id}/backupsBackups of the VM; …/restore restores one
/api/v1/vms/{id}/nicsNetwork interfaces
/api/v1/vms/{id}/firewallFirewall state and …/rules
/api/v1/vms/{id}/leaseLease of the VM — read or extend

API keys

PathWhat
/api/v1/api-keysYour keys — list, create; …/{id}/revoke revokes one

Example: create a VM

shell
curl -X POST https://verlocx.example.com/api/v1/projects/{project}/vms \  -H "Authorization: Bearer hx_…" -H "Content-Type: application/json" \  -d '{    "clusterId": "…",    "templateId": "…",    "name": "web-prod-2105",    "vcpu": 4, "memoryGb": 8, "diskGb": 80,    "tags": ["web", "prod"]  }'
A name that carries a number — web-prod-2105 — also asks for that VMID. If it's taken, blocked or outside the template's range, the request is refused with the reason (409), never placed on another ID. Optional fields: network, vlan, ip, owner.

Errors

StatusMeaning
400Invalid input — the message says which field
401 / 403No valid key, or the key lacks the permission or scope
404Not found — or not visible to you
409Conflict, e.g. the VMID from the name can't be used
423The VM is locked by a running configuration run

More examples

Reboot a VM

shell
curl -X POST https://verlocx.example.com/api/v1/vms/{id}/power \  -H "Authorization: Bearer hx_…" -H "Content-Type: application/json" \  -d '{ "action": "reboot" }'     # start · shutdown · stop · reboot · suspend · resume

Run a script in the guest

shell
curl -X POST https://verlocx.example.com/api/v1/vms/{id}/exec \  -H "Authorization: Bearer hx_…" -H "Content-Type: application/json" \  -d '{ "shell": "powershell", "script": "Get-Service W32Time", "timeoutSecs": 60 }'

Or run a preset by its id with { "presetId": "…" }.

Take a snapshot before a change

shell
curl -X POST https://verlocx.example.com/api/v1/vms/{id}/snapshots \  -H "Authorization: Bearer hx_…" -H "Content-Type: application/json" \  -d '{ "name": "pre-upgrade", "description": "before app 2.4", "withRam": false }'

Give a VM a lease

shell
curl -X POST https://verlocx.example.com/api/v1/vms/{id}/lease \  -H "Authorization: Bearer hx_…" -H "Content-Type: application/json" \  -d '{ "days": 30 }'

GET reads the lease, PUT changes it, DELETE removes it. A lease can also take an exact expiresAt and an expiryAction.

Next up

See Verlocx in action

A 30-minute walkthrough on your use case — deployments, workflows, governance.

Hypervisor

We use your details only to handle this request — privacy policy.

Type to search the docs, the user guide, all features, the product pages and the changelog.

↑ ↓ to move↵ to openesc to close