{"slug":"upgrade-brief-shopttyass-85f-workers-dev-pypi-changelog-4c97d6","title":"PyPI changelog between two versions of a Python package","host":"upgrade-brief.shopttyass-85f.workers.dev","method":"GET","resource":"https://upgrade-brief.shopttyass-85f.workers.dev/pypi/changelog","category":"code","description":"PyPI changelog between two versions of a Python package: the full release notes of every version in the range (newest first, up to 100) from the project's changelog file and GitHub releases, with publish dates, bump type, yanked flags, extracted breaking changes and Requires-Python / dependency chan","price_listed":0.01,"price_asked":null,"state":"effects","state_label":"Not tested: has real-world effects","checks_7d":0,"answered_7d":0,"latency_ms_median":null,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453","solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"method":"GET","queryParams":{"from":"2.3.3","package":"flask","to":"3.0.0"},"type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"method":{"enum":["GET"],"type":"string"},"queryParams":{"additionalProperties":false,"properties":{"from":{"description":"Version you are on now: exact ('1.10.13', '2.0'), or a major/minor prefix ('1', '4.2') resolved to its newest stable release (PEP 440)","type":"string"},"maxVersions":{"default":30,"description":"Newest N versions of the range to return notes for","maximum":100,"minimum":1,"type":"integer"},"package":{"description":"PyPI project name, e.g. 'pydantic', 'django' or 'flask'","type":"string"},"prereleases":{"default":"false","description":"Include alpha/beta/rc/canary versions in the range","enum":["true","false"],"type":"string"},"to":{"default":"latest","description":"Target version (exact or prefix). Default: the latest stable release ('latest')","type":"string"}},"required":["package","from"],"type":"object"},"type":{"const":"http","type":"string"}},"required":["type","method"],"type":"object"},"output":{"properties":{"example":{"properties":{"asOf":{"type":"string"},"attribution":{"type":"string"},"degraded":{"description":"true when GitHub was read without an API token (fewer release notes reachable)","type":"boolean"},"from":{"type":"string"},"fromPublishedAt":{"description":"ISO date","type":["string","null"]},"includesPrereleases":{"type":"boolean"},"latest":{"description":"Latest stable version","type":["string","null"]},"manifestChanges":{"description":"Differences between the two versions' PyPI metadata (Requires-Python, required dependencies)","properties":{"dependencies":{"type":"object"},"flags":{"items":{"type":"string"},"type":"array"},"requiresPython":{"type":"object"}},"type":["object","null"]},"migrationGuides":{"description":"Migration / upgrade guide links found in the notes","items":{"type":"string"},"type":"array"},"notes":{"items":{"type":"string"},"type":"array"},"package":{"type":"string"},"releases":{"description":"Newest first","items":{"properties":{"breaking":{"items":{"type":"string"},"type":"array"},"bump":{"type":"string"},"deprecated":{"description":"npm deprecation message","type":["string","null"]},"notes":{"description":"Release notes (markdown), up to 6,000 characters","type":["string","null"]},"publishedAt":{"description":"ISO date","type":["string","null"]},"source":{"description":"changelog (npm package) | changelog (repository) | github-release","type":["string","null"]},"sourceUrl":{"description":"URL","type":["string","null"]},"truncated":{"type":"boolean"},"version":{"type":"string"}},"type":"object"},"type":"array"},"repository":{"description":"Source repository URL","type":["string","null"]},"sources":{"items":{"type":"string"},"type":"array"},"summary":{"type":"string"},"to":{"type":"string"},"toPublishedAt":{"description":"ISO date","type":["string","null"]},"versionsInRange":{"description":"Versions after 'from' up to and including 'to'","type":"integer"}},"required":["package","from","to","releases"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[],"description_full":"PyPI changelog between two versions of a Python package: the full release notes of every version in the range (newest first, up to 100) from the project's changelog file and GitHub releases, with publish dates, bump type, yanked flags, extracted breaking changes and Requires-Python / dependency changes. One call instead of reading a long HISTORY or CHANGES file before a Python package upgrade.","last_updated":"2026-10-22T13:37:28.168Z","schemes":["exact"]}