# API


The exe.dev API is SSH. Run commands like `ssh exe.dev ls --json` or `ssh exe.dev new --json`
directly from scripts and automation. See the [CLI Reference](/docs/section/11-cli-reference) for the full list of commands.

For example:

```
$ ssh exe.dev ls --json | jq '.vms[0]'
{
  "https_url": "https://bloggy.exe.xyz",
  "region": "lon",
  "region_display": "London, UK",
  "ssh_dest": "bloggy.exe.xyz",
  "ssh_host": "bloggy.exe.xyz",
  "status": "running",
  "vm_name": "bloggy"
}
```

`ssh_dest` is a ready-to-use `ssh`/`scp` destination and may carry a
username prefix (e.g. `vm+bloggy@vm.exe.xyz`) [when the VM's hostname can't
route SSH directly](/docs/faq/ssh-destination). Tools
that need the parts separately should use `ssh_host` (the network host to
dial) and `ssh_user` (the SSH username the routing requires; absent when any
username works).
