diff --git a/models/user.go b/models/user.go
index 3fb1c3b59e..d01a29c894 100644
--- a/models/user.go
+++ b/models/user.go
@@ -1433,6 +1433,9 @@ func SearchUsers(opts *SearchUserOptions) (users []*User, _ int64, _ error) {
 	if opts.PageSize > 0 {
 		sess = sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize)
 	}
+	if opts.PageSize == -1 {
+		opts.PageSize = int(count)
+	}
 
 	users = make([]*User, 0, opts.PageSize)
 	return users, count, sess.OrderBy(opts.OrderBy.String()).Find(&users)
diff --git a/routers/api/v1/user/user.go b/routers/api/v1/user/user.go
index f76b443661..40d1b76805 100644
--- a/routers/api/v1/user/user.go
+++ b/routers/api/v1/user/user.go
@@ -55,7 +55,7 @@ func Search(ctx *context.APIContext) {
 		Type:     models.UserTypeIndividual,
 		PageSize: com.StrTo(ctx.Query("limit")).MustInt(),
 	}
-	if opts.PageSize == 0 {
+	if opts.PageSize <= 0 {
 		opts.PageSize = 10
 	}