Skip to main content

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 Authorization header.

  • 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. 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. 2

    Check access with a read request

    Call GET /projects to confirm the API accepts your base URL and API key before you prepare anything else.

  3. 3

    Look at your quotas

    GET /limits shows 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. 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. 5

    Use the default project

    The first project is created with the account. Take its identifier from the GET /projects response and reuse it in the calls that follow. Create another project only when you need to keep resources separate.

  6. 6

    Choose how access works

    Decide whether to pass public keys directly through sshPublicKeys or reference keys registered in the project through sshKeyIds. Settle whether you need plugins at the same time.

  7. 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. 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. 9

    Wait until the VM is ready

    Creation is asynchronous. A 202 Accepted with a commandId only means the work was accepted. From there, poll the VM and watch status: creating while it is being built, active once ready. bootStatus shows 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.