---
name: find-vps
description: Find and compare verified VPS plans by budget, RAM, vCPU, storage, location, virtualization or IPv4 using VPSLedger's build-time JSON. Use when a user asks for cheap VPS options, a plan recommendation under a price cap, or specs comparison across providers.
---

# find-vps

Find verified VPS plans from VPSLedger's dataset. The data is a build-time snapshot of
official provider pricing pages: every record carries `source_url` (the exact page the row
was checked against) and `verified_at` (the date of that check).

## Data

Download one file (they are static JSON; `plans` and the search index contain the same records):

- `https://vpsledger.com/api/v1/plans.json` — all plans, sorted by `price_usd_monthly` ascending
- `https://vpsledger.com/api/v1/search.json` — same records plus a `filters` manifest and value `facets`
- `https://vpsledger.com/api/v1/providers.json` — provider directory with `plan_count` and cheapest verified plan

There is no auth, no write endpoint and no server-side query execution. Filter the array yourself.

## Rules

1. **Filter on `price_usd_monthly`.** It normalizes currency and billing period into a USD
   monthly equivalent using a fixed FX snapshot (EUR 1.08, GBP 1.22 on 2026-09-10). It is an
   approximation for comparison — always show the native `price`/`currency`/`billing_period`
   next to it, and write it with an "≈" so nobody mistakes it for a quote. A $21.99/year plan
   is ≈ $1.83/mo; a €4.99/mo plan is ≈ $5.39/mo.
2. **"Under $X" is strict.** A plan at exactly $5.00/mo is not "under $5". Example boundary:
   RackNerd 4 GB at $59.99/yr is ≈ $5.00/mo (precisely 4.9992) and does qualify.
3. **Cite `source_url` + `verified_at` for every plan you report.** Never state a price without
   its verification date; prices change without notice.
4. **Unknown means unknown.** `null` fields (e.g. `city`, `ipv6`, `renewal_price`) and
   `"unknown"` enums (e.g. `virtualization`) mean the official page does not publish the value.
   Never guess, never fill gaps from general knowledge. `os_type` is null for every plan today —
   no OS support has been verified yet, so never claim a plan is Linux-capable.
5. **Never invent plans.** Only report records that exist in the file you downloaded. If a
   filter returns nothing, say so.
6. `virtualization: "unknown"` rows fail any virtualization filter — do not silently include them.

## Filter semantics

| Parameter | Field | Comparison |
|---|---|---|
| `max_price` (USD/mo) | `price_usd_monthly` | `<=` (marketing pages use `<`; see rule 2) |
| `min_ram` (MB) | `ram_mb` | `>=` |
| `min_vcpu` | `vcpu` | `>=` (null fails) |
| `country` (ISO alpha-2) | `country` | equality (null never matches) |
| `city` | `city` | case-insensitive equality |
| `virtualization` | `virtualization` | equality ("unknown" fails) |
| `disk_type` | `disk_type` | equality |
| `ipv4` | `ipv4` | `ipv4 === true` when requested |
| `billing_period` | `billing_period` | equality |

Check `facets` in search.json before filtering to see which values exist
(e.g. `country` only contains US, FR, DE in the pilot dataset).

## Worked examples

Values below come from the 2026-09-10 dataset; re-download and re-verify before reporting.

### Example 1 — "VPS under $5/month with at least 2 GB RAM"

```js
plans.filter(p => p.price_usd_monthly < 5 && p.ram_mb >= 2048)
```

5 matches, cheapest first:

| Plan | Specs | Price | ≈ USD/mo | Verified |
|---|---|---|---|---|
| RackNerd 2 GB KVM VPS (`racknerd-newyear-2gb`) | 2 vCPU, 2 GB, 35 GB SSD, KVM, US | $35.99/yr | ≈ $3.00 | 2026-09-10 |
| AlphaVPS C2G (`alphavps-c2g`) | 2 vCPU, 2 GB, 30 GB SSD, KVM | €2.99/mo | ≈ $3.23 | 2026-09-10 |
| OVHcloud VPS Starter (`ovh-vps-starter-1-2-20`) | 1 vCPU, 2 GB, 20 GB, KVM, FR | €3.50/mo | ≈ $3.78 | 2026-09-10 |
| AlphaVPS C4G (`alphavps-c4g`) | 2 vCPU, 4 GB, 40 GB SSD, KVM | €3.99/mo | ≈ $4.31 | 2026-09-10 |
| RackNerd 4 GB KVM VPS (`racknerd-newyear-4gb`) | 3 vCPU, 4 GB, 60 GB SSD, KVM, US | $59.99/yr | ≈ $5.00 | 2026-09-10 |

Report: "Cheapest verified: RackNerd 2 GB KVM VPS at $35.99/year (≈ $3.00/mo), verified
2026-09-10 against https://www.racknerd.com/." Note the yearly billing explicitly.

### Example 2 — "KVM VPS hosted in the United States, under $10/month"

```js
plans.filter(p => p.country === "US" && p.virtualization === "kvm" && p.price_usd_monthly < 10)
```

6 matches in the pilot dataset. Cheapest: RackNerd 1 GB KVM VPS (`racknerd-newyear-1gb`),
1 vCPU / 1 GB / 20 GB SSD / 1 Gbps, $21.99/yr ≈ $1.83/mo, verified 2026-09-10,
https://www.racknerd.com/. Also inside the cap: Linode Nanode 1 GB at exactly $5.00/mo —
report it as "$5.00/mo", not "under $5".

### Example 3 — "Cheapest 8 GB RAM plan, KVM required"

```js
plans.filter(p => p.ram_mb >= 8192 && p.virtualization === "kvm")
     .sort((a, b) => a.price_usd_monthly - b.price_usd_monthly)[0]
```

Result: AlphaVPS C8G (`alphavps-c8g`), 4 vCPU / 8 GB / 75 GB SSD, €6.49/mo ≈ $7.01/mo,
verified 2026-09-10, https://alphavps.com/cheap-vps. AlphaVPS publishes no city for this plan
(`city` is null → say "location: Unknown"), and InMotion's 8 GB plan does **not** qualify
because its `virtualization` is `"unknown"`, not KVM.

## More

- Machine entry point: `https://vpsledger.com/ai/` (documents dataset semantics, update cadence, markdown alternates)
- Spec: `https://vpsledger.com/openapi.json`
- Discovery: `https://vpsledger.com/.well-known/api-catalog` (RFC 9727 linkset)
- Per-plan digest: `https://vpsledger.com/.well-known/agent-skills/index.json` carries the SHA256 of this file
