diff --git a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java
index 78ae19612c0c6cadae5d531ee2224cd569a9ef53..3ac06ee66e8e4892f20c5a6af90c003e2d4ccff2 100644
--- a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java
+++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java
@@ -10,6 +10,7 @@ import gov.usgs.earthquake.nshmp.netcdf.NetcdfGroundMotions;
 import gov.usgs.earthquake.nshmp.netcdf.NetcdfVersion;
 import gov.usgs.earthquake.nshmp.netcdf.data.StaticData;
 import gov.usgs.earthquake.nshmp.netcdf.www.Metadata.ServiceResponseMetadata;
+import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfService.SourceModel;
 import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfWsUtils.Key;
 import gov.usgs.earthquake.nshmp.netcdf.www.Query.Service;
 import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestData;
@@ -27,7 +28,7 @@ import io.micronaut.http.HttpRequest;
  *
  * @author U.S. Geological Survey
  */
-public class NetcdfServiceGroundMotions extends NetcdfService<Query> {
+public class NetcdfServiceGroundMotions extends NetcdfService<List<SourceModel>, Query> {
 
   static final String SERVICE_DESCRIPTION = "Get static ground motions from a NetCDF file";
   static final String X_LABEL = "Period (s)";
@@ -38,10 +39,11 @@ public class NetcdfServiceGroundMotions extends NetcdfService<Query> {
   }
 
   @Override
-  ResponseBody<String, Metadata<Query>> getMetadataResponse(HttpRequest<?> request) {
-    var metadata = new Metadata<Query>(request, this, SERVICE_DESCRIPTION);
+  ResponseBody<String, Metadata<List<SourceModel>, Query>> getMetadataResponse(
+      HttpRequest<?> request) {
+    var metadata = new Metadata<List<SourceModel>, Query>(request, this, SERVICE_DESCRIPTION);
 
-    return ResponseBody.<String, Metadata<Query>> usage()
+    return ResponseBody.<String, Metadata<List<SourceModel>, Query>> usage()
         .metadata(new ResponseMetadata(NetcdfVersion.appVersions()))
         .name(getServiceName())
         .request(NetcdfWsUtils.getRequestUrl(request))
@@ -50,6 +52,12 @@ public class NetcdfServiceGroundMotions extends NetcdfService<Query> {
         .build();
   }
 
+  List<SourceModel> getSourceModels() {
+    return netcdfDataFiles().stream()
+        .map(SourceModel::new)
+        .collect(Collectors.toList());
+  }
+
   @Override
   String getServiceName() {
     return String.format("AASHTO-%d Web Services", netcdfDataFiles().aashtoYear());
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
index f3f29a59120b3e3c187a3d0e935e0bf0855b7f7e..ae1bf7db22fff06c624e1b46a8cacdfa0aa9db35 100644
--- 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
@@ -1,5 +1,7 @@
 package gov.usgs.earthquake.nshmp.netcdf.www;
 
+import gov.usgs.earthquake.nshmp.netcdf.data.ScienceBaseMetadata;
+
 import io.micronaut.http.HttpRequest;
 
 /**
@@ -13,6 +15,25 @@ class SwaggerGroundMotions extends Swagger<NetcdfServiceGroundMotions> {
     super(request, service);
   }
 
+  @Override
+  String description() {
+    StringBuilder builder = new StringBuilder()
+        .append(serviceInfo())
+        .append("\n## " + descriptionHeader() + "\n");
+
+    service.netcdfDataFiles()
+        .forEach(netcdf -> {
+          ScienceBaseMetadata metadata = netcdf.netcdfData().scienceBaseMetadata();
+          builder
+              .append("### " + metadata.label + "\n")
+              .append(metadata.description + "\n")
+              .append(parameterSection(netcdf.netcdfData()) + "\n")
+              .append(scienceBaseSection(metadata) + "\n");
+        });
+
+    return builder.toString();
+  }
+
   @Override
   String descriptionHeader() {
     return String.format("AASHTO-%d Data Sets", service.netcdfDataFiles().aashtoYear());