Developer
Registry-agnostic package maintenance/abandonment scorer (pure) API
Pure, registry-agnostic maintenance scorer: given last-publish age (days, or an ISO lastPublished date), optional release count, and an optional deprecation flag, returns a verdict (maintained/aging/at-risk/abandoned/deprecated/unknown), a 0-100 health score, and the contributing reasons + band definitions. Free to run, no upstream. Distinct from dev-abandoned (npm-only, joins GitHub commits) — this works for ANY ecosystem from publish metadata alone. Answers 'given this package's last-release date, is it likely abandoned?'.
Price$0.01per request
MethodPOST
Route/v1/dev/package-maintenance
StatusLive
MIME typeapplication/json
Rate limit60/minute
Cache3600s public
devmaintenanceabandonmentpackagesupply-chainscoreregistry-agnosticpure
API URL
Integration docshttps://x402.hexl.dev/v1/dev/package-maintenanceExample request
{
"lastPublished": "2026-01-01T00:00:00Z"
}Example response
{
"verdict": "maintained",
"score": 90,
"daysSinceRelease": 155,
"reasons": [
"Released 155d ago (< 6 months) — actively published."
],
"bands": {
"maintained": "< 180 days since last release",
"aging": "180-365 days",
"at-risk": "365-730 days",
"abandoned": ">= 730 days",
"deprecated": "registry-flagged deprecated/yanked (overrides age)"
},
"note": "Registry-agnostic verdict from last-publish age + release history. For npm specifically, dev-abandoned additionally joins GitHub commit activity."
}Input schema
{
"type": "object",
"properties": {
"daysSinceRelease": {
"type": "number",
"description": "Days since the last release (provide this or lastPublished)."
},
"lastPublished": {
"type": "string",
"description": "ISO date/timestamp of the last release."
},
"releaseCount": {
"type": "number",
"description": "Number of published releases (optional, adds credibility weighting)."
},
"deprecated": {
"type": "boolean",
"description": "Whether the registry flags it deprecated/yanked."
}
}
}Output schema
{
"type": "object",
"additionalProperties": true
}