Quickstart
The shortest reliable path from an API key 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 key, 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 VM.
curl --request GET \
--url 'https://api.zennohosting.com/v1/projects' \
--header 'Authorization: Bearer <token>' \
--header 'Accept: application/json'
- 1
Get an API key
Issue an API key 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 API key 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. You see the limit before the request, instead of learning it from a refusal 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
Use the default project
The first project is created with the account. Take its identifier from the
GET /projectsresponse and reuse it in the calls that follow. Create another project only when you need to keep resources separate. - 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 when it 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 API key, 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 current 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 another project when resources need to be separated.
/projects/{projectId}/vmsCreate the virtual machine.
/projects/{projectId}/vms/{vmId}Get the VM and check its status.