# Machine sizes and prices

> The small, default, large, and xlarge sizes, their resources and hourly prices, how to read them from the plan catalog, and which sizes a trial can use.

Every machine runs on a **plan** from the catalog: its vCPUs, memory, disk, and hourly price. VMYard offers four sizes on each kind of host.

| Size | vCPU | Memory | Disk | Price per hour | Multiplier |
| --- | --- | --- | --- | --- | --- |
| `small` | 2 | 4 GiB | 12 GiB | $0.015 | 0.5 |
| `default` | 4 | 8 GiB | 50 GiB | $0.030 | 1 |
| `large` | 8 | 16 GiB | 125 GiB | $0.060 | 2 |
| `xlarge` | 16 | 32 GiB | 250 GiB | $0.170 | about 5.67 |

Machines are billed [per second while they run](/docs/guides/billing) at their size's hourly price; stopped machines cost nothing. The multiplier is the price relative to `default`, and is what usage and invoice lines report.

## Read sizes from the catalog

`GET /v1/plans` lists every plan with its `size` (`small`, `default`, `large`, `xlarge`, or `null` for plans a deployment added itself), `backend`, resources, and `price` (`hourly` and `monthly` as decimal strings, `monthly` being 730 hours).

```sh
curl "$VMYARD_API_URL/v1/plans" -H "Authorization: Bearer $VMYARD_API_KEY"
```

```json
{
  "id": "0c47a106-0000-4000-8000-000000000012",
  "version": 1,
  "name": "default",
  "size": "default",
  "backend": "kvm",
  "cpu": 4,
  "memory_mib": 8192,
  "disk_gib": 50,
  "price": { "currency": "USD", "hourly": "0.030000", "monthly": "21.900000", "effective_from": "2026-01-01T00:00:00Z" }
}
```

Each size exists once per host kind (`kvm` and `docker`). A machine's plan must match its region's `backend`, so pick the plan of the right size whose `backend` equals the region's. The console's create page does this for you: its **Size** picker lists the chosen region's sizes with their resources and hourly price, and keeps your size when you switch to a region that offers it.

## Sizes during the trial

While an organization is on its [trial](/docs/guides/plans-and-trial), only `small` and `default` can be created or started; anything priced above `default` answers `403 trial_machine_class_not_allowed`. The console shows `large` and `xlarge` as locked and says why. Buying credits or a plan lifts the restriction once the first payment is confirmed.
