diff --git a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java
index 4c55ecf4ea12b8de9a2dc52ab6116a54160fefe7..3ea88fae5b10b60f6cbdfc6f2535b56307e933d7 100644
--- a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java
+++ b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java
@@ -187,10 +187,8 @@ public abstract class NetcdfService {
   }
 
   static class ResponseMetadata extends RequestDataSiteClass {
-    @Schema(description = "X label")
-    public final String xLabel;
-    @Schema(description = "Y label")
-    public final String yLabel;
+    public String xLabel;
+    public String yLabel;
 
     ResponseMetadata(
         String xLabel,
@@ -204,19 +202,26 @@ public abstract class NetcdfService {
   }
 
   static class ResponseData<T extends ResponseMetadata> {
-    @Schema(description = "Response metadata")
-    public final T metadata;
-    @Schema(description = "Data")
-    public final XySequence data;
+    final T metadata;
+    final XySequence data;
 
     ResponseData(T metadata, XySequence data) {
       this.metadata = metadata;
       this.data = data;
     }
+
+    public T getMetadata() {
+      return metadata;
+    }
+
+    @Schema(implementation = XySequenceSchema.class)
+    public XySequence getData() {
+      return data;
+    }
   }
 
   static class RequestData {
-    @Schema(description = "The latitude and longitude, in degrees")
+    @Schema(implementation = LocationSchema.class)
     public Location site;
 
     RequestData(Location site) {
@@ -233,4 +238,16 @@ public abstract class NetcdfService {
       this.siteClass = siteClass;
     }
   }
+
+  private static class LocationSchema {
+    public Double latitude;
+    public Double longitude;
+
+    LocationSchema() {}
+  }
+
+  private static class XySequenceSchema {
+    public double[] xs;
+    public double[] ys;
+  }
 }