diff --git a/docs/source/index.rst b/docs/source/index.rst
index 0e8a203bbf90d00f7d8c9ffbdf2f6063cd892448..973f14658ae332ceb0b6b67213c6fc59c9284487 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -17,4 +17,4 @@ by an HTTP API.
    :caption: Contents:
 
    configuration
-   protocol/index
\ No newline at end of file
+   protocol
\ No newline at end of file
diff --git a/docs/source/protocol/index.rst b/docs/source/protocol.rst
similarity index 71%
rename from docs/source/protocol/index.rst
rename to docs/source/protocol.rst
index 370ec063c4bf9dc13791577bc6a37c8bc81070ab..2f389bfdaa14def22ce6809001c3949f354b8626 100644
--- a/docs/source/protocol/index.rst
+++ b/docs/source/protocol.rst
@@ -28,11 +28,16 @@ API modules
    :maxdepth: 2
    :caption: Contents:
 
-   classifier
-   lg
-   data
-   jobs
-   msr
-   lnetd
+.. automodule:: inventory_provider.routes.classifier
 
 .. automodule:: inventory_provider.routes.poller
+
+.. automodule:: inventory_provider.routes.msr
+
+.. automodule:: inventory_provider.routes.lg
+
+.. automodule:: inventory_provider.routes.lnetd
+
+.. automodule:: inventory_provider.routes.data
+
+.. automodule:: inventory_provider.routes.jobs
diff --git a/docs/source/protocol/classifier.rst b/docs/source/protocol/classifier.rst
deleted file mode 100644
index 06729f244634fb9c1911c6507aa7c9a03c61e01a..0000000000000000000000000000000000000000
--- a/docs/source/protocol/classifier.rst
+++ /dev/null
@@ -1,43 +0,0 @@
-.. classifier endpoint docs
-
-
-Classifier Endpoints
-=========================
-
-These endpoints are intended for use by Dashboard V3.
-
-.. contents:: :local:
-
-/classifier/peer-info
----------------------
-
-.. autofunction:: inventory_provider.routes.classifier.get_bgp_peer_info
-
-/classifier/juniper-link-info
------------------------------
-
-.. autofunction:: inventory_provider.routes.classifier.get_juniper_link_info
-
-
-/classifier/infinera-lambda-info
---------------------------------
-
-.. autofunction:: inventory_provider.routes.classifier.get_infinera_lambda_info
-
-
-/classifier/infinera-fiberlink-info
-------------------------------------
-
-.. autofunction::
-   inventory_provider.routes.classifier.get_fiberlink_trap_metadata
-
-/classifier/coriant-info
-------------------------
-
-.. autofunction:: inventory_provider.routes.classifier.get_coriant_info
-
-
-/classifier/mtc-interface-info
---------------------------------
-
-.. autofunction:: inventory_provider.routes.classifier.get_mtc_interface_info
diff --git a/docs/source/protocol/data.rst b/docs/source/protocol/data.rst
deleted file mode 100644
index 2f7eec7d0b0a05a141cc242bc4ad598e3df2e153..0000000000000000000000000000000000000000
--- a/docs/source/protocol/data.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-.. poller endpoint docs
-
-
-Data Endpoints
-=========================
-
-These endpoints are temporary and will be removed.
-
-.. contents:: :local:
-
-/data/routers
----------------------------------
-
-.. autofunction:: inventory_provider.routes.data.routers
-
-/data/interfaces
----------------------------------
-
-.. autofunction:: inventory_provider.routes.data.router_interfaces
-
-/data/pop
----------------------------------
-
-.. autofunction:: inventory_provider.routes.data.equipment_location
diff --git a/docs/source/protocol/jobs.rst b/docs/source/protocol/jobs.rst
deleted file mode 100644
index bd1707eb25075c637cca7a33827fdc5a7ef9b79b..0000000000000000000000000000000000000000
--- a/docs/source/protocol/jobs.rst
+++ /dev/null
@@ -1,26 +0,0 @@
-.. poller endpoint docs
-
-
-Jobs Endpoints
-=========================
-
-These endpoints are used for monitoring running jobs.
-
-.. contents:: :local:
-
-/jobs/update
----------------------------------
-
-.. autofunction:: inventory_provider.routes.jobs.update
-
-
-/jobs/check-task-status
----------------------------------
-
-.. autofunction:: inventory_provider.routes.jobs.check_task_status
-
-
-/jobs/log
----------------------------------
-
-.. autofunction:: inventory_provider.routes.jobs.load_task_log
diff --git a/docs/source/protocol/lg.rst b/docs/source/protocol/lg.rst
deleted file mode 100644
index 363555fed626cc07904df9e158db1fa78d7b0d30..0000000000000000000000000000000000000000
--- a/docs/source/protocol/lg.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-.. LG endpoint docs
-
-
-LG Support Endpoints
-=========================
-
-These endpoints are intended for use by LG.
-
-/lg/interfaces
----------------------------------
-
-.. autofunction:: inventory_provider.routes.lg.routers
diff --git a/docs/source/protocol/lnetd.rst b/docs/source/protocol/lnetd.rst
deleted file mode 100644
index 6502451c057217084217ed77821b64e3945b8ea9..0000000000000000000000000000000000000000
--- a/docs/source/protocol/lnetd.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-.. LnetD endpoint docs
-
-
-LnetD support
-=========================
-
-This endpoint is intended for use with LnetD
-
-.. contents:: :local:
-
-/LnetD/interfaces</hostname>
----------------------------------
-
-.. autofunction:: inventory_provider.routes.lnetd.interfaces
diff --git a/docs/source/protocol/msr.rst b/docs/source/protocol/msr.rst
deleted file mode 100644
index 22d47455a62db725bfd47e4e0f8f27209c230252..0000000000000000000000000000000000000000
--- a/docs/source/protocol/msr.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-.. poller endpoint docs
-
-
-MSR Support Endpoints
-=========================
-
-These endpoints are intended for use by MSR.
-
-.. contents:: :local:
-
-/msr/access-services
----------------------------------
-
-.. autofunction:: inventory_provider.routes.msr.access_services
-
-
-/msr/bgp/logical-systems
--------------------------------------
-
-.. autofunction:: inventory_provider.routes.msr.get_logical_systems
-
-
-/msr/bgp/logical-system-peerings</name>
-------------------------------------------
-
-.. autofunction:: inventory_provider.routes.msr.logical_system_peerings
-
-
-/msr/bgp/groups
--------------------------------------
-
-.. autofunction:: inventory_provider.routes.msr.get_peering_groups
-
-
-/msr/bgp/group-peerings</name>
--------------------------------------
-
-.. autofunction:: inventory_provider.routes.msr.bgp_group_peerings
-
-
-/msr/bgp/routing-instances
--------------------------------------
-
-.. autofunction:: inventory_provider.routes.msr.get_peering_routing_instances
-
-
-/msr/bgp/routing-instance-peeringns</name>
---------------------------------------------
-
-.. autofunction:: inventory_provider.routes.msr.bgp_routing_instance_peerings
-
-helpers
--------------------------------------
-
-.. autofunction:: inventory_provider.routes.msr._handle_peering_group_list_request
-
-.. autofunction:: inventory_provider.routes.msr._handle_peering_group_request
diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index f470dd3393c58b94fccec10a0597b388b5b16757..6d27c8a081c398aec98ade4aac42647ef0dd00fe 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -1,3 +1,45 @@
+"""
+Classifier Endpoints
+=========================
+
+These endpoints are intended for use by Dashboard V3.
+
+.. contents:: :local:
+
+/classifier/peer-info
+---------------------
+
+.. autofunction:: inventory_provider.routes.classifier.get_bgp_peer_info
+
+/classifier/juniper-link-info
+-----------------------------
+
+.. autofunction:: inventory_provider.routes.classifier.get_juniper_link_info
+
+
+/classifier/infinera-lambda-info
+--------------------------------
+
+.. autofunction:: inventory_provider.routes.classifier.get_infinera_lambda_info
+
+
+/classifier/infinera-fiberlink-info
+------------------------------------
+
+.. autofunction::
+   inventory_provider.routes.classifier.get_fiberlink_trap_metadata
+
+/classifier/coriant-info
+------------------------
+
+.. autofunction:: inventory_provider.routes.classifier.get_coriant_info
+
+
+/classifier/mtc-interface-info
+--------------------------------
+
+.. autofunction:: inventory_provider.routes.classifier.get_mtc_interface_info
+"""
 import ipaddress
 import json
 import logging
