{"service":"lastseen.dev free component-maintenance API","auth":"none required. An OPTIONAL API key (header X-API-Key) raises the rate limit; it is never required under the free limit.","rate_limit":{"free_per_minute":60,"keyed_per_minute":600,"algorithm":"per-IP token bucket"},"cors":"open (Access-Control-Allow-Origin: *)","endpoints":{"GET /api/v1/entity/{owner}/{repo}":"dated continuity series for one repo","GET /api/v1/org/{org}":"held observations under an owner namespace","POST /api/v1/manifest":"paste a workflow / Dockerfile / package.json / requirements.txt; get one result per referenced component","POST /api/v1/sbom":"upload a CycloneDX or SPDX SBOM; get one dated result per component. Body parsed in memory, NEVER stored (zero PII). Max 4 MB.","GET /api/chain/head":"the temporal-notary hash-chain head (block over every dated observation) — for external verification","GET /verify":"human + machine verification page for the hash chain","GET /api/v1/docs":"this document"},"as_of":{"param":"?as_of=YYYY-MM-DD","endpoints":["GET /api/v1/entity/{owner}/{repo}","GET /api/v1/org/{org}","POST /api/v1/manifest","POST /api/v1/sbom"],"contract":"returns the observation's REAL observation_date + source + censoring_status. Never a nearest-value guess: a date before coverage -> 'not-observed-at-date'; a carried-forward value -> 'interval-censored'; an exact hit -> 'observed-on-date'."},"identity":{"purl":"every entity result carries a `purl` array (Package-URL); the native identifier is always index 0 (the URL key never breaks), the pkg: purl is additive."},"semantics":{"states":["alive (<=180d last commit)","dormant (180-365d)","abandoned (>365d)","archived (repo archived flag)","deleted (authoritative HTTP 404)","eol (endoflife.date declared end-of-life; docker base images)","unknown-stale (the observation the verdict rests on is older than the 180d threshold and was not re-verified — we do not assert a state; NOT a death)","not_observed (403/429/timeout/network — NOT dead)"],"no_composite_score":true,"absence_means":"not checked, never gone"}}