--- title: Semver Ranges description: Learn how to use semver ranges to filter package versions on npmx.dev navigation: icon: i-lucide-filter --- npm uses [semantic versioning](https://semver.org/) (semver) to manage package versions. A **semver range** is a string that describes a set of version numbers. On npmx, you can type a semver range into the version filter input on any package page to quickly find matching versions. ## Version format Every npm version follows the format **MAJOR.MINOR.PATCH**, for example `3.2.1`: - **MAJOR** - incremented for breaking changes - **MINOR** - incremented for new features (backwards-compatible) - **PATCH** - incremented for bug fixes (backwards-compatible) Some versions also include a **prerelease** tag, such as `4.0.0-beta.1`. ## Common range syntax | Range | Meaning | Example matches | | ---------------- | ------------------------------------------------- | -------------------- | | `*` | Any version | 0.0.2, 3.1.0, 3.2.6 | | `^3.0.0` | Compatible with 3.x (same major) | 3.0.0, 3.1.0, 3.9.5 | | `~3.2.0` | At least 3.2.0, same major.minor | 3.2.0, 3.2.1, 3.2.99 | | `3.2.x` | At least 3.2.0, same major.minor | 3.2.0, 3.2.1, 3.2.99 | | `>=2.0.0 <3.0.0` | At least 2.0.0 but below 3.0.0 | 2.0.0, 2.5.3, 2.99.0 | | `1.2.3` | Exactly this version | 1.2.3 | | `=1.2.3` | Exactly this version | 1.2.3 | | `^0.3.1` | At least 0.3.1, same major.minor (0.x is special) | 0.3.1, 0.3.2 | | `^0.0.4` | Exactly 0.0.4 (0.0.x is special) | 0.0.4 (only) | ## Examples ### Find all 3.x versions Type `^3.0.0` to see every version compatible with major version 3. ### Find patch releases for a specific minor Type `~2.4.0` to see only 2.4.x patch releases (2.4.0, 2.4.1, 2.4.2, etc.). ### Find versions in a specific range Type `>=1.0.0 <2.0.0` to see all 1.x stable releases. ### Find a specific version Type the exact version number, like `5.3.1`, to check if it exists. ### Find prerelease versions Type `>=3.0.0-alpha.0` to find alpha, beta, and release candidate versions for a major release. ## Learn more The full semver range specification is documented at [node-semver](https://github.com/npm/node-semver#ranges).