# Virtual machine details

`GET /v1/service/@id/vms/@vmid` · scope `services:read`

Details of a virtual machine: status, resources, OS template, SSH keys.

## HTTP request

| Item | Value |
| --- | --- |
| URL | `https://api.tino.vn/v1/service/@id/vms/@vmid` |
| Method | `GET` |
| Scope | `services:read` |
| Header | `Authorization: Bearer <token>` |
| Content-Type | — (no body) |
| Tokens that can call it | app tokens (`tinoat_`), personal API tokens (`tinopat_`) |

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | Service ID |
| `vmid` | path | string | yes | Virtual machine ID |

## Example request

```bash
curl "https://api.tino.vn/v1/service/100001/vms/600001" \
  -H "Authorization: Bearer $TINO_TOKEN"
```

`$TINO_TOKEN` is a token with the scope `services:read`. Path parameters in the example are sample values.

SDK ([SDK & examples](/en/docs/sdk)): Python `client.vms.get(id, vmid)`, Node.js `await client.vms.get(id, vmid);`, PHP `$client->vms->get($id, $vmid);`.

## Example response

```json
{
 "vm": {
  "id": 600001,
  "ha": false,
  "built": true,
  "locked": false,
  "power": true,
  "status": "running",
  "status_lang": "vm_state_running",
  "password": "<redacted>",
  "sshkeys": [
   "ssh-ed25519 AAAA<public-key> user@example.com"
  ],
  "username": "root",
  "memory": 1024,
  "disk": 20,
  "swap": null,
  "additional_storage": [],
  "uptime": 639639,
  "template_id": "template-vm:321/321/base-321-disk-0.raw",
  "template_name": "Ubuntu 26.04",
  "template_data": [],
  "replication": false,
  "cloudinit": true,
  "…": "14 more key(s)"
 }
}
```

Live sample from a test account with personal data masked; long arrays and strings are trimmed (`… N more item(s)`, `… N more line(s)`).