diff --git a/inventory_provider/routes/data.py b/inventory_provider/routes/data.py
index 275d7a1a1c02e584282cc169a3e65e3fc4094ded..aa422918ac734e911a445f912d2ccaa0a78c6ad6 100644
--- a/inventory_provider/routes/data.py
+++ b/inventory_provider/routes/data.py
@@ -1,3 +1,28 @@
+"""
+
+Data Endpoints
+=========================
+
+These endpoints are temporary and will be removed.
+
+.. contents:: :local:
+
+/data/routers
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.data.routers
+
+/data/interfaces
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.data.router_interfaces
+
+/data/pop
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.data.equipment_location
+
+"""
 import json
 import logging
 import re
diff --git a/inventory_provider/routes/jobs.py b/inventory_provider/routes/jobs.py
index 00f6a6a2ec746fc4d40cd249b93c570eccdc63f7..078e8a56392bd5bb4bb4076d83b6ced585f89e97 100644
--- a/inventory_provider/routes/jobs.py
+++ b/inventory_provider/routes/jobs.py
@@ -1,3 +1,30 @@
+"""
+Jobs Endpoints
+=========================
+
+These endpoints are used for monitoring running jobs.
+
+.. contents:: :local:
+
+/jobs/update
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.jobs.update
+
+
+/jobs/check-task-status
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.jobs.check_task_status
+
+
+/jobs/log
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.jobs.load_task_log
+
+
+"""
 import json
 import logging
 
