diff --git a/docs/Admin-API.md b/docs/Admin-API.md
index 407647645..2edb31f3c 100644
--- a/docs/Admin-API.md
+++ b/docs/Admin-API.md
@@ -7,36 +7,11 @@ Authentication is required and the user must be an admin.
 ### List users
 
 - Method `GET`
-- Params:
-  - `page`: **integer** page number
-  - `page_size`: **integer** number of users per page (default is `50`)
-- Response:
-
-```JSON
-{
-  "page_size": integer,
-  "count": integer,
-  "users": [
-    {
-      "deactivated": bool,
-      "id": integer,
-      "nickname": string
-    },
-    ...
-  ]
-}
-```
-
-## `/api/pleroma/admin/users/search?query={query}&local={local}&page={page}&page_size={page_size}`
-
-### Search users by name or nickname
-
-- Method `GET`
-- Params:
-  - `query`: **string** search term
-  - `local`: **bool** whether to return only local users
-  - `page`: **integer** page number
-  - `page_size`: **integer** number of users per page (default is `50`)
+- Query Params:
+  - `query`: **string** *optional* search term
+  - `local_only`: **bool** *optional* whether to return only local users
+  - `page`: **integer** *optional* page number
+  - `page_size`: **integer** *optional* number of users per page (default is `50`)
 - Response:
 
 ```JSON
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index 50e7e7ccd..3878e4efa 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -749,13 +749,41 @@ defmodule Pleroma.User do
     Repo.all(query)
   end
 
-  @spec search_for_admin(binary(), %{
+  @spec search_for_admin(%{
+          local: boolean(),
+          page: number(),
+          page_size: number()
+        }) :: {:ok, [Pleroma.User.t()], number()}
+  def search_for_admin(%{query: nil, local: local, page: page, page_size: page_size}) do
+    query =
+      from(u in User, order_by: u.id)
+      |> maybe_local_user_query(local)
+
+    paginated_query =
+      query
+      |> paginate(page, page_size)
+
+    count =
+      query
+      |> Repo.aggregate(:count, :id)
+
+    {:ok, Repo.all(paginated_query), count}
+  end
+
+  @spec search_for_admin(%{
+          query: binary(),
           admin: Pleroma.User.t(),
           local: boolean(),
           page: number(),
           page_size: number()
         }) :: {:ok, [Pleroma.User.t()], number()}
-  def search_for_admin(term, %{admin: admin, local: local, page: page, page_size: page_size}) do
+  def search_for_admin(%{
+        query: term,
+        admin: admin,
+        local: local,
+        page: page,
+        page_size: page_size
+      }) do
     term = String.trim_leading(term, "@")
 
     local_paginated_query =
@@ -774,21 +802,6 @@ defmodule Pleroma.User do
     {:ok, do_search(search_query, admin), count}
   end
 
-  @spec all_for_admin(number(), number()) :: {:ok, [Pleroma.User.t()], number()}
-  def all_for_admin(page, page_size) do
-    query = from(u in User, order_by: u.id)
-
-    paginated_query =
-      query
-      |> paginate(page, page_size)
-
-    count =
-      query
-      |> Repo.aggregate(:count, :id)
-
-    {:ok, Repo.all(paginated_query), count}
-  end
-
   def search(query, resolve \\ false, for_user \\ nil) do
     # Strip the beginning @ off if there is a query
     query = String.trim_leading(query, "@")
diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex
index aae02cab8..75c2c6061 100644
--- a/lib/pleroma/web/admin_api/admin_api_controller.ex
+++ b/lib/pleroma/web/admin_api/admin_api_controller.ex
@@ -63,28 +63,14 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
          do: json_response(conn, :no_content, "")
   end
 
-  def list_users(conn, params) do
-    {page, page_size} = page_params(params)
-
-    with {:ok, users, count} <- User.all_for_admin(page, page_size),
-         do:
-           conn
-           |> json(
-             AccountView.render("index.json",
-               users: users,
-               count: count,
-               page_size: page_size
-             )
-           )
-  end
-
-  def search_users(%{assigns: %{user: admin}} = conn, %{"query" => query} = params) do
+  def list_users(%{assigns: %{user: admin}} = conn, params) do
     {page, page_size} = page_params(params)
 
     with {:ok, users, count} <-
-           User.search_for_admin(query, %{
+           User.search_for_admin(%{
+             query: params["query"],
              admin: admin,
-             local: params["local"] == "true",
+             local: params["local_only"] == "true",
              page: page,
              page_size: page_size
            }),
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index fc322756a..65a90e31e 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -140,7 +140,6 @@ defmodule Pleroma.Web.Router do
     pipe_through([:admin_api, :oauth_write])
 
     get("/users", AdminAPIController, :list_users)
-    get("/users/search", AdminAPIController, :search_users)
     delete("/user", AdminAPIController, :user_delete)
     patch("/users/:nickname/toggle_activation", AdminAPIController, :user_toggle_activation)
     post("/user", AdminAPIController, :user_create)
diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs
index 42e0daf8e..1b8b4d4b7 100644
--- a/test/web/admin_api/admin_api_controller_test.exs
+++ b/test/web/admin_api/admin_api_controller_test.exs
@@ -374,26 +374,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                "users" => []
              }
     end
-  end
 
-  test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do
-    admin = insert(:user, info: %{is_admin: true})
-    user = insert(:user)
-
-    conn =
-      build_conn()
-      |> assign(:user, admin)
-      |> patch("/api/pleroma/admin/users/#{user.nickname}/toggle_activation")
-
-    assert json_response(conn, 200) ==
-             %{
-               "deactivated" => !user.info.deactivated,
-               "id" => user.id,
-               "nickname" => user.nickname
-             }
-  end
-
-  describe "GET /api/pleroma/admin/users/search" do
     test "regular search" do
       admin = insert(:user, info: %{is_admin: true})
       user = insert(:user, nickname: "bob")
@@ -401,7 +382,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
       conn =
         build_conn()
         |> assign(:user, admin)
-        |> get("/api/pleroma/admin/users/search?query=bo")
+        |> get("/api/pleroma/admin/users?query=bo")
 
       assert json_response(conn, 200) == %{
                "count" => 1,
@@ -424,7 +405,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
       conn =
         build_conn()
         |> assign(:user, admin)
-        |> get("/api/pleroma/admin/users/search?query=bo&page_size=1&page=1")
+        |> get("/api/pleroma/admin/users?query=bo&page_size=1&page=1")
 
       assert json_response(conn, 200) == %{
                "count" => 2,
@@ -441,7 +422,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
       conn =
         build_conn()
         |> assign(:user, admin)
-        |> get("/api/pleroma/admin/users/search?query=bo&page_size=1&page=2")
+        |> get("/api/pleroma/admin/users?query=bo&page_size=1&page=2")
 
       assert json_response(conn, 200) == %{
                "count" => 2,
@@ -465,7 +446,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
       conn =
         build_conn()
         |> assign(:user, admin)
-        |> get("/api/pleroma/admin/users/search?query=bo&local=true")
+        |> get("/api/pleroma/admin/users?query=bo&local_only=true")
 
       assert json_response(conn, 200) == %{
                "count" => 1,
@@ -479,5 +460,51 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do
                ]
              }
     end
+
+    test "only local users with no query" do
+      admin = insert(:user, info: %{is_admin: true}, nickname: "john")
+      user = insert(:user, nickname: "bob")
+
+      insert(:user, nickname: "bobb", local: false)
+
+      conn =
+        build_conn()
+        |> assign(:user, admin)
+        |> get("/api/pleroma/admin/users?local_only=true")
+
+      assert json_response(conn, 200) == %{
+               "count" => 2,
+               "page_size" => 50,
+               "users" => [
+                 %{
+                   "deactivated" => admin.info.deactivated,
+                   "id" => admin.id,
+                   "nickname" => admin.nickname
+                 },
+                 %{
+                   "deactivated" => user.info.deactivated,
+                   "id" => user.id,
+                   "nickname" => user.nickname
+                 }
+               ]
+             }
+    end
+  end
+
+  test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do
+    admin = insert(:user, info: %{is_admin: true})
+    user = insert(:user)
+
+    conn =
+      build_conn()
+      |> assign(:user, admin)
+      |> patch("/api/pleroma/admin/users/#{user.nickname}/toggle_activation")
+
+    assert json_response(conn, 200) ==
+             %{
+               "deactivated" => !user.info.deactivated,
+               "id" => user.id,
+               "nickname" => user.nickname
+             }
   end
 end