diff --git a/doc/source/admin/drivers/ilo.rst b/doc/source/admin/drivers/ilo.rst
index 8a41a6b3db..9b8d810d20 100644
--- a/doc/source/admin/drivers/ilo.rst
+++ b/doc/source/admin/drivers/ilo.rst
@@ -224,7 +224,7 @@ Node configuration
 Prerequisites
 =============
 
-* `proliantutils <https://pypi.python.org/pypi/proliantutils>`_ is a python package
+* `proliantutils <https://pypi.org/project/proliantutils>`_ is a python package
   which contains a set of modules for managing HPE ProLiant hardware.
 
   Install ``proliantutils`` module on the ironic conductor node. Minimum
@@ -1028,7 +1028,7 @@ flavor.
 
 Use element ``ubuntu-signed`` or ``fedora`` to build signed deploy iso and
 user images from
-`diskimage-builder <https://pypi.python.org/pypi/diskimage-builder>`_.
+`diskimage-builder <https://pypi.org/project/diskimage-builder>`_.
 Please refer to :ref:`deploy-ramdisk` for more information on building
 deploy ramdisk.
 
diff --git a/doc/source/admin/drivers/irmc.rst b/doc/source/admin/drivers/irmc.rst
index 8348750c7c..3b80cf4e13 100644
--- a/doc/source/admin/drivers/irmc.rst
+++ b/doc/source/admin/drivers/irmc.rst
@@ -15,8 +15,8 @@ hardware type.
 Prerequisites
 =============
 
-* Install `python-scciclient <https://pypi.python.org/pypi/python-scciclient>`_
-  and `pysnmp <https://pypi.python.org/pypi/pysnmp>`_ packages::
+* Install `python-scciclient <https://pypi.org/project/python-scciclient>`_
+  and `pysnmp <https://pypi.org/project/pysnmp>`_ packages::
 
   $ pip install "python-scciclient>=0.6.0" pysnmp
 
@@ -592,9 +592,9 @@ configuration:
 * The python-scciclient package requires pyghmi version >= 1.0.22 and pysnmp
   version >= 4.2.3. They are used by the conductor service on the conductor.
   The latest version of pyghmi can be downloaded from `here
-  <https://pypi.python.org/pypi/pyghmi/>`__
+  <https://pypi.org/project/pyghmi/>`__
   and pysnmp can be downloaded from `here
-  <https://pypi.python.org/pypi/pysnmp/>`__.
+  <https://pypi.org/project/pysnmp/>`__.
 
 Supported properties
 ~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/source/admin/drivers/oneview.rst b/doc/source/admin/drivers/oneview.rst
index 0db6783c1d..122348ca2c 100644
--- a/doc/source/admin/drivers/oneview.rst
+++ b/doc/source/admin/drivers/oneview.rst
@@ -434,9 +434,9 @@ References
 ==========
 .. [1] HP OneView - https://www.hpe.com/us/en/integrated-systems/software.html
 .. [2] :ref:`architecture_drivers`
-.. [3] hpOneView - https://pypi.python.org/pypi/hpOneView
+.. [3] hpOneView - https://pypi.org/project/hpOneView
 .. [6] Dynamic Allocation in OneView drivers - https://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/oneview-drivers-dynamic-allocation.html
-.. [7] ironic-oneviewd - https://pypi.python.org/pypi/ironic-oneviewd/
-.. [8] ironic-oneview-cli - https://pypi.python.org/pypi/ironic-oneview-cli/
+.. [7] ironic-oneviewd - https://pypi.org/project/ironic-oneviewd/
+.. [8] ironic-oneview-cli - https://pypi.org/project/ironic-oneview-cli/
 .. [9] ironic-inspector - https://docs.openstack.org/ironic-inspector/latest/
 .. [10] ironic-inspector install - https://docs.openstack.org/ironic-inspector/latest/install/index.html
diff --git a/doc/source/admin/drivers/ucs.rst b/doc/source/admin/drivers/ucs.rst
index 56b74937fb..7b38ca6ae9 100644
--- a/doc/source/admin/drivers/ucs.rst
+++ b/doc/source/admin/drivers/ucs.rst
@@ -96,4 +96,4 @@ The following sequence of commands can be used to enroll a UCS node.
 
 References
 ==========
-.. [1] UcsSdk - https://pypi.python.org/pypi/UcsSdk
+.. [1] UcsSdk - https://pypi.org/project/UcsSdk
diff --git a/doc/source/admin/inspection.rst b/doc/source/admin/inspection.rst
index 582e3860d1..51bf7fc199 100644
--- a/doc/source/admin/inspection.rst
+++ b/doc/source/admin/inspection.rst
@@ -113,6 +113,6 @@ configuration file must be set::
     add_ports = all
     keep_ports = present
 
-.. _ironic-inspector: https://pypi.python.org/pypi/ironic-inspector
-.. _python-ironic-inspector-client: https://pypi.python.org/pypi/python-ironic-inspector-client
-.. _python-ironicclient: https://pypi.python.org/pypi/python-ironicclient
+.. _ironic-inspector: https://pypi.org/project/ironic-inspector
+.. _python-ironic-inspector-client: https://pypi.org/project/python-ironic-inspector-client
+.. _python-ironicclient: https://pypi.org/project/python-ironicclient
diff --git a/doc/source/contributor/dev-quickstart.rst b/doc/source/contributor/dev-quickstart.rst
index b8eac635ce..61ae85a799 100644
--- a/doc/source/contributor/dev-quickstart.rst
+++ b/doc/source/contributor/dev-quickstart.rst
@@ -105,7 +105,7 @@ name. For example::
 
 You may pass options to the test programs using positional arguments.
 To run a specific unit test, this passes the -r option and desired test
-(regex string) to `os-testr <https://pypi.python.org/pypi/os-testr>`_::
+(regex string) to `os-testr <https://pypi.org/project/os-testr>`_::
 
     # run a specific test for Python 2.7
     tox -epy27 -- -r test_conductor
diff --git a/ironic/drivers/modules/inspector.py b/ironic/drivers/modules/inspector.py
index 25104ee84b..06d10a42d3 100644
--- a/ironic/drivers/modules/inspector.py
+++ b/ironic/drivers/modules/inspector.py
@@ -12,7 +12,7 @@
 
 """
 Modules required to work with ironic_inspector:
-    https://pypi.python.org/pypi/ironic-inspector
+    https://pypi.org/project/ironic-inspector
 """
 
 import eventlet
diff --git a/releasenotes/notes/add-tooz-dep-85c56c74733a222d.yaml b/releasenotes/notes/add-tooz-dep-85c56c74733a222d.yaml
index dc6eb7647b..42ab766a43 100644
--- a/releasenotes/notes/add-tooz-dep-85c56c74733a222d.yaml
+++ b/releasenotes/notes/add-tooz-dep-85c56c74733a222d.yaml
@@ -2,5 +2,5 @@
 upgrade:
   - |
     Adds a new dependency on the
-    `tooz library <https://pypi.python.org/pypi/tooz>`_, as the consistent
+    `tooz library <https://pypi.org/project/tooz>`_, as the consistent
     hash ring code was moved out of ironic and into tooz.