diff --git a/scouting/webserver/requests/debug/BUILD b/scouting/webserver/requests/debug/BUILD
index d56c03e..e3028dc 100644
--- a/scouting/webserver/requests/debug/BUILD
+++ b/scouting/webserver/requests/debug/BUILD
@@ -9,6 +9,7 @@
     deps = [
         "//scouting/webserver/requests/messages:error_response_go_fbs",
         "//scouting/webserver/requests/messages:request_all_matches_response_go_fbs",
+        "//scouting/webserver/requests/messages:request_data_scouting_response_go_fbs",
         "//scouting/webserver/requests/messages:request_matches_for_team_response_go_fbs",
         "//scouting/webserver/requests/messages:submit_data_scouting_response_go_fbs",
     ],
diff --git a/scouting/webserver/requests/debug/cli/cli_test.py b/scouting/webserver/requests/debug/cli/cli_test.py
index 6b47ae9..347c828 100644
--- a/scouting/webserver/requests/debug/cli/cli_test.py
+++ b/scouting/webserver/requests/debug/cli/cli_test.py
@@ -88,5 +88,13 @@
         self.assertEqual(exit_code, 0)
         self.assertIn("{MatchList:[]}", stderr)
 
+    def test_request_data_scouting(self):
+        json_path = write_json({})
+        exit_code, _stdout, stderr = run_debug_cli(["-requestDataScouting", json_path])
+
+        # TODO(phil): Actually add data here before querying it.
+        self.assertEqual(exit_code, 0)
+        self.assertIn("{StatsList:[]}", stderr)
+
 if __name__ == "__main__":
     unittest.main()
diff --git a/scouting/webserver/requests/debug/cli/main.go b/scouting/webserver/requests/debug/cli/main.go
index 44ae761..0782d82 100644
--- a/scouting/webserver/requests/debug/cli/main.go
+++ b/scouting/webserver/requests/debug/cli/main.go
@@ -74,6 +74,8 @@
 		"If specified, parse the file as a RequestAllMatches JSON request.")
 	requestMatchesForTeamPtr := flag.String("requestMatchesForTeam", "",
 		"If specified, parse the file as a RequestMatchesForTeam JSON request.")
+	requestDataScoutingPtr := flag.String("requestDataScouting", "",
+		"If specified, parse the file as a RequestDataScouting JSON request.")
 	flag.Parse()
 
 	// Handle the actual arguments.
@@ -110,4 +112,15 @@
 		}
 		log.Printf("%+v", *response)
 	}
+	if *requestDataScoutingPtr != "" {
+		log.Printf("Sending RequestDataScouting to %s", *addressPtr)
+		binaryRequest := parseJson(
+			"scouting/webserver/requests/messages/request_data_scouting.fbs",
+			*requestDataScoutingPtr)
+		response, err := debug.RequestDataScouting(*addressPtr, binaryRequest)
+		if err != nil {
+			log.Fatal("Failed RequestDataScouting: ", err)
+		}
+		log.Printf("%+v", *response)
+	}
 }
diff --git a/scouting/webserver/requests/debug/debug.go b/scouting/webserver/requests/debug/debug.go
index 6add662..6515e81 100644
--- a/scouting/webserver/requests/debug/debug.go
+++ b/scouting/webserver/requests/debug/debug.go
@@ -10,6 +10,7 @@
 
 	"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/error_response"
 	"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_all_matches_response"
+	"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_data_scouting_response"
 	"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/request_matches_for_team_response"
 	"github.com/frc971/971-Robot-Code/scouting/webserver/requests/messages/submit_data_scouting_response"
 )
@@ -18,6 +19,7 @@
 type SubmitDataScoutingResponseT = submit_data_scouting_response.SubmitDataScoutingResponseT
 type RequestAllMatchesResponseT = request_all_matches_response.RequestAllMatchesResponseT
 type RequestMatchesForTeamResponseT = request_matches_for_team_response.RequestMatchesForTeamResponseT
+type RequestDataScoutingResponseT = request_data_scouting_response.RequestDataScoutingResponseT
 
 // A struct that can be used as an `error`. It contains information about the
 // why the server was unhappy and what the corresponding request was.
@@ -113,3 +115,15 @@
 	response := request_matches_for_team_response.GetRootAsRequestMatchesForTeamResponse(responseBytes, 0)
 	return response.UnPack(), nil
 }
+
+// Sends a `RequestDataScouting` message to the server and returns the
+// deserialized response.
+func RequestDataScouting(server string, requestBytes []byte) (*RequestDataScoutingResponseT, error) {
+	responseBytes, err := performPost(server+"/requests/request/data_scouting", requestBytes)
+	if err != nil {
+		return nil, err
+	}
+	log.Printf("Parsing RequestDataScoutingResponse")
+	response := request_data_scouting_response.GetRootAsRequestDataScoutingResponse(responseBytes, 0)
+	return response.UnPack(), nil
+}
