info: name: List Media Items with Sorting type: http seq: 1 http: method: GET url: '{{base_url}}/api/media-items?library_id={{library_id}}&sort=title+ASC&limit=10&offset=0' auth: inherit body: type: none headers: - key: Content-Type value: application/json docs: |- ## List Media Items with Sorting **Method:** GET **Endpoint:** /api/media-items **Authentication:** Required (Bearer token) **Query Parameters:** - `library_id` (string, required): UUID of the library - `sort` (string, optional): Sort field and direction - Available options: - `created_at ASC` - Oldest added first - `created_at DESC` - Newest added first (default) - `title ASC` - Title A-Z - `title DESC` - Title Z-A - `author ASC` - Author A-Z - `author DESC` - Author Z-A - `series ASC` - Series order - `series DESC` - Series reverse order - `date_published ASC` - Oldest published first - `date_published DESC` - Newest published first - `copyright_year ASC` - Oldest copyright first - `copyright_year DESC` - Newest copyright first - `page_count ASC` - Shortest first - `page_count DESC` - Longest first - `tags ASC` - Genre A-Z - `tags DESC` - Genre Z-A - `limit` (integer, optional): Number of items to return (default: 50, max: 1000) - `offset` (integer, optional): Number of items to skip (default: 0) **Response:** Object containing array of media items **Status Codes:** - 200: Success - 400: Bad request (invalid parameters) - 401: Unauthorized - 500: Internal server error **Examples:** - Sort by title: `/api/media-items?library_id=xxx&sort=title+ASC` - Sort by author descending: `/api/media-items?library_id=xxx&sort=author+DESC` - Sort by page count: `/api/media-items?library_id=xxx&sort=page_count+ASC` **Sorting Behavior:** - All sorts are secondary-sorted by series_number then title for consistency - NULL values are sorted last for ascending, first for descending - Sorting is case-insensitive for text fields