diff --git a/http_server.cpp b/http_server.cpp
index b3a958406634d66a9d02ae00226ade19e3db2750..e8a3a31127f7c704a128c951bccc2084a9051c1e 100644
--- a/http_server.cpp
+++ b/http_server.cpp
@@ -1,6 +1,8 @@
 #include "http_server.hpp"
 #include "data_storage.hpp"
 
+#include <regex>
+
 namespace insite {
 
 HttpServer::HttpServer(web::http::uri address, DataStorage* storage)
@@ -84,11 +86,19 @@ web::http::http_response HttpServer::GetMultimeterMeasurement(
 
   const auto multimeter_id = std::stoll(parameter_multimeter_id->second);
   const auto attribute = parameter_attribute->second;
-  const auto filter_gids = parameter_gids != parameters.end() 
-    ? std::vector<std::uint64_t>(
-        parameter_gids->second.begin(), 
-        parameter_gids->second.end()) 
-    : std::vector<std::uint64_t>();
+
+  auto filter_gids = std::vector<std::uint64_t>();
+  if (parameter_gids != parameters.end()) {
+    std::regex regex{R"([\s,]+)"};
+    std::sregex_token_iterator it{parameter_gids->second.begin(), 
+      parameter_gids->second.end(), regex, -1};
+    std::vector<std::string> filter_gid_strings{it, {}};
+    std::transform(filter_gid_strings.begin(), filter_gid_strings.end(), 
+      std::back_inserter(filter_gids), [ ] (const std::string& str) { 
+        return std::stoll(str); 
+      });
+  }
+  std::cout << "Filter GID count: " << filter_gids.size() << "\n";
 
   const auto measurements = storage_->GetMultimeterMeasurements();
   if (measurements.find(multimeter_id) != measurements.end() &&