diff --git a/data-discovery/src/main/java/vlkb/common/Coord.java b/data-discovery/src/main/java/vlkb/common/Coord.java
index f28b423b60d4cfb28f4c324c345bf12f02c112c5..0159ddb8e89794a1866a570f6ed6a9db47b1e2d2 100644
--- a/data-discovery/src/main/java/vlkb/common/Coord.java
+++ b/data-discovery/src/main/java/vlkb/common/Coord.java
@@ -317,6 +317,40 @@ class Coord
    }
 
 
+   String toVoQueryString()
+   {
+      StringBuilder sb = new StringBuilder();
+
+      sb.append("skysystem=" + skySystem);
+
+      switch(shape)
+      {
+         case "CIRCLE" :
+            sb.append("&POS=CIRCLE "  + lon + " " + lat + " " + + radius );
+            break;
+
+         case "RECT" :
+            if(vel_valid)
+               sb.append("&POS=RANGE="
+                     + " " + (lon - dlon)  + " " + (lon + dlon)  
+                     + " " + (lat - dlat)  + " " + (lat + dlat)  
+                     + " " + vel_low  + " " + vel_up );
+
+            else       
+               sb.append("&POS=RANGE="
+                     + " " + (lon - dlon)  + " " + (lon + dlon)  
+                     + " " + (lat - dlat)  + " " + (lat + dlat) );
+            break;
+
+         default:
+            ;// ERROR internal err FIXME  writer.println("<shape> unknown shape: "+ shape +" </shape>");
+      }
+
+      return sb.toString();
+   }
+
+
+
 
 
 
diff --git a/data-discovery/src/main/java/vlkb/output/Inputs.java b/data-discovery/src/main/java/vlkb/output/Inputs.java
index 22bfd24ca4b4b9b8a8ac4228418375bd643fb582..f244b8a5277b20a260ed53c414b5f87c8152e4db 100644
--- a/data-discovery/src/main/java/vlkb/output/Inputs.java
+++ b/data-discovery/src/main/java/vlkb/output/Inputs.java
@@ -19,7 +19,8 @@ class Inputs
       this.countNullValues = countNullValues;
       this.auth = auth;
 
-      queryString = buildQueryString(coord, subsurveyId, countNullValues);
+      queryString = buildVoQueryString(coord, subsurveyId, countNullValues);
+      //queryString = buildQueryString(coord, subsurveyId, countNullValues);
    }
 
 
@@ -35,5 +36,17 @@ class Inputs
       return queryString.toString();
    }
 
+   private String buildVoQueryString(Coord coord, SubsurveyId subsurveyId, boolean countNullValues)
+   {
+      StringBuilder queryString = new StringBuilder();
+
+      queryString.append(coord.toVoQueryString());
+      if(subsurveyId.surveyName != null) queryString.append("&surveyname=" + subsurveyId.surveyName);
+      if(subsurveyId.species != null) queryString.append("&species=" + subsurveyId.species);
+      if(subsurveyId.transition != null) queryString.append("&transition=" + subsurveyId.transition);
+
+      return queryString.toString();
+   }
+
 }
 
diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
index 961a37bca271986047d49329287f084033aab993..ac1762b1f3f0371aba95725a9e86501ced322e41 100644
--- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
+++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
@@ -203,7 +203,8 @@ public class FormatResponseFilter implements Filter
          dataset.publisherDid   = obsDataset.pubdid_str;
 
          dataset.access.accessFileUrl   = obsDataset.access_url;
-         dataset.access.accessCutoutUrl = fitsRemotePath + "?pubdid=" + dataset.publisherDid + "&amp;" + queryString;
+         dataset.access.accessCutoutUrl = fitsRemotePath + "?ID=" + dataset.publisherDid + "&amp;" + queryString;
+         //dataset.access.accessCutoutUrl = fitsRemotePath + "?pubdid=" + dataset.publisherDid + "&amp;" + queryString;
          dataset.access.accessMosaicUrl  = null;
 
          dataset.vertices_deg = convertToVertices(obsDataset.vertices_str);