{"openapi":"3.1.0","info":{"title":"Semver API","version":"1.0.0","description":"A Semantic Versioning (SemVer 2.0.0) toolkit as an API. Parse a version string into its major, minor, patch, prerelease and build parts; compare two versions; test whether a version satisfies an npm-style range (^1.2.3, ~1.4, >=2 <3, 1.x); increment a version to the next major, minor, patch or prerelease; and filter a list of versions by a range to find which match and the highest and lowest satisfying. Powered by the canonical node-semver. Perfect for dependency and release tooling, CI gates, update checkers, compatibility rules and package dashboards. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 6 endpoints. Distinct from package-registry lookups and vulnerability databases.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/semver-api","description":"oanor gateway"}],"tags":[{"name":"Semver"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/compare":{"get":{"operationId":"get_v1_compare","tags":["Semver"],"summary":"Compare two versions","description":"","parameters":[{"name":"a","in":"query","required":true,"description":"First version","schema":{"type":"string"},"example":"1.2.3"},{"name":"b","in":"query","required":true,"description":"Second version","schema":{"type":"string"},"example":"1.10.0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"a":"1.2.3","b":"1.10.0","result":-1,"relation":"<"},"meta":{"timestamp":"2026-06-03T01:09:47.044Z","request_id":"db0b6cd8-7a71-479b-88cb-d7f82c42e013"},"status":"ok","message":"Compare two versions","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/inc":{"get":{"operationId":"get_v1_inc","tags":["Semver"],"summary":"Increment a version","description":"","parameters":[{"name":"version","in":"query","required":true,"description":"Version","schema":{"type":"string"},"example":"1.2.3"},{"name":"release","in":"query","required":false,"description":"major|minor|patch|premajor|preminor|prepatch|prerelease","schema":{"type":"string"},"example":"minor"},{"name":"identifier","in":"query","required":false,"description":"Prerelease id (e.g. rc)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"next":"1.3.0","release":"minor","version":"1.2.3"},"meta":{"timestamp":"2026-06-03T01:09:47.154Z","request_id":"d45cc7d3-ed65-4976-b1eb-e8be6dd899ee"},"status":"ok","message":"Increment a version","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/parse":{"get":{"operationId":"get_v1_parse","tags":["Semver"],"summary":"Parse a version","description":"","parameters":[{"name":"version","in":"query","required":true,"description":"Version string","schema":{"type":"string"},"example":"1.2.3-beta.1+build5"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"build":["build5"],"major":1,"minor":2,"patch":3,"version":"1.2.3-beta.1","prerelease":["beta",1],"is_prerelease":true},"meta":{"timestamp":"2026-06-03T01:09:47.228Z","request_id":"55888825-e000-45e5-9463-3088085aceb2"},"status":"ok","message":"Parse a version","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/range":{"get":{"operationId":"get_v1_range","tags":["Semver"],"summary":"Filter versions by range","description":"","parameters":[{"name":"range","in":"query","required":true,"description":"Range","schema":{"type":"string"},"example":"^1.0.0"},{"name":"versions","in":"query","required":true,"description":"Comma-separated versions","schema":{"type":"string"},"example":"1.0.0,1.2.0,2.0.0,1.5.3"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"range":"^1.0.0","satisfying":["1.0.0","1.2.0","1.5.3"],"max_satisfying":"1.5.3","min_satisfying":"1.0.0","normalized_range":">=1.0.0 <2.0.0-0"},"meta":{"timestamp":"2026-06-03T01:09:47.300Z","request_id":"51af3699-eb92-43c2-8b76-7b7193ce7f17"},"status":"ok","message":"Filter versions by range","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/satisfies":{"get":{"operationId":"get_v1_satisfies","tags":["Semver"],"summary":"Version satisfies range","description":"","parameters":[{"name":"version","in":"query","required":true,"description":"Version","schema":{"type":"string"},"example":"1.2.3"},{"name":"range","in":"query","required":true,"description":"Range","schema":{"type":"string"},"example":"^1.0.0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"range":"^1.0.0","version":"1.2.3","satisfies":true},"meta":{"timestamp":"2026-06-03T01:09:47.394Z","request_id":"b99c93c1-f18c-401d-bbf0-df69302f9f6f"},"status":"ok","message":"Version satisfies range","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Semver API","notes":"Implements the SemVer 2.0.0 spec and npm-style ranges. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/parse","params":{"version":"e.g. 1.2.3-beta.1 (required)"},"returns":"major, minor, patch, prerelease, build"},{"path":"/v1/compare","params":{"a":"required","b":"required"},"returns":"-1/0/1 and the relation (< = >)"},{"path":"/v1/satisfies","params":{"range":"e.g. ^1.0.0 (required)","version":"required"},"returns":"whether the version is in range"},{"path":"/v1/inc","params":{"release":"major|minor|patch|pre… (default patch)","version":"required","identifier":"for prereleases"},"returns":"the next version"},{"path":"/v1/range","params":{"range":"required","versions":"comma-separated list (required)"},"returns":"matching versions + max/min satisfying"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"A Semantic Versioning (SemVer) toolkit — parse a version into its parts, compare two versions, test whether a version satisfies a range (^1.2.3, >=2 <3, ~1.4), increment to the next major/minor/patch/prerelease, and filter a list of versions by a range. Powered by node-semver. Pure local, no key."},"meta":{"timestamp":"2026-06-03T01:09:47.456Z","request_id":"bdc5f86a-3f4b-420a-86ce-98ade36b3c5b"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":620,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":40,"monthly_call_quota":4700,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1760,"monthly_call_quota":118000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5360,"monthly_call_quota":610000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/semver-api"}