Get machines

Returns one of the caller org's machines by its org-scoped name.

GET /v1/compute/machines/{id}

Addresshttps://api.hanzo.ai/v1/compute/machines/{id}
MethodGET
OperationgetMachine
AuthAuthorization: Bearer $HANZO_API_KEY

Returns one of the caller org's machines by its org-scoped name. Visor keys the lookup by owner/name, so an id belonging to another tenant resolves to not-found rather than another org's machine.

Request

1 field.

FieldInTypeRequiredDescription
idpathstringyesID is the machine's org-scoped NAME — the stable key Visor addresses a machine by (owner/name), not the ephemeral provider id.

Response

StatusBodyMeaning
200compute.machineViewok
defaultproblem-detailsrefused

200 body — 28 fields.

FieldInTypeAlwaysDescription
agentbodystring—Agent is the cloud Agent this machine runs, lifted out of the binding so a list reads without following one.
bindingbodycompute.agentBinding—
binding.agentNamebodystring—AgentName is the cloud Agent (/v1/agent) this machine runs — the agent a message to the bot is actually run against.
binding.botVersionbodystring—BotVersion pins the @hanzo/bot runtime version the machine runs.
binding.createdTimebodystring—CreatedTime is when the binding was first made.
binding.machineIdbodystring—MachineId is the bound machine as vm addresses it, owner-qualified ("<org>/<machine>").
binding.messagebodystring—Message is vm's human-readable detail on Status ("machine provisioning; @hanzo/bot runtime not yet confirmed") — the reason behind the state, not a second state.
binding.namebodystring—Name is the binding's own key, which is the machine's id: a machine hosts at most one agent, so the binding is named for it.
binding.orgbodystring—Org is the Hanzo tenant the binding belongs to.
binding.ownerbodystring—Owner is the tenant vm filed the binding under, resolved from the ?owner it was called with — which is the caller's validated org and never a body field.
binding.providerbodystring—Provider is the cloud the bound machine runs on, carried here so a bindings list says where each bot lives without a second read per machine.
binding.publicIpbodystring—PublicIp is the bound machine's public address as vm recorded it on the binding.
binding.statusbodystring—Status is the binding's lifecycle in VM's OWN words — "Pending" while the machine provisions and the runtime is unconfirmed, "running" once vm has confirmed it.
binding.updatedTimebodystring—UpdatedTime is when vm last reconciled it — the age of Status.
createdTimebodystring—CreatedTime is when the machine came into being: the provider's own creation timestamp for a Visor machine, passed through in whatever form it states it, and for a BYO machine the RFC 3339 moment it first dialed in.
gpubodystring—GPU names the accelerators this machine holds ("H100", or "2× NVIDIA GB10" for a BYO machine reporting a matched pair).
idbodystring—ID addresses this machine on the /v1/compute/machines/:id routes: the org-scoped NAME Visor keys a machine by, falling back to the provider id for a machine that has no name.
imagebodystring—Image is the OS image the machine booted from, as the provider names it.
membodystring—Mem is system RAM rendered for a human ("8 GB"), not a number to compute with.
namebodystring—Name is the label to show a human — Visor's displayName, or the machine name when it carries none.
osbodystring—Os is the operating system on the machine — Visor's record for a provisioned one, the host's own report (linux, darwin, windows) for a BYO one.
privateIpbodystring—PrivateIp is the address on the provider's own network, reachable from the org's other machines in the same region.
providerbodystring—Provider is the cloud that runs the machine ("digitalocean"), or "byo" for one the operator dialed in with hanzo link.
publicIpbodystring—PublicIp is the internet-facing address the provider assigned.
regionbodystring—Region is the provider region slug ("sfo3"), or the zone when the provider reports only that.
statusbodystring—Status is the lifecycle state in the PROVIDER's own words ("active", "running", "off"), passed through rather than mapped onto a vocabulary of ours.
typebodystring—Type is the provider SIZE SLUG the machine runs at ("s-2vcpu-4gb", "gpu-h100x8-640gb") — the value a launch asks for, and what Vcpu/Mem/GPU are read out of when the provider states them no other way.
vcpubodyinteger (int64)—Vcpu is logical cores — the provider's own cpuSize when that is a clean integer, else the count read out of the size slug (4 from "s-4vcpu-8gb").

Failure carries the platform error shape — see Errors.

Examples

hanzo compute machines get <id>
import { Configuration, ComputeApi } from 'hanzoai';

const api = new ComputeApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getMachine({ id: 'id' });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ComputeApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ComputeApi(client).get_machine(id='id')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.ComputeAPI.GetMachine(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, compute_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = compute_api::get_machine(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ComputeApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new ComputeApi(client).getMachine();
curl https://api.hanzo.ai/v1/compute/machines/<id> \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool compute, op getMachine — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "compute",
         "arguments": {
           "op": "getMachine",
           "input": {
             "id": "<id>"
           }
         }
       }
     }'

Compute API · All Hanzo APIs · Interactive reference

Was this page useful?