diff --git a/api/media_annotation.go b/api/media_annotation.go
index 7f94f6430..d87e4416c 100644
--- a/api/media_annotation.go
+++ b/api/media_annotation.go
@@ -40,9 +40,19 @@ func (c *MediaAnnotationController) SetRating() {
 	c.SendEmptyResponse()
 }
 
-func (c *MediaAnnotationController) Star() {
-	ids := c.RequiredParamStrings("id", "Required id parameter is missing")
+func (c *MediaAnnotationController) getIds() []string {
+	ids := c.ParamStrings("id")
+	albumIds := c.ParamStrings("albumId")
 
+	if len(ids) == 0 && len(albumIds) == 0 {
+		c.SendError(responses.ErrorMissingParameter, "Required id parameter is missing")
+	}
+
+	return append(ids, albumIds...)
+}
+
+func (c *MediaAnnotationController) Star() {
+	ids := c.getIds()
 	beego.Debug("Starring ids:", ids)
 	err := c.ratings.SetStar(true, ids...)
 	switch {
@@ -58,8 +68,7 @@ func (c *MediaAnnotationController) Star() {
 }
 
 func (c *MediaAnnotationController) Unstar() {
-	ids := c.RequiredParamStrings("id", "Required id parameter is missing")
-
+	ids := c.getIds()
 	beego.Debug("Unstarring ids:", ids)
 	err := c.ratings.SetStar(false, ids...)
 	switch {