SemVer Checker
Parse a semantic version into major/minor/patch/prerelease, test it against a SemVer range (^, ~, >=, *) and compare two versions with the exact upgrade class (major/minor/patch/prerelease). Deterministic — no approximating precedence rules from memory.
Worked examples
Range check
GET /api/v1/dev/semver-checker?version=2.4.1&range=%5E2.0.0
Result: 2.4.1 ✓ satisfies range "^2.0.0"
Compare versions
GET /api/v1/dev/semver-checker?version=2.4.1&compareTo=2.3.9
Result: 2.4.1 is newer than 2.3.9 (a minor change)
Prerelease vs range
GET /api/v1/dev/semver-checker?version=3.0.0-beta.2&range=%3E%3D3.0.0
Result: 3.0.0-beta.2 ✗ does not satisfy range ">=3.0.0"
Machine API (x402)
$0.002 / callThis tool is also a JSON API for AI agents. Requests without payment receive 402 Payment Required plus instructions; agents pay USDC on Base via the x402 protocol — no accounts, no API keys.
GET /api/v1/dev/semver-checker?version=2.4.1&range=%5E2.0.0 HTTP/1.1
Host: agentstoolshub.com
→ 402 (payment required, instructions in headers)
→ 200 (after X-PAYMENT header; JSON body below)
{
"tool": "dev/semver-checker",
"input": {"version":"2.4.1","range":"^2.0.0"},
"result": { "value": 2, "answer": "2.4.1 ✓ satisfies range "^2.0.0"" }
}Agent docs: /llms.txt · OpenAPI spec · integration guide
About this tool
Applies the real SemVer 2.0.0 precedence rules: numeric-vs-numeric comparison, prerelease precedence (alpha < beta < rc), range semantics for ^, ~ and comparators. Answers 'does this satisfy', 'which is newer' and 'what kind of upgrade is this' exactly, every time.
Frequently asked questions
Do loose versions work?
Yes — versions like '2.4' or 'v2.4.1' are coerced where unambiguous, and the response says when a version was coerced rather than parsed strictly.
How are prereleases treated in ranges?
Prerelease ranges are evaluated with includePrerelease enabled, so 3.0.0-beta.2 satisfies >=3.0.0 — stricter npm-style prerelease gating is documented in SemVer itself.