# Semver Range Satisfaction Check

> Semver Range Satisfaction Check is a paid API for AI agents from semver.openverbs.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Tests whether a semantic version string satisfies a given semver range expression (^, ~, x-ranges, ||, hyphen ranges).

## Facts

- Endpoint: POST https://semver.openverbs.com/v1/satisfies
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/semver-range-satisfaction-check-7c5f26c7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JJicGny3U8HX6XgVwbroZ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability semver-range-satisfaction-check-7c5f26c7 -d '<json body>'
```

Example prompt: Does version 2.3.1 satisfy the semver range ^2.0.0? Include prereleases in the check.

## When to prefer this

Choose this endpoint when you need a quick, stateless boolean answer to whether a version satisfies a semver range — especially useful in CI/CD pipelines, dependency resolution logic, or any automated workflow that needs to gate on version compatibility without implementing semver parsing locally. Prefer it over a full parse/compare approach when you only need a pass/fail result against a range expression.

## Known failure modes

- Invalid version string format returns a validation error
- Invalid or malformed range expression causes a parsing error
- Missing required 'version' or 'range' fields returns a 400-level error
- Empty strings for version or range are rejected due to minLength:1 constraint

## How this service works

Test whether a version satisfies a semver range (^, ~, x-ranges, ||, hyphen).

## Output

A boolean indicating whether the given version string falls within the specified semver range, respecting all standard range operators (^, ~, x-ranges, ||, hyphen) and optionally including prerelease versions.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "version",
      "range"
     ],
     "properties": {
      "range": {
       "type": "string",
       "maxLength": 256,
       "minLength": 1,
       "description": "The semver range, e.g. \"^1.2.0\" or \">=1.0.0 <2.0.0\"."
      },
      "version": {
       "type": "string",
       "maxLength": 256,
       "minLength": 1,
       "description": "The version to test."
      },
      "includePrerelease": {
       "type": "boolean",
       "description": "Match prerelease versions in-range. Defaults to false."
      }
     },
     "additionalProperties": false
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/semver-range-satisfaction-check-7c5f26c7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from semver.openverbs.com](https://www.zero.xyz/host/semver.openverbs.com/llms.txt)
