Semver Parser & Version Range Checker avatar

Semver Parser & Version Range Checker

Pricing

from $0.05 / 1,000 processed versions

Go to Apify Store
Semver Parser & Version Range Checker

Semver Parser & Version Range Checker

Parse, validate, sort, and range-check semantic versions. Add version strings and an optional range, then export parsed components, ranks, errors, and latest satisfying versions.

Pricing

from $0.05 / 1,000 processed versions

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

🔎 Semver parser and version range checker

Parse, validate, sort, and range-check semantic versions in one Apify Actor. Paste release tags, dependency versions, or package manifest values, add an optional npm-style range, and get clean rows for audits, compatibility checks, exports, and API workflows.

📊 Returned data

Each output row keeps the original submitted value and adds computed semver facts:

  • version - the submitted version string.
  • coercedVersion - the semver value used for parsing, range checks, and ranking.
  • isValid - whether the submitted value is strict semver before coercion.
  • major, minor, and patch - parsed numeric version components.
  • prerelease and build - dot-joined metadata when present.
  • satisfiesRange - whether the version matches the supplied range.
  • rank - the 1-based sort rank among parseable submitted versions.
  • latestSatisfyingVersion - the highest submitted version that satisfies the supplied range.
  • error - a short reason when a version or range cannot be evaluated.

Invalid and loose version strings do not stop the run. The Actor returns a row with nullable computed fields and a clear error when a value cannot be parsed.

🚀 How to run

  1. Add one version string per line.
  2. Optionally add a version range, such as ^1.2.0, ~2.3, >=1.0.0 <3.0.0, 1.x, or *.
  3. Choose whether prerelease versions should count in range checks.
  4. Choose newest-first or oldest-first ranking.
  5. Run the Actor and open the default dataset.

The Actor accepts up to 10,000 version strings per run. It is a pure computation utility, so it does not need cookies, API keys, proxies, browsers, package registry access, or source-site access.

⚙️ Input

{
"versions": [
"1.2.3",
"2.0.0-beta.1",
"v3.1.0+build.42",
"not-a-version"
],
"range": ">=1.0.0 <3.0.0",
"includePrerelease": true,
"sortOrder": "desc"
}

versions is required. range is optional, so you can use the Actor for parse-only and sorting work when you do not need compatibility checks.

🧾 Output example

{
"version": "2.0.0-beta.1",
"coercedVersion": "2.0.0-beta.1",
"isValid": true,
"major": 2,
"minor": 0,
"patch": 0,
"prerelease": "beta.1",
"build": null,
"satisfiesRange": true,
"rank": 2,
"latestSatisfyingVersion": "2.0.0-beta.1",
"error": null
}

💳 Pricing

This Actor uses pay-per-event pricing. You are charged for each successfully processed version result that is saved to the dataset. Actor starts, empty inputs, and setup-only outcomes are not charged as separate events.

🔌 Integrations

  • Run the Actor from the Apify API when a CI job or internal tool needs semver checks.
  • Schedule repeated checks for maintained version lists or release audit inputs.
  • Export results as JSON, CSV, Excel, XML, or HTML from the default dataset.
  • Send completed-run webhooks to downstream tools that update dashboards or QA reports.

❓ FAQ

Can this work as a semver parser version range checker library replacement?

It uses standard semver behavior in an Apify Actor run. It is useful when you want hosted batch processing, dataset exports, schedules, webhooks, or API-triggered checks without adding another service to your own codebase.

Does it support npm-style semver ranges?

Yes. The Actor supports common npm-style range expressions such as caret ranges, tilde ranges, comparator sets, wildcards, and 1.x style ranges.

What happens to loose versions like v1.2 or 1.0?

The Actor preserves the original input, marks it as not strict semver, and returns a coerced semver value when one can be computed.

What happens if a version cannot be parsed?

The Actor emits a row with isValid: false, nullable computed fields, and an error message. Other submitted versions still produce their own rows.

Why not use the semver API?

There is no official remote semver API needed for this workflow. This Actor is for hosted batch runs, exports, schedules, and Apify integrations around semver parsing and range checks.

What are semver alternatives?

For local app code, a package such as npm's semver library is often the right choice. Use this Actor when you want no-code batch input, dataset output, scheduling, API runs, or webhooks on Apify.

📝 Changelog

  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré