NEW Bare Metal Servers with 20G Dedicated Unmetered Bandwidth 20G Dedicated Unmetered Servers Read more STATUS

Reboot, Shut Down or Power Cycle Your Server: Portal and API

Sep 15, 2026 7 min read

Every bare-metal server and cloud instance on your account has its own power controls. You can reboot, shut down, hard-stop and start a machine yourself, at any hour, without a ticket. Bare metal is controlled through the server's management controller; cloud instances through the hypervisor. Both take a few seconds.

Before you press anything, know which control you need:

Control What happens Use it when
Shutdown (bare metal) Asks the operating system to stop, the way the power button on a desktop does. Filesystems are flushed. A hung OS can ignore it. You want the machine off cleanly.
Stop Cuts power without asking the operating system. Anything not yet written to disk is lost. The OS is hung and Shutdown did nothing.
Reboot Bare metal: a power cycle, off and on again, without asking the OS. Cloud: a reset, the same thing at the hypervisor. The machine is unresponsive over the network.
Start Powers a stopped machine on. After a Stop or Shutdown.
Status (bare metal) Reads the live power state from the management controller. Changes nothing. The badge says Unknown, or you want to confirm an action landed.

If you need a clean restart of a machine that still answers, log in over SSH and run reboot yourself. The portal's Reboot is deliberately the blunt tool: it is for the moment SSH no longer works.

Method 1: In the portal

Bare-metal servers

  1. Log in at amoni.app and open Servers in the left-hand menu.
  2. Click the server. The power controls sit at the top right of the page, next to the Running / Stopped badge. When the page opens, the portal reads the live state from the management controller; the badge shows checking for a moment.
  3. Choose the control from the table above:
    • Shutdown and Reboot act straight away.
    • Stop asks you to confirm first, because it discards unsaved data. It also reminds you that stopping a server does not stop billing.
    • On a stopped server the row shows Start instead.
  4. Click Status a few seconds later to see the new state. A reboot takes as long as the machine's own POST and boot, typically one to three minutes on a bare-metal server.
A bare-metal server page in the Amóni portal: the Running badge next to the hostname, and the Shutdown, Stop, Reboot, Status and Console buttons at the top right
The power controls of a running bare-metal server. The Console button next to them is the way in when the network is not.
The Hard Stop Server confirmation card in the Amóni portal, warning that power is cut immediately, unsaved data is lost, and billing continues
Stop asks first. Shutdown and Reboot do not.

Cloud instances

  1. Open Virtual Machines in the left-hand menu and click the instance.
  2. The header shows the live state and, for a running VM, Console, Reboot and Stop. A stopped VM shows Start. The small refresh icon next to the badge re-reads the state from the hypervisor.
  3. Click the action. A confirmation appears at the top of the page, and the badge follows the machine: a stop can take up to half a minute while the hypervisor waits for the guest, and a reboot passes through Stopped on the way back up.
A cloud instance page in the Amóni portal showing the Running badge, hostname, primary IP and the Console, Reboot and Stop buttons
Cloud instance controls. Console is available in every power state.

Every power action is recorded on the Activity page with who did it and when.

Method 2: With the API

You need an API key with the Servers scope (servers.write) for bare metal, or the VMs scope (vms.write) for cloud instances. Create one under Account → API Keys; it is shown once. Full reference: api.amoni.app/v1/docs.

Bare metal

Find the server id in GET /v1/servers, then post the action. The four actions are status, start, shutdown and powercycle.

curl -s -X POST https://api.amoni.app/v1/servers/955/power \
  -H "Authorization: Bearer nr_live_..." \
  -H "Content-Type: application/json" \
  -d '{"action": "powercycle"}'
{ "success": true, "data": { "state": "on", "status": "on" } }

status in the response is normalised to on, off or null (the management controller did not answer); state carries the controller's own wording. Read the state without changing anything:

curl -s -X POST https://api.amoni.app/v1/servers/955/power \
  -H "Authorization: Bearer nr_live_..." \
  -H "Content-Type: application/json" \
  -d '{"action": "status"}'

A powercycle returns as soon as the controller accepted it, not when the machine is back. Poll status if a script needs to wait:

