NODED.CLOUD/Blog/Deploy a VPS via API in About a Minute

Deploy a VPS via API in About a Minute

24 Jul 2026 · Mario Marin

Notes from the rack on programmatic provisioning: create and destroy KVM boxes over my.noded.cloud/api/v1, billed by the hour, with a deploy of about a minute and a CLI workflow that makes hourly billing actually pay off.

If you drive infrastructure from code rather than a control panel, the only latency that matters is the gap between POST /orders and a box that answers SSH. On our fleet that gap is typically about a minute. This is a NOC note on how to deploy a VPS via API at NODED.CLOUD, how hourly billing changes what "cheap" means, and the CLI workflow (plus what to do if you live in Terraform) that turns ephemeral boxes from a novelty into a habit.

The API surface: one call to a running box

The API lives at my.noded.cloud/api/v1 (a public beta, version 1). You authenticate with a bearer key and place an order with a product, billingCycle: "hourly", one of our 26 Linux and FreeBSD images, your SSH key IDs and optional cloud-init user-data; the server comes up with its dedicated IPv4 (plus free IPv6 in Romania, the Netherlands and Germany). There is no ticket, no manual approval, no "provisioning" state that sits for ten minutes. Every instance is a real KVM guest with root, not a container pretending to be one, so the box you script against behaves exactly like the box you would have clicked into on our VPS hosting plans.

The lifecycle is deliberately small: create, read, power, destroy. That is the whole point of programmatic provisioning — the fewer verbs, the fewer ways your automation can wedge. An order returns right away; you poll GET /vps (or watch for the SSH port to open, which is what most people actually do) and you are in. Typical time from order to a box that answers SSH is about a minute across our locations.

Why fast deploys and hourly billing belong in the same sentence

Fast deploys are a party trick unless the billing model rewards you for tearing things down. Ours does. VPS instances are billed hourly, starting at EUR 0.0056/hr for the 2GB tier. A box you spin up for a 20-minute integration run is billed as one started hour — EUR 0.0056 on the entry tier — not a daily minimum, not a monthly commit you forgot to cancel. That is the mechanic that makes a one-minute deploy pay for itself: fast up plus cheap-down is what lets you treat compute as disposable.

Concretely, the pattern we see from IaC shops looks like this: a CI job creates three boxes at the start of a test matrix, runs the suite in parallel, and destroys all three when the runner exits. Total wall-clock is maybe 15 minutes. Billed by the hour, that is a rounding error, and there is nothing left running overnight to surprise you on the invoice. Wiring it into a pipeline is two calls — a create at the start of the job, a destroy by instance ID when the runner tears down — and the hourly meter does the rest.

The Terraform and CLI workflow

You do not need a dashboard for any of this. The two workflows we recommend:

  • CLI / shell for one-offs. A single curl against my.noded.cloud/api/v1 with a JSON body creates a box; a second call, DELETE /vps/{id} with "immediate": true, destroys it on the spot (without that flag the delete only schedules a cancellation). Good for scratch work, reproduction environments, and "I need a clean Debian box for ten minutes."
  • Terraform, if that's your stack. There is no official NODED Terraform provider or SDK. What exists is an OpenAPI 3.0 spec you can generate a client from; in Terraform, wrap the two calls yourself — for example a terraform_data resource whose local-exec provisioners call POST /orders on create and DELETE /vps/{id} with "immediate": true on destroy — keeping the SSH key and OS image as variables so terraform apply / terraform destroy still own the lifecycle.

The rule we give people building automation on a European footprint: keep your state describing the box (plan, region, image, key) and let the hourly meter handle the economics. You are never punished for a destroy, so aggressive teardown is the correct default, not a risk.

What you get on every instance

PropertyWhat the API gives you
Deploy timeAbout a minute, order call to answering SSH
BillingHourly, from EUR 0.0056/hr
OS images26 Linux and FreeBSD images, selectable at order time
AccessRoot SSH on a real KVM guest
NetworkingDedicated IPv4 per instance (free IPv6 in RO, NL, DE), unmetered, 100–300 Mbps by plan
StorageSSD (NVMe in Ashburn)
DDoS100 Gbps L3/4 protection included, always on, no toggle

Every instance sits on our own network, AS60982, in seven locations — six in the EU plus Ashburn — so a box you provision in code is on the same network as everything else we run. The network page explains how it's connected if latency budgets matter to your placement decisions.

Where the API stops being the right tool

Honesty from the rack: not everything wants to be ephemeral. If you are running a stateful database, a persistent build cache, or anything where the box is the workload rather than a disposable runner, hourly churn is the wrong pattern and a longer-lived instance is cheaper and calmer. And if you have outgrown virtualization entirely — you want dedicated cores, a /29 or larger subnet, or BYOIP and BGP sessions with AS60982 — that is a dedicated server conversation, not an API-churn one. The API is for elastic, disposable capacity; use it where elasticity is the actual requirement.

How Noded Can Help

We built the VPS API for people who never wanted to see a dashboard. Point your scripts or your CI at my.noded.cloud/api/v1, pass a product and one of our 26 images, and you have root on a KVM box in about a minute — billed by the hour, so aggressive teardown costs you at most the hour you started. It is all on our own AS60982 network with 100 Gbps of DDoS protection included on every instance by default. Browse the tiers on our VPS hosting page, grab a token, and script your first create. If you are wiring it into a pipeline, the loop is just a create call at job start and a destroy by instance ID when the runner exits.

FAQ

How fast can I deploy a VPS via API?

Typically about a minute from the order call to a box that answers SSH. Poll GET /vps (or watch for the SSH port) while the KVM guest boots.

How is API-provisioned VPS billing calculated?

billed by the hour, starting at EUR 0.0056/hr for the 2GB tier. A box you create and destroy inside 20 minutes costs you one hour — there is no daily minimum and no monthly commitment, which is what makes fast teardown worthwhile.

Can I use Terraform to provision VPS instances in Europe?

Not with an official provider — there is no NODED Terraform provider or SDK. You can still drive it from Terraform by wrapping the API: a terraform_data resource with local-exec provisioners that call my.noded.cloud/api/v1 on create and destroy, with your SSH key and OS image as variables, or a client generated from our OpenAPI 3.0 spec.

Do API-created instances get root access and their own IPs?

Every instance is a real KVM guest with root SSH, a dedicated IPv4 (plus free IPv6 in Romania, the Netherlands and Germany), SSD storage, and unmetered symmetric networking shaped by plan. There is no difference between a box you create by API and one you order any other way.

Which operating systems can I choose at create time?

26 Linux and FreeBSD images are selectable in the order call. You pass the image ID (os_image_id) in the request body alongside the product and your SSH key IDs.

← All posts

Related services

Run this on NODED.CLOUD.

Keep reading

More from the NOC.

Like the way we run things? Spin up a server in 60 seconds.