diff --git a/api/api.go b/api/api.go
index a39261547d2342f9d6d10d7d082154cd43f5844e..bfab481407057ab183c3b89250cc3e914c729294 100644
--- a/api/api.go
+++ b/api/api.go
@@ -34,7 +34,6 @@ func Init(dbPath string, signKey string, mail *Mail, r *mux.Router) error {
 
 	r.HandleFunc("/member", a.authAdmin(a.ListMembers)).Methods("GET")
 	r.HandleFunc("/member", a.authAdmin(a.AddMember)).Methods("POST")
-	r.HandleFunc("/member/batch", a.authAdmin(a.AddBatchMember)).Methods("POST")
 	r.HandleFunc("/member/me", a.authNum(a.getMemberNum)).Methods("GET")
 	r.HandleFunc("/member/me", a.authNum(a.UpdateMemberMe)).Methods("PUT")
 	r.HandleFunc("/member/{num:[0-9]+}", a.authAdmin(a.GetMember)).Methods("GET")
diff --git a/api/db/member.go b/api/db/member.go
index 81ae30098c3b11f3d99ed74db2be8b3178d2abb7..7d11ae886aceb379be333de44a77df4a3f0350c4 100644
--- a/api/db/member.go
+++ b/api/db/member.go
@@ -105,6 +105,9 @@ func (d DB) UpdateMember(num int, member MemberReq, checkPass bool) (Member, err
 	if member.Email != "" {
 		dbMember.Email = member.Email
 	}
+	if member.Phone != "" {
+		dbMember.Phone = member.Phone
+	}
 	if member.Role != "" {
 		dbMember.Role = member.Role
 	}
diff --git a/api/member.go b/api/member.go
index eaf227e332f18efda431b4a40a89339e2d5d26d1..ef81866931129b7598cd71f13a2edd9c125d1108 100644
--- a/api/member.go
+++ b/api/member.go
@@ -26,53 +26,24 @@ func (a *api) AddMember(w http.ResponseWriter, req *http.Request) {
 		return
 	}
 
-	w.Header().Set("Content-Type", "application/json")
-	w.WriteHeader(http.StatusCreated)
-	err = json.NewEncoder(w).Encode(member)
-	if err != nil {
-		log.Printf("Can't encode added member: %v", err)
-		w.WriteHeader(http.StatusInternalServerError)
-		return
-	}
-}
-
-func (a *api) AddBatchMember(w http.ResponseWriter, req *http.Request) {
-	var memberReq []db.MemberReq
-	err := json.NewDecoder(req.Body).Decode(&memberReq)
-	if err != nil {
-		log.Printf("Can't create member: %v", err)
-		w.WriteHeader(http.StatusInternalServerError)
-		return
-	}
-
-	members := make([]db.Member, len(memberReq))
-	for i, m := range memberReq {
-		members[i], err = a.db.AddMember(&m)
+	if memberReq.Password == "" {
+		_, token, err := a.db.NewPasswordReset(memberReq.Email)
 		if err != nil {
-			log.Printf("Can't create member: %v\n%v", err, m)
+			log.Printf("Can't create the password reset for %s: %v", memberReq.Email, err)
 			w.WriteHeader(http.StatusInternalServerError)
 			return
 		}
-
-		if m.Password == "" {
-			_, token, err := a.db.NewPasswordReset(m.Email)
-			if err != nil {
-				log.Printf("Can't create the password reset for %s: %v", m.Email, err)
-				w.WriteHeader(http.StatusInternalServerError)
-				return
-			}
-			err = a.mail.sendNewMember(members[i], "/nreset/"+token)
-			if err != nil {
-				log.Printf("Can't send the pass/login reset email to %s: %v", m.Email, err)
-				w.WriteHeader(http.StatusInternalServerError)
-				return
-			}
+		err = a.mail.sendNewMember(memberReq.Member, "/nreset/"+token)
+		if err != nil {
+			log.Printf("Can't send the pass/login reset email to %s: %v", memberReq.Email, err)
+			w.WriteHeader(http.StatusInternalServerError)
+			return
 		}
 	}
 
 	w.Header().Set("Content-Type", "application/json")
 	w.WriteHeader(http.StatusCreated)
-	err = json.NewEncoder(w).Encode(members)
+	err = json.NewEncoder(w).Encode(member)
 	if err != nil {
 		log.Printf("Can't encode added member: %v", err)
 		w.WriteHeader(http.StatusInternalServerError)