#!/usr/bin/env bash
KEY="nr_live_..."; ID=955
post() { curl -s -X POST "https://api.amoni.app/v1/servers/$ID/power" \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" -d "{\"action\": \"$1\"}"; }

post powercycle | jq -r '.data.state'
for i in $(seq 1 30); do
  sleep 10
  if nc -z -w 3 203.0.113.10 22; then echo "SSH is back"; break; fi
done

Cloud instances

A VM is addressed by its billing account id and its VM id, both in GET /v1/vms:

curl -s https://api.amoni.app/v1/vms -H "Authorization: Bearer nr_live_..." \
  | jq '.data.accounts[] | {account_id, vms: [.vms[] | {id, hostname, status}]}'
{ "account_id": 990204, "vms": [ { "id": 411, "hostname": "app1.example.com", "status": "running" } ] }

Then post start, stop or reset. stop is not a graceful shutdown.

curl -s -X POST https://api.amoni.app/v1/vms/990204/411/power \
  -H "Authorization: Bearer nr_live_..." \
  -H "Content-Type: application/json" \
  -d '{"action": "reset"}'

The live state, read from the hypervisor rather than from our cached inventory:

curl -s https://api.amoni.app/v1/vms/990204/411/status \
  -H "Authorization: Bearer nr_live_..."
{ "success": true, "data": { "status": "running", "live": true } }

live: false means the hypervisor did not answer and you are seeing our last recorded state.

What the API will tell you

Status code Meaning
200 none The controller or hypervisor accepted the action.
401 invalid_api_key The key is wrong, expired or revoked.
403 insufficient_scope The key lacks servers.write or vms.write; required_scope names it.
404 none No server or VM with that id on your account. Body: {"success": false, "error": "Not found"}.
422 none action is not one of the allowed values: {"message": "The selected action is invalid.", "errors": {"action": ["…"]}}.
429 none Rate limit: 120 requests a minute per key. Honour Retry-After.
500 none / power_failed Bare metal: the controller could not be reached (“The action could not be completed right now. Please try again shortly or contact support.”). Cloud: code: power_failed, “Power action failed. Please try again or contact support.” Retry once, then open a ticket.

About 422s: a rule the endpoint checks itself (a weak password, a duplicate key, a layout you may not use) answers in the usual envelope. A field that fails basic validation currently answers in the framework's own shape, {"message": "…", "errors": {"field": ["…"]}}, without success or code. Branch on the HTTP status for those; the envelope is being extended to cover them.

Troubleshooting

  • The badge says Unknown. The management controller did not answer within the time the page allows. Click Status. If it stays unknown, the controller itself may be unreachable; the power actions can still work, and a ticket gets it looked at.
  • Shutdown did nothing. The operating system ignored the request, which happens when it is hung. Use Stop or Reboot; both act without the OS.
  • It rebooted but does not come back. Open the remote console to see where boot stops. If the disk or boot loader is the problem, rescue mode lets you repair it.
  • "Power action failed." The controller refused or could not be reached. Wait a minute and try once more; if it fails again, open a ticket and mention the time of the attempt so we can read the controller's log.
  • The cloud VM still shows Running after Stop. The hypervisor waits for the guest to acknowledge; the portal keeps watching for about thirty seconds. Click the refresh icon next to the badge, or read /status from the API.
  • Reboot on a bare-metal server is a power cycle. A machine with a large write cache or a database mid-transaction can lose data. When SSH still works, reboot from inside the OS is the safer restart.
  • Billing continues while a machine is stopped. Stopping is a power state, not a cancellation. To end a service, do that from the Orders or Billing pages.

Still stuck?

Open a support ticket from the portal, pick the server in the “related server” field, and say which control you used and when. The action is in your Activity log and in ours, which makes the diagnosis quick.

Built for production

Why teams stay with Netrouting

We connect you to the Internet using network engineers (and not order takers) and hardware and infrastructure that is built to last, so we can pick up where you left off when you need us.

  • Expert-Level Support Our staff is available 24 hours a day, 7 days a week to handle network administration and systems management issues as they occur.
  • Scalable Solutions Build whatever depth or breadth your infrastructure needs and then scale as required.
  • Enhanced Security Enable 2-factor authentication and also limit by IP address from the control panel to secure your account.
  • Cost-Efficient Infrastructure You will always receive the best value from your investment as you will be optimized for budget without any compromise on Quality.