Overview

The API grew alongside the console, and in several places the same capability is reachable from more than one path. None of it is broken, but picking the wrong one costs you later — an alias can be withdrawn, and a scoped variant can quietly return a narrower set than you expected. This page lists every overlap worth knowing about, and what to use.
This is a documentation concern, not a deprecation schedule. Nothing here is being removed today. The one path explicitly marked deprecated in the reference is the /restart alias below.

True aliases — same handler, two paths

Reboot an instance

Both routes are served by the same code, so behaviour is identical. /reboot names what actually happens; /restart is a compatibility alias.
Don’t confuse either with POST /api/v1/networks/{id}/restart or POST /api/v1/vpcs/{vpcId}/restart, which restart network infrastructure. Those are unrelated operations that happen to share a verb.

Same data, two paths

Guest OS types

ISOs

Tags

Tags are reachable generically and per resource:
The generic endpoint means one helper in your client instead of a per-resource branch, and it keeps working for resource types that have no dedicated tag route.

Overlapping capability, different conventions

Creating a network ACL

Two ways to create the same thing, and they don’t take the same input:
Listing differs too: GET /api/v1/network-acls covers your ACLs, and GET /api/v1/vpcs/{vpcId}/acl-lists covers those for one VPC. Both are legitimate — just be deliberate about which you use, because the second returns a subset and looks like an empty account if you pass the wrong VPC.Rule management is only under /api/v1/network-acls/rules, so a create through the VPC path still sends you back there.

Internal load balancers

These are internal load balancers. They are not the same thing as /api/v1/loadbalancer/rules, which manages public load balancer rules on a public address. The naming makes them look interchangeable and they are not.

Compute offerings

These are closely related views of the same catalogue. Use /compute when populating a deploy form.
GET /api/v1/offerings/compute accepts a zoneId parameter that has no effect — the result is not filtered by zone. Filter client-side if you need per-zone offerings.

Quota and limits

Five endpoints report on allowances:
For “am I about to hit a ceiling”, use GET /api/v1/tenants/my-limits. The others answer narrower questions, and the two region-group ones are only meaningful if region grouping is enabled for you.

Scoped variants — not duplicates

These look like duplication but each returns a genuinely different set. Using the wrong one gives you a wrong answer rather than an error, which makes them worth stating explicitly.

Listing public addresses

Listing snapshots

Volume snapshots and instance snapshots are different resources with different lifecycles, not two views of one thing. See Snapshots and VM Snapshots.

Listing instances

Four list endpoints, each with a different cost and shape:
/all and /summary don’t page. On a large account they return one very large response, and there is no way to ask for less. Prefer the paged endpoint for anything that grows.

Egress rules

Three different enforcement points, all called “egress”:
These are not alternatives — they sit at different layers, and which one applies depends on how your account is networked. If you are using VPCs, you want the network tier and Network ACLs.
Use /vpc-vpn unless you have a specific reason not to. See Fabric.

Repeated sub-resources

Comments (annotations) and tags appear on several resource types with identical shapes:
Present on volumes, networks, public IPs, VPCs and Kubernetes clusters.
Note the shape of the visibility route: the annotation id sits directly under the resource collection, not under a resource id. So it is /api/v1/volumes/annotations/{annotationId}/visibility, not /api/v1/volumes/{id}/annotations/{annotationId}/visibility.Only volumes expose a DELETE for an annotation. Elsewhere a comment cannot be removed once posted — see Comments.

Conventions

Pagination and envelopes.

Introduction

What is in scope, and what isn’t.

Asynchronous work

Following a mutation.

Errors

Reading a refusal.