python.org APIpython.org ↗
Access Python release metadata, download files, OS support lists, news, events, and site search via a structured REST API built on python.org data.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/196a6c49-f721-4a4b-a403-75f093a0672e/get_all_releases' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns all Python releases from the python.org API. Includes version metadata, release dates, and resource URIs for each release.
No input parameters required.
{
"type": "array",
"fields": {
"name": "string, release name (e.g. 'Python 3.14.4')",
"slug": "string, URL-safe slug",
"version": "integer, major version number",
"is_latest": "boolean",
"pre_release": "boolean",
"is_published": "boolean",
"release_date": "string, ISO 8601 datetime",
"resource_uri": "string, API resource URI"
},
"sample": {
"data": [
{
"name": "Python 2.0.1",
"slug": "python-201",
"version": 2,
"is_latest": false,
"pre_release": false,
"is_published": true,
"release_date": "2001-06-22T00:00:00Z",
"release_page": null,
"resource_uri": "https://www.python.org/api/v2/downloads/release/146/",
"release_notes_url": "http://hg.python.org/cpython/raw-file/v2.0.1/Misc/NEWS",
"show_on_download_page": true
}
],
"status": "success"
}
}About the python.org API
This API exposes 13 endpoints covering the full breadth of python.org data: release versions, downloadable files, OS compatibility, news articles, upcoming events, and full-text site search. The get_all_releases endpoint returns every published Python release with fields like is_latest, pre_release, release_date, and resource_uri, while get_release_files_by_release gives you direct download URLs and MD5 checksums for any specific release.
Release and Version Data
The get_all_releases and get_release_by_id endpoints return structured release records with fields including name (e.g. Python 3.14.4), slug, version (integer major version), is_latest, pre_release, is_published, and an ISO 8601 release_date. get_release_by_id accepts a numeric ID such as '1090' or '146'. To get only the current stable release without filtering client-side, use get_latest_release, which returns the highest published, non-pre-release Python 3.x record.
get_active_release_versions returns the lifecycle table from the downloads page — each record includes version, maintenance_status, first_released, end_of_support, and a download_link. This is the right endpoint for answering questions like "is Python 3.9 still supported?"
Download Files and OS Coverage
get_all_release_files returns every downloadable artifact across all releases. Each file record carries url, name, md5_sum, filesize in bytes, and API URIs pointing to the parent release and os. To scope files to a single release, pass a numeric ID or full resource URI path to get_release_files_by_release. get_supported_os_list returns the OS taxonomy (name, slug, resource_uri) used by those file records.
get_releases_for_os accepts an os_slug of windows, macos, or source and returns separate stable_releases and pre_releases arrays, each containing release name, URL, date, and download links. get_release_detail_page accepts a version_slug like 'python-3120' or a dotted version string like '3.12.0' and returns per-file metadata including operating_system, file_size, md5_checksum, and download URLs. Note it returns input_not_found for older releases without detail pages. get_ftp_index exposes the raw FTP directory listing; pass an optional path like '3.12.0/' to drill into a subdirectory.
News, Events, and Search
get_news returns the latest items from the Python blog: title, url, date, and an optional summary. get_events returns upcoming community events with name, url, date (a date-range string), and optional location. search accepts a query string and returns matching pages with title, url, and an optional snippet. Not every query returns results — coverage depends on the site's own search index.
- Build a release monitor that alerts when
is_latestchanges or a new non-pre_releaseversion appears - Generate a download page for your CI pipeline by fetching
urlandmd5_sumfor the target platform fromget_release_files_by_release - Display Python version support status in documentation by reading
maintenance_statusandend_of_supportfromget_active_release_versions - Populate a changelog feed by pulling
nameandrelease_datefromget_all_releasesfiltered to a given majorversion - Track upcoming Python conferences and meetups by polling
get_eventsfor newnameanddaterecords - Audit artifact availability across platforms by cross-referencing
get_supported_os_listslugs againstget_all_release_filesOS URIs - Surface relevant python.org documentation links in a developer tool using the
queryparameter ofsearch
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does python.org have an official developer API?+
What does `get_active_release_versions` return compared to `get_all_releases`?+
get_all_releases returns every release record ever published — including old minor versions — with fields like is_published, pre_release, and a resource_uri. get_active_release_versions returns only the major-version lifecycle rows visible on the downloads page, with maintenance_status, first_released, and end_of_support fields that get_all_releases does not include.Are Python 2.x release files available?+
version field will be 2), and get_all_releases returns them. However, get_release_detail_page returns input_not_found for older releases that do not have a structured detail page. get_releases_for_os covers only releases listed on OS-specific downloads pages, which may not include legacy Python 2.x artifacts.Does the API return PEP data or Python documentation pages?+
How fresh is the news and events data from `get_news` and `get_events`?+
get_news and get_events reflect what is currently published on python.org/blogs/ and python.org/events/ respectively. There is no date-range filter parameter; both endpoints return whatever is visible on those pages at request time. If you need historical news items or past events, the current endpoints do not support that — you can fork the API on Parse and revise the endpoint to paginate or archive older entries.