diff --git a/README.rst b/README.rst
index 29a681392a..86425831a1 100644
--- a/README.rst
+++ b/README.rst
@@ -74,12 +74,13 @@ Install ``plone.restapi`` by adding it to your buildout.
Python / Plone Compatibility
============================
-plone.restapi 8 requires Python 3 and works with Plone 5.2 and Plone 6.x.
+plone.restapi 9 requires Python 3 and works with Plone 5.2 and Plone 6.x.
-plone.restapi 8 does not officially support Python 3.6.
+plone.restapi 8 entered "maintenance" mode with the release of plone.restapi 9 (September 2023).
+It is not planned to backport any features to this version and we highly recommend to upgrade to plone.restapi 9.
Python versions that reached their `end-of-life `_,
-including Python 3.6, might still work, but the maintainers do not guarantee this in any way.
+including Python 3.6 and Python 3.7 are not supported any longer.
Use plone.restapi 7 if you are running Python 2.7 or Plone versions below 5.2.
diff --git a/docs/source/upgrade-guide.md b/docs/source/upgrade-guide.md
index 8ea4a5f110..98c5455bcd 100644
--- a/docs/source/upgrade-guide.md
+++ b/docs/source/upgrade-guide.md
@@ -14,6 +14,10 @@ It explains the steps that are needed to upgrade to the latest version.
## Upgrading to `plone.restapi` 9.x
+`plone.restapi` 9.x dropped support for Python 3.7, which reached its `end-of-life `_ in July 2023.
+
+Upgrading to `plone.restapi` 9.x might require minor changes to your code base that are described in this section. If you are using a recent version of Volto, there are no changes necessary.
+
### Link Integrity
When calling the @linkintegrity endpoint in `plone.restapi` before 9.0.0, a content object with no link integrity breaches would return just an empty list in the response body:
diff --git a/news/1.bugfix b/news/1.bugfix
index 37a92b93ea..0e46ff88db 100644
--- a/news/1.bugfix
+++ b/news/1.bugfix
@@ -1,5 +1,4 @@
Fix stored XSS (Cross Site Scripting) for SVG image in user portrait.
Done by forcing a download instead of displaying inline.
Normal accessing via an image tag is not affected and is safe.
-See `security advisory `_.
-[maurits]
+See `security advisory `_. @maurits
diff --git a/news/1570.bugfix b/news/1570.bugfix
index 37f023d218..c6e766f2e5 100644
--- a/news/1570.bugfix
+++ b/news/1570.bugfix
@@ -1,2 +1 @@
-Use incoming request to produce location for @tus-upload
-[instification]
+Use incoming request to produce location for `@tus-upload`. @instification
diff --git a/news/1709.breaking b/news/1709.breaking
new file mode 100644
index 0000000000..369f3bd5c6
--- /dev/null
+++ b/news/1709.breaking
@@ -0,0 +1 @@
+Drop support for Python 3.7. Set python_requires to >= 3.8 @tisto
\ No newline at end of file
diff --git a/setup.py b/setup.py
index 1c18881064..f3cc03baf2 100644
--- a/setup.py
+++ b/setup.py
@@ -67,7 +67,6 @@ def read(filename):
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Programming Language :: Python",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
@@ -83,7 +82,7 @@ def read(filename):
packages=find_packages("src"),
package_dir={"": "src"},
namespace_packages=["plone"],
- python_requires=">=3.6",
+ python_requires=">=3.8",
include_package_data=True,
zip_safe=False,
install_requires=[