diff --git a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3f29a59120b3e3c187a3d0e935e0bf0855b7f7e
--- /dev/null
+++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java
@@ -0,0 +1,73 @@
+package gov.usgs.earthquake.nshmp.netcdf.www;
+
+import io.micronaut.http.HttpRequest;
+
+/**
+ * Swagger page updates for ground motion services.
+ *
+ * @author U.S. Geological Survey
+ */
+class SwaggerGroundMotions extends Swagger<NetcdfServiceGroundMotions> {
+
+  SwaggerGroundMotions(HttpRequest<?> request, NetcdfServiceGroundMotions service) {
+    super(request, service);
+  }
+
+  @Override
+  String descriptionHeader() {
+    return String.format("AASHTO-%d Data Sets", service.netcdfDataFiles().aashtoYear());
+  }
+
+  @Override
+  String serviceInfo() {
+    return String.format(String.join("",
+        "Get risk-targeted design response spectra for the %d ",
+        "editions of American Association of State Highway and Transportation ",
+        "Officials (AASHTO) bridge design specifications."),
+        service.netcdfDataFiles().aashtoYear());
+  }
+
+  @Override
+  String servicePatternSection() {
+    var url = NetcdfWsUtils.getRequestUrl(request);
+    url = url.endsWith("/swagger") ? url.replace("/swagger", "") : url;
+
+    return new StringBuilder()
+        .append(
+            "<details>\n" +
+                "<summary>Service Call Patterns</summary>\n")
+        .append(
+            "### Query Pattern\n" +
+
+                "The query based service call is in the form of:\n" +
+
+                "```text\n" +
+                url + "/spectra?longitude={number}&latitude={number}\n" +
+                url + "/spectra?longitude={number}&latitude={number}&siteClass={string}\n" +
+                "````\n" +
+
+                "Example:\n" +
+                "```text\n" +
+                url + "/spectra?longitude=-118&latitude=34\n" +
+                url + "/spectra?longitude=-118&latitude=34&siteClass=BC\n" +
+                "```\n")
+        .append(
+            "### Slash Pattern\n" +
+
+                "The slash based service call is in the form of:\n" +
+
+                "```text\n" +
+                url + "/spectra/{longitude}/{latitude}\n" +
+                url + "/spectra/{longitude}/{latitude}/{siteClass}\n" +
+                "```\n" +
+
+                "Example:\n" +
+
+                "```text\n" +
+                url + "/spectra/-118/34\n" +
+                url + "/spectra/-118/34/BC\n" +
+                "```\n")
+        .append("</details>")
+        .toString();
+  }
+}