Skip to content

IDs

Checked against the API code 3 November 2026

Every resource in the API has an ID that starts with its type. vps_01hxa3b4c5d6e7f8g9h0j1k2m3 is a VPS, dom_… is a domain and inv_… is an invoice. The prefix tells you and your code what the ID points at.

  • Treat an ID as an opaque string. Do not parse it or build one. Older IDs can be shorter than new ones.
  • Store an ID exactly as it came. Compare it exactly.
  • An ID does not change. The same server keeps the same vps_ ID for as long as it exists.
  • Use an ID only where its type belongs. A dom_ ID in a VPS path does not find a VPS.
  • Never put an IP address or a host name where an ID belongs. Find an ID from a name or an address shows how to look one up.

Take an ID from the list endpoint for its type. The response that created a resource also carries its ID. Orders are the exception. See The ID of something you ordered.

PrefixWhat it isWhere you get it
client_Your accountGet your account
vps_A VPS or a Cloud VPSList VPS instances
bkp_A backup of a VPS, of a web hosting account or of one database on it. Each one works only on the paths of the list it came from.List VPS backups, List web hosting backups, List database backups
os_Operating system template for a reinstall. Send it as templateId to Reinstall a VPS.List the operating systems for a VPS
ssh_SSH keyList saved SSH keys
vol_Block volumeList volumes
pnet_Private networkList private networks
acct_Web hosting accountList web hosting accounts
wp_WordPress siteList WordPress sites
dom_DomainList domains
zone_DNS zoneList DNS zones
drr_DNS recordList DNS zone records
cdn_CDN zoneList CDN zones
vpsprod_VPS plan. Orders take the plan’s slug, not this ID.List VPS plans
shprod_Web hosting plan. Orders take the plan’s slug, not this ID.List web hosting plans
ord_Orderid in the response of Create an order. Open orders: List open orders
inv_InvoiceList invoices
tkt_Support ticketList support tickets
job_Joboperation.jobId in a 202 response. See Jobs.
dbj_Bulk domain joboperation.jobId from a bulk domain change, such as Change DNS records in several zones

Most other resources follow the same pattern. A few paths take a name or a position instead: see the last point on this page.

POST /api/v2/orders returns the order (ord_…) and its invoice (inv_…). It does not return an ID for the VPS, web hosting account or domain you ordered. Its hosting and domains items give the name and the price of each item. They carry no ID.

While the order is open, GET /api/v2/me/open-orders has one line per ordered item. lines[].resource.id is the vps_…, acct_… or dom_… ID once the service exists. It is null until then. An order is open while it is from the last 14 days and still has an item being set up or an unpaid invoice. The call needs the scope read:orders.

The new service is also in the list for its type. Find a VPS or a domain there by its name, as in the next section.

There is no list of all your orders. Keep the ord_ ID from the order response.

You often know a server’s IP address or a domain name, not its ID. These lists take a filter and return only the matches:

You knowAskScope
A server’s main IP addressGET /api/v2/vps?primaryIp=192.0.2.10read:vm
A server’s nameGET /api/v2/vps?name=app-01read:vm
A domain nameGET /api/v2/domains?name=example.comread:domains
A DNS zone’s nameGET /api/v2/dns-zones?name=example.comread:dns

Authentication and scopes explains how a key gets its scopes.

Put the address you know in the URL. Keep the URL in double quotes.

GET /api/v2/vps
curl "https://cloud.hostup.se/api/v2/vps?primaryIp=192.0.2.10" \
-H "Authorization: Bearer $HOSTUP_API_KEY"
Response 200
{
"data": [
{
"id": "vps_01hxa3b4c5d6e7f8g9h0j1k2m3",
"name": "app-01",
"primaryIp": "192.0.2.10",
"…": "…"
}
],
"hasMore": false,
"nextCursor": null
}
export VPS_ID="vps_…" # data[0].id above
  • primaryIp matches the server’s main IP address exactly.
  • On the VPS list, name matches the whole name. Upper and lower case do not matter. It also matches the server’s display name, customerMetadata.displayName.
  • A name can match more than one VPS. Check that data has exactly one item before you use its id.
  • On the domain and DNS zone lists, name matches the whole domain name. Upper and lower case do not matter. A name with letters such as å or ü matches in its Unicode form and as xn--….
  • No match gives an empty data list, not a 404.
  • Some paths take a name or a position instead of an ID: a VPS snapshot by its name, a firewall rule by its position pos, a glue record by its host name and domain prices by the TLD. In the snapshot paths the parameter is called {snapshotId}. It takes the snapshot’s name from GET /api/v2/vps/{id}/snapshots. The reference page for each endpoint says what a path parameter takes.

Next: All guides. One task per page, from restarting a VPS to paying an invoice.