diff --git a/Jellyfin.Api/Controllers/ItemsController.cs b/Jellyfin.Api/Controllers/ItemsController.cs
index 639891d8ef..4c6c43b0a4 100644
--- a/Jellyfin.Api/Controllers/ItemsController.cs
+++ b/Jellyfin.Api/Controllers/ItemsController.cs
@@ -57,7 +57,8 @@ namespace Jellyfin.Api.Controllers
///
/// Gets items based on a query.
///
- /// The user id.
+ /// The user id supplied in the /Users/{uid}/Items.
+ /// The user id supplied as query parameter.
/// Optional filter by maximum official rating (PG, PG-13, TV-MA, etc).
/// Optional filter by items with theme songs.
/// Optional filter by items with theme videos.
@@ -142,7 +143,8 @@ namespace Jellyfin.Api.Controllers
[HttpGet("/Users/{userId}/Items")]
[ProducesResponseType(StatusCodes.Status200OK)]
public ActionResult> GetItems(
- [FromRoute] Guid userId,
+ [FromRoute] Guid uId,
+ [FromQuery] Guid userId,
[FromQuery] string? maxOfficialRating,
[FromQuery] bool? hasThemeSong,
[FromQuery] bool? hasThemeVideo,
@@ -223,6 +225,9 @@ namespace Jellyfin.Api.Controllers
[FromQuery] bool enableTotalRecordCount = true,
[FromQuery] bool? enableImages = true)
{
+ // use user id route parameter over query parameter
+ userId = (uId != null) ? uId : userId;
+
var user = userId.Equals(Guid.Empty) ? null : _userManager.GetUserById(userId);
var dtoOptions = new DtoOptions()
.AddItemFields(fields)