diff --git a/layouts/_partials/endpoints-toc.html b/layouts/_partials/endpoints-toc.html
index 740160c6..9b8f5884 100644
--- a/layouts/_partials/endpoints-toc.html
+++ b/layouts/_partials/endpoints-toc.html
@@ -1,4 +1,23 @@
-{{/* Minimal list of API endpoints for the current page. */}}
+{{/*
+
+ Renders a list of API endpoints for the current page, given:
+
+ The outer page's Scratch must contain an "api_endpoints" key, which is either
+ a slice of maps (a list of endpoint metadata dicts) or a map of module name ->
+ slice of endpoint metadata dicts (representing the API modules and the
+ endpoints they each contain). Each slice item must contain the Each endpoint
+ dict must contain the following keys:
+
+ * `anchor`: the HTML anchor for the endpoint
+ * `method`: the HTTP method
+ * `endpoint`: the endpoint path
+ * `summary`: a short summary of the endpoint
+ * `deprecated`: whether the endpoint is deprecated
+ * `module`: the CS API module name, if any, for grouping purposes. If empty,
+ the endpoint is considered "base" or "required".
+
+*/}}
+
{{ $raw := .Scratch.Get "api_endpoints" }}
{{/* Normalize to a slice */}}
{{ $endpoints := slice }}
diff --git a/layouts/docs/single.html b/layouts/docs/single.html
index 989ec4fb..67b0dae0 100644
--- a/layouts/docs/single.html
+++ b/layouts/docs/single.html
@@ -8,7 +8,7 @@
We use this single template to render the all API spec pages *except* the
Client-Server API. The Client-Server API spec page contains modules, and thus
- is handled separately.
+ is handled separately, via the `layouts/docs/list.html` template.
The contents of the "main" block below are inserted into the `./baseof.html`
base template.
@@ -16,4 +16,4 @@
*/}}
{{ define "main" }}
{{ partial "spec-content.html" . }}
-{{ end }}
\ No newline at end of file
+{{ end }}