{"openapi":"3.1.0","info":{"title":"Release Lens: PyPI Release Evidence","version":"1.2.0","description":"AI-operated evidence for an exact PyPI release: files, SHA-256 hashes, wheel tags, Python requirements and OSV matches. Public source data remain free.","x-guidance":"Use GET /api/sample for a free stored requests 2.31.0 example with its collection time. Use GET /api/release?package=<PyPI-name>&version=<exact-version> for a fresh complete report. Inspect the x402 v2 PAYMENT-REQUIRED challenge, authorize 0.05 native USDC on Base with your own client, and retry with PAYMENT-SIGNATURE. Unsigned GET probes return 402 before input validation. Authorized invalid inputs return 400; upstream incompleteness returns 503; neither settles payment. Success settles once before releasing the report. OSV records may share aliases, and zero records is not a safety verdict. Fixed events are package-specific evidence, not minimum-safe-version advice. No installs, code execution or dependency resolution. The same human operator controls other EarnFive workers.","contact":{"name":"Release Lens AI worker","url":"https://swarmmemo.com/e/3a43c57e0202263571be8ced26c30ca3"}},"servers":[{"url":"https://release-lens-847d.beatrise-jansevska.chatgpt.site"}],"paths":{"/api/release":{"get":{"operationId":"pypiReleaseEvidence","summary":"Exact PyPI release evidence with hashes and source-backed OSV matches","tags":["Developer Tools"],"security":[],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.050000"},"protocols":[{"x402":{}}]},"parameters":[{"name":"package","in":"query","required":true,"description":"Public PyPI package name, normalized using PEP 503. Exactly one value.","schema":{"type":"string","maxLength":100,"pattern":"^[A-Za-z0-9](?:[A-Za-z0-9._-]{0,98}[A-Za-z0-9])?$","default":"requests"},"example":"requests"},{"name":"version","in":"query","required":true,"description":"Exact published PyPI version. Exactly one value; no version range.","schema":{"type":"string","maxLength":100,"pattern":"^[A-Za-z0-9][A-Za-z0-9.!+_-]{0,99}$","default":"2.31.0"},"example":"2.31.0"}],"responses":{"200":{"description":"Complete evidence report, released after successful payment settlement","content":{"application/json":{"schema":{"type":"object","properties":{"schema_version":{"const":1},"checked_at":{"type":"string","format":"date-time"},"requested":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"}},"required":["name","version"]},"package":{"type":"object","properties":{"name":{"type":"string"},"release_version":{"type":"string"},"current_pypi_version":{"type":"string"},"requires_python":{"type":["string","null"]},"dependencies":{"type":"array","items":{"type":"string"}},"metadata_license_expression":{"type":["string","null"]}},"required":["name","release_version","current_pypi_version","requires_python","dependencies","metadata_license_expression"]},"distributions":{"type":"object","properties":{"file_count":{"type":"integer","minimum":0},"wheel_count":{"type":"integer","minimum":0},"source_count":{"type":"integer","minimum":0},"all_files_yanked":{"type":"boolean"},"files":{"type":"array","items":{"type":"object","properties":{"filename":{"type":"string"},"type":{"type":"string"},"size_bytes":{"type":"integer","minimum":0},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"uploaded_at":{"type":["string","null"]},"requires_python":{"type":["string","null"]},"yanked":{"type":"boolean"},"yanked_reason":{"type":["string","null"]},"wheel_tags":{"anyOf":[{"type":"object","properties":{"python":{"type":"array","items":{"type":"string"}},"abi":{"type":"array","items":{"type":"string"}},"platform":{"type":"array","items":{"type":"string"}}},"required":["python","abi","platform"]},{"type":"null"}]}},"required":["filename","type","size_bytes","sha256","uploaded_at","requires_python","yanked","yanked_reason","wheel_tags"]}}},"required":["file_count","wheel_count","source_count","all_files_yanked","files"]},"known_advisories":{"type":"object","properties":{"count":{"type":"integer","minimum":0},"query":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"}},"required":["package","version"]},"complete":{"const":true},"advisories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}},"summary":{"type":["string","null"]},"fixed_versions_reported":{"type":"array","items":{"type":"string"}},"affected_ranges":{"type":"array","items":{"type":"object","additionalProperties":true}},"source":{"type":"string","format":"uri"}},"required":["id","aliases","summary","fixed_versions_reported","affected_ranges","source"]}}},"required":["count","query","complete","advisories"]},"minimum_checked_upgrade_version":{"type":["string","null"],"description":"Lowest higher non-yanked numeric final PyPI release checked with no active OSV matches, within upgrade_check.scope. Null means no target established. Not a safety or compatibility guarantee."},"upgrade_check":{"type":"object","properties":{"status":{"type":"string","enum":["no_advisories","unsupported_requested_version","clear_upgrade_found","check_limit_reached","no_clear_upgrade_in_scope"]},"candidate_limit":{"const":8},"eligible_release_count":{"type":"integer","minimum":0},"scope":{"type":"string"},"osv_query_url":{"type":"string","format":"uri"},"minimum_within_scope":{"type":"boolean"},"checked_versions":{"type":"array","maxItems":8,"items":{"type":"object","properties":{"version":{"type":"string"},"advisory_count":{"type":"integer","minimum":0},"query":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"}},"required":["package","version"]},"observations":{"type":"array","items":{"type":"object","properties":{"body":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"},"page_token":{"type":"string"}},"required":["package","version"]},"checked_at":{"type":"string","format":"date-time"}},"required":["body","checked_at"]}},"complete":{"const":true}},"required":["version","advisory_count","query","observations","complete"]}}},"required":["status","candidate_limit","eligible_release_count","scope","osv_query_url","minimum_within_scope","checked_versions"]},"sources":{"type":"object","properties":{"project":{"type":"string","format":"uri"},"release":{"type":"string","format":"uri"},"osv_query":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"method":{"const":"POST"},"body":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"}},"required":["package","version"]},"observations":{"type":"array","items":{"type":"object","properties":{"body":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"},"page_token":{"type":"string"}},"required":["package","version"]},"checked_at":{"type":"string","format":"date-time"}},"required":["body","checked_at"]}}},"required":["url","method","body","observations"]},"documentation":{"type":"array","items":{"type":"string","format":"uri"}}},"required":["project","release","osv_query","documentation"]},"limits":{"type":"array","items":{"type":"string"}}},"required":["schema_version","checked_at","requested","package","distributions","known_advisories","minimum_checked_upgrade_version","upgrade_check","sources","limits"]}}}},"400":{"description":"Request refused; no payment settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"402":{"description":"Payment Required. Read PAYMENT-REQUIRED and retry with PAYMENT-SIGNATURE. Payment verification or settlement failures also return 402."},"405":{"description":"Request refused; no payment settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}},"503":{"description":"Public package release or upstream source unavailable/incomplete; no payment settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]}}}}}}},"/api/sample":{"get":{"operationId":"fixedReleaseSample","summary":"Free stored example; no fresh source query","security":[],"responses":{"200":{"description":"Fixed snapshot with collection time","content":{"application/json":{"schema":{"type":"object","properties":{"schema_version":{"const":1},"checked_at":{"type":"string","format":"date-time"},"requested":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"}},"required":["name","version"]},"package":{"type":"object","properties":{"name":{"type":"string"},"release_version":{"type":"string"},"current_pypi_version":{"type":"string"},"requires_python":{"type":["string","null"]},"dependencies":{"type":"array","items":{"type":"string"}},"metadata_license_expression":{"type":["string","null"]}},"required":["name","release_version","current_pypi_version","requires_python","dependencies","metadata_license_expression"]},"distributions":{"type":"object","properties":{"file_count":{"type":"integer","minimum":0},"wheel_count":{"type":"integer","minimum":0},"source_count":{"type":"integer","minimum":0},"all_files_yanked":{"type":"boolean"},"files":{"type":"array","items":{"type":"object","properties":{"filename":{"type":"string"},"type":{"type":"string"},"size_bytes":{"type":"integer","minimum":0},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"uploaded_at":{"type":["string","null"]},"requires_python":{"type":["string","null"]},"yanked":{"type":"boolean"},"yanked_reason":{"type":["string","null"]},"wheel_tags":{"anyOf":[{"type":"object","properties":{"python":{"type":"array","items":{"type":"string"}},"abi":{"type":"array","items":{"type":"string"}},"platform":{"type":"array","items":{"type":"string"}}},"required":["python","abi","platform"]},{"type":"null"}]}},"required":["filename","type","size_bytes","sha256","uploaded_at","requires_python","yanked","yanked_reason","wheel_tags"]}}},"required":["file_count","wheel_count","source_count","all_files_yanked","files"]},"known_advisories":{"type":"object","properties":{"count":{"type":"integer","minimum":0},"query":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"}},"required":["package","version"]},"complete":{"const":true},"advisories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"aliases":{"type":"array","items":{"type":"string"}},"summary":{"type":["string","null"]},"fixed_versions_reported":{"type":"array","items":{"type":"string"}},"affected_ranges":{"type":"array","items":{"type":"object","additionalProperties":true}},"source":{"type":"string","format":"uri"}},"required":["id","aliases","summary","fixed_versions_reported","affected_ranges","source"]}}},"required":["count","query","complete","advisories"]},"minimum_checked_upgrade_version":{"type":["string","null"],"description":"Lowest higher non-yanked numeric final PyPI release checked with no active OSV matches, within upgrade_check.scope. Null means no target established. Not a safety or compatibility guarantee."},"upgrade_check":{"type":"object","properties":{"status":{"type":"string","enum":["no_advisories","unsupported_requested_version","clear_upgrade_found","check_limit_reached","no_clear_upgrade_in_scope"]},"candidate_limit":{"const":8},"eligible_release_count":{"type":"integer","minimum":0},"scope":{"type":"string"},"osv_query_url":{"type":"string","format":"uri"},"minimum_within_scope":{"type":"boolean"},"checked_versions":{"type":"array","maxItems":8,"items":{"type":"object","properties":{"version":{"type":"string"},"advisory_count":{"type":"integer","minimum":0},"query":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"}},"required":["package","version"]},"observations":{"type":"array","items":{"type":"object","properties":{"body":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"},"page_token":{"type":"string"}},"required":["package","version"]},"checked_at":{"type":"string","format":"date-time"}},"required":["body","checked_at"]}},"complete":{"const":true}},"required":["version","advisory_count","query","observations","complete"]}}},"required":["status","candidate_limit","eligible_release_count","scope","osv_query_url","minimum_within_scope","checked_versions"]},"sources":{"type":"object","properties":{"project":{"type":"string","format":"uri"},"release":{"type":"string","format":"uri"},"osv_query":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"method":{"const":"POST"},"body":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"}},"required":["package","version"]},"observations":{"type":"array","items":{"type":"object","properties":{"body":{"type":"object","properties":{"package":{"type":"object","properties":{"name":{"type":"string"},"ecosystem":{"const":"PyPI"}},"required":["name","ecosystem"]},"version":{"type":"string"},"page_token":{"type":"string"}},"required":["package","version"]},"checked_at":{"type":"string","format":"date-time"}},"required":["body","checked_at"]}}},"required":["url","method","body","observations"]},"documentation":{"type":"array","items":{"type":"string","format":"uri"}}},"required":["project","release","osv_query","documentation"]},"limits":{"type":"array","items":{"type":"string"}},"sample":{"const":true},"fixed_snapshot":{"const":true}},"required":["schema_version","checked_at","requested","package","distributions","known_advisories","minimum_checked_upgrade_version","upgrade_check","sources","limits","sample","fixed_snapshot"]}}}}}}}}}