diff --git a/internal/scan/parse.go b/internal/scan/parse.go
index d0e29f8..17bca28 100644
--- a/internal/scan/parse.go
+++ b/internal/scan/parse.go
@@ -18,30 +18,6 @@
 	"golang.org/x/pkgsite-metrics/internal/version"
 )
 
-func ParseRequiredIntParam(r *http.Request, name string) (int, error) {
-	value := r.FormValue(name)
-	if value == "" {
-		return 0, fmt.Errorf("missing query param %q", name)
-	}
-	return ParseIntParam(value, name)
-}
-
-func ParseOptionalIntParam(r *http.Request, name string, def int) (int, error) {
-	value := r.FormValue(name)
-	if value == "" {
-		return def, nil
-	}
-	return ParseIntParam(value, name)
-}
-
-func ParseIntParam(value, name string) (int, error) {
-	n, err := strconv.Atoi(value)
-	if err != nil {
-		return 0, fmt.Errorf("want integer for %q query param, got %q", name, value)
-	}
-	return n, nil
-}
-
 func ParseOptionalBoolParam(r *http.Request, name string, def bool) (bool, error) {
 	s := r.FormValue(name)
 	if s == "" {
@@ -50,13 +26,6 @@
 	return strconv.ParseBool(s)
 }
 
-func ParseMode(r *http.Request) string {
-	const name = "mode"
-	// "" is allowed mode as some endpoints
-	// might equate it with their default mode.
-	return r.FormValue(name)
-}
-
 type ModuleSpec struct {
 	Path, Version string
 	ImportedBy    int
