Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python Enhancement Proposals

PEPs API

peps.json

There is a read-only JSON document of every published PEP available at https://peps.python.org/api/peps.json.

Each PEP is represented as a JSON object, keyed by the PEP number. The structure of each JSON object is as follows:

{
  "<PEP number>": {
    "number": integer,  // always identical to <PEP number>
    "title": string,
    "authors": string,
    "discussions_to": string | null,
    "status": "Accepted" | "Active" | "Deferred" | "Draft" | "Final" | "Provisional" | "Rejected" | "Superseded" | "Withdrawn",
    "type": "Informational" | "Process" | "Standards Track",
    "topic": "governance" | "packaging" | "release" | "typing" | "",
    "created": string,
    "python_version": string | null,
    "post_history": string | null,
    "resolution": string | null,
    "requires": string | null,
    "replaces": string | null,
    "superseded_by": string | null,
    "author_names": Array<string>,
    "url": string
  },
}

Date values are formatted as DD-MMM-YYYY, and multiple dates are combined in a comma-separated list.

A selection of example PEPs are shown here, illustrating some of the possible values for each field:

{
  "12": {
    "number": 12,
    "title": "Sample reStructuredText PEP Template",
    "authors": "David Goodger, Barry Warsaw, Brett Cannon",
    "discussions_to": null,
    "status": "Active",
    "type": "Process",
    "topic": "",
    "created": "05-Aug-2002",
    "python_version": null,
    "post_history": "`30-Aug-2002 <https://mail.python.org/archives/list/python-dev@python.org/thread/KX3AS7QAY26QH3WIUAEOCCNXQ4V2TGGV/>`__",
    "resolution": null,
    "requires": null,
    "replaces": null,
    "superseded_by": null,
    "author_names": [
     "David Goodger",
     "Barry Warsaw",
     "Brett Cannon"
    ],
    "url": "https://peps.python.org/pep-0012/"
  },
  "160": {
    "number": 160,
    "title": "Python 1.6 Release Schedule",
    "authors": "Fred L. Drake, Jr.",
    "discussions_to": null,
    "status": "Final",
    "type": "Informational",
    "topic": "release",
    "created": "25-Jul-2000",
    "python_version": "1.6",
    "post_history": null,
    "resolution": null,
    "requires": null,
    "replaces": null,
    "superseded_by": null,
    "author_names": [
     "Fred L. Drake, Jr."
    ],
    "url": "https://peps.python.org/pep-0160/"
  },
  "3124": {
    "number": 3124,
    "title": "Overloading, Generic Functions, Interfaces, and Adaptation",
    "authors": "Phillip J. Eby",
    "discussions_to": "python-3000@python.org",
    "status": "Deferred",
    "type": "Standards Track",
    "topic": "",
    "created": "28-Apr-2007",
    "python_version": null,
    "post_history": "30-Apr-2007",
    "resolution": null,
    "requires": "3107, 3115, 3119",
    "replaces": "245, 246",
    "superseded_by": null,
    "author_names": [
     "Phillip J. Eby"
    ],
    "url": "https://peps.python.org/pep-3124/"
  }
}

release-cycle.json

There is a read-only JSON document of Python releases available at https://peps.python.org/api/release-cycle.json.

Each feature version is represented as a JSON object, keyed by the minor version number (“X.Y”). The structure of each JSON object is as follows:

{
  "<language version number>": {
    "branch": string,
    "pep": integer,
    "status": 'feature' | 'prerelease' | 'bugfix' | 'security' | 'end-of-life',
    "first_release": string,  // Date formatted as YYYY-MM-DD
    "end_of_life": string,  // Date formatted as YYYY-MM-DD
    "release_manager": string
  },
}

For example:

{
  "3.15": {
    "branch": "main",
    "pep": 790,
    "status": "feature",
    "first_release": "2026-10-01",
    "end_of_life": "2031-10",
    "release_manager": "Hugo van Kemenade"
  },
  "3.14": {
    "branch": "3.14",
    "pep": 745,
    "status": "bugfix",
    "first_release": "2025-10-07",
    "end_of_life": "2030-10",
    "release_manager": "Hugo van Kemenade"
  }
}

python-releases.json

A more complete JSON document of all Python releases since version 1.6 is available at https://peps.python.org/api/python-releases.json and includes metadata about each feature release cycle, for example:

{
  "metadata": {
    "3.14": {
      "pep": 745,
      "status": "bugfix",
      "branch": "3.14",
      "release_manager": "Hugo van Kemenade",
      "start_of_development": "2024-05-08",
      "feature_freeze": "2025-05-07",
      "first_release": "2025-10-07",
      "end_of_bugfix": "2027-10-07",
      "end_of_life": "2030-10-01"
    }
  }
}

And also detailed information about each individual release within that cycle, for example:

{
  "releases": {
    "3.14": [
      {
        "stage": "3.14.0 candidate 3",
        "state": "actual",
        "date": "2025-09-18",
        "note": ""
      },
      {
        "stage": "3.14.0 final",
        "state": "actual",
        "date": "2025-10-07",
        "note": ""
      },
      {
        "stage": "3.14.1",
        "state": "expected",
        "date": "2025-12-02",
        "note": ""
      }
    ]
  }
}