diff --git a/inventory_provider/routes/lg.py b/inventory_provider/routes/lg.py
index c615aa7d9b8745c0515d217a580d42b0f80c1df6..4f2a7561508379bf0fc04610e4187c26fab6523c 100644
--- a/inventory_provider/routes/lg.py
+++ b/inventory_provider/routes/lg.py
@@ -1,3 +1,15 @@
+"""
+LG Support Endpoints
+=========================
+
+These endpoints are intended for use by LG.
+
+/lg/interfaces
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.lg.routers
+
+"""
 import json
 import logging
 
diff --git a/inventory_provider/routes/lnetd.py b/inventory_provider/routes/lnetd.py
index 0025ef218b40e08d322e72c62a947c798435bbe1..346f857ed16eecb22537aa443e618371e25a3639 100644
--- a/inventory_provider/routes/lnetd.py
+++ b/inventory_provider/routes/lnetd.py
@@ -1,3 +1,18 @@
+"""
+
+LnetD support
+=========================
+
+This endpoint is intended for use with LnetD
+
+.. contents:: :local:
+
+/LnetD/interfaces</hostname>
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.lnetd.interfaces
+
+"""
 import json
 import logging
 import re
diff --git a/inventory_provider/routes/msr.py b/inventory_provider/routes/msr.py
index d970e962c96697d2fbc7dd0ba817559392245943..6e53111fed5331cfa6e88ab480eab6039f2bd777 100644
--- a/inventory_provider/routes/msr.py
+++ b/inventory_provider/routes/msr.py
@@ -1,3 +1,60 @@
+"""
+MSR Support Endpoints
+=========================
+
+These endpoints are intended for use by MSR.
+
+.. contents:: :local:
+
+/msr/access-services
+---------------------------------
+
+.. autofunction:: inventory_provider.routes.msr.access_services
+
+
+/msr/bgp/logical-systems
+-------------------------------------
+
+.. autofunction:: inventory_provider.routes.msr.get_logical_systems
+
+
+/msr/bgp/logical-system-peerings</name>
+------------------------------------------
+
+.. autofunction:: inventory_provider.routes.msr.logical_system_peerings
+
+
+/msr/bgp/groups
+-------------------------------------
+
+.. autofunction:: inventory_provider.routes.msr.get_peering_groups
+
+
+/msr/bgp/group-peerings</name>
+-------------------------------------
+
+.. autofunction:: inventory_provider.routes.msr.bgp_group_peerings
+
+
+/msr/bgp/routing-instances
+-------------------------------------
+
+.. autofunction:: inventory_provider.routes.msr.get_peering_routing_instances
+
+
+/msr/bgp/routing-instance-peeringns</name>
+--------------------------------------------
+
+.. autofunction:: inventory_provider.routes.msr.bgp_routing_instance_peerings
+
+helpers
+-------------------------------------
+
+.. autofunction:: inventory_provider.routes.msr._handle_peering_group_list_request
+
+.. autofunction:: inventory_provider.routes.msr._handle_peering_group_request
+
+"""
 import itertools
 import json