Quickstart
The shortest reliable path from an access token to a running virtual machine. This page covers the order of operations; for exact request and response schemas, use the API reference.
Before you start
- A valid API token, issued in your ZennoHosting account.
A client that can send HTTPS requests with the
Authorizationheader.- The ability to read the live image and tariff catalogues before assembling the create request.
Verify connectivity
Start with a safe read. It confirms the base URL and the authorization header are right — before you begin creating a project and a VM.
curl --request GET \
--url 'https://api.zennohosting.com/v1/projects' \
--header 'Authorization: Bearer <token>' \
--header 'Accept: application/json'
- 1
Get an access token
Issue a token in your ZennoHosting account and put it in a secret store rather than in code.
- 2
Check access with a read request
Call
GET /projectsto confirm the API accepts your base URL and token before you prepare anything else. - 3
Look at your quotas
GET /limitsshows how many projects and VMs you may still create and how much CPU, memory and disk is left. That is cheaper than being refused at creation time. - 4
Gather the inputs
Read configurations, images and tariffs. If the VM needs a new public IP, pick a separate tariff for it — a VM tariff will not do.
- 5
Create a project
A project owns VMs, SSH keys, networks and public IPs. Create it first and reuse its identifier in the calls that follow.
- 6
Choose how access works
Decide whether to pass public keys directly through
sshPublicKeysor reference keys registered in the project throughsshKeyIds. Settle whether you need plugins at the same time. - 7
Create the VM
Send the request with an image, a tariff, a name and your access parameters. The same request can describe the public IP, private network attachments and plugins.
- 8
Save the password immediately if one is returned
A password in the response is shown once. No endpoint will return it later, so store it right away.
- 9
Wait until the VM is ready
Creation is asynchronous. A
202 Acceptedwith acommandIdonly means the work was accepted. From there, poll the VM and watchstatus:creatingwhile it is being built,activeonce ready.bootStatusshows power.
What you should end up with
A working token, a project identifier, a VM identifier, a recorded access method and a confirmed VM state — rather than just an accepted command.
Common mistakes
Take identifiers from live API responses, not from the examples on this page. Nearly every first-time failure comes down
to a stale projectId, imageId or tariffId — or to assuming the VM is ready right
after 202 Accepted.
Related endpoints
/limitsRead quotas and what is left.
/configurationsRead the available VM configurations.
/imagesRead the available image identifiers.
/tariffsRead the tariff identifiers that apply to VMs.
/projectsCreate the project that will own the VM.
/projects/{projectId}/vmsCreate the virtual machine.
/projects/{projectId}/vms/{vmId}Read the VM and check its status.