Collections let you group ROMs from any platform into curated lists, making it easy to build cross-platform compilations like “Saturday morning classics”, “games to finish this weekend”, or “favourites from childhood”. RomM supports three distinct collection types — regular user-curated collections, smart collections that are automatically filtered, and virtual collections that are auto-generated by the system — each with different management flows and visibility rules.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/rommapp/romm/llms.txt
Use this file to discover all available pages before exploring further.
All collection types are per-user: each user sees and manages their own collections independently. Administrators can view and modify every collection in the system regardless of who created it.
Types of Collections
Regular Collections
Manually curated lists where you choose exactly which ROMs to include. You have full control over the name, description, cover art, and membership.
Smart Collections
Rule-based collections defined by a JSON filter criteria object. RomM re-evaluates the filter whenever the underlying ROM data changes and updates membership automatically.
Virtual Collections
Read-only, system-generated collections derived from metadata attributes such as genre, franchise, or company. They are rebuilt automatically during and after scans.
Regular Collections
Creating a collection
From the UI: Click the Collections section in the sidebar, then New Collection. Give it a name, an optional description, and optional cover art. Toggle Public to make it visible to all other users. Via the API:CollectionSchema object containing the new collection’s id, name, description, is_public, rom_ids, and cover art paths.
Retrieving collections
is_public=true that belong to other users. Use the updated_after query parameter to fetch only collections modified since a given ISO 8601 timestamp.
Updating a collection
rom_ids field must be a JSON-encoded array of ROM IDs. The full list of IDs you supply replaces the current membership — it is not an additive operation.
Adding or removing individual ROMs
To atomically add ROMs without replacing the entire membership list:CollectionSchema.
Deleting a collection
Cover art
You can supply cover art in three ways:- Upload a file — include an
artworkmultipart file field in the create or update request. - Remote URL — pass a
url_coverstring; RomM fetches and caches the image locally. - No cover — RomM composites a mosaic from the covers of the first few member ROMs.
remove_cover=true in the update request.
Smart Collections
Smart collections use afilter_criteria JSON object to define membership rules. RomM evaluates the criteria against all ROMs the current user can see and populates rom_ids automatically.
Creating a smart collection
filter_criteria field is a JSON object. Supported keys include:
| Key | Type | Description |
|---|---|---|
genres | string[] | Match ROMs whose metadata includes any of these genres |
franchises | string[] | Match ROMs belonging to any of these franchises |
companies | string[] | Match ROMs published or developed by these companies |
regions | string[] | Match ROMs with any of these region tags |
languages | string[] | Match ROMs supporting any of these languages |
tags | string[] | Match ROMs carrying any of these extra tags |
platform_ids | int[] | Restrict matches to specific platform IDs |
search_term | string | Filter by ROM name substring |
matched | bool | true = identified by a metadata provider; false = unidentified |
favorite | bool | Filter by user favourite status |
playable | bool | Filter to ROMs with a playable emulator core |
has_ra | bool | Filter to ROMs with RetroAchievements support |
missing | bool | Filter to ROMs flagged as missing from the filesystem |
order_by | string | Sort field (default "name") |
order_dir | string | Sort direction: "asc" or "desc" |
genres, franchises, etc.) you can control match logic with a companion _logic key, e.g. "genres_logic": "all" (default "any").
Updating a smart collection
Retrieving smart collections
updated_after to limit results to recently changed entries.
Virtual Collections
Virtual collections are generated automatically from ROM metadata (for example, one collection per genre or franchise discovered during scanning). They are read-only: you cannot add or remove ROMs manually.Retrieving virtual collections
type parameter filters by the virtual collection category. Pass type=all to retrieve every virtual collection regardless of type.
id is a URL-safe Base64 encoding of its name and type, making it stable and reversible.
Visibility and Sharing
| Setting | Behaviour |
|---|---|
is_public=false (default) | Only the owner and admins can view the collection |
is_public=true | Any authenticated user can view the collection and its ROM list |
Even when a collection is public, ROMs that are hidden from a given user (via platform or ROM-level visibility settings) are filtered out of the
rom_ids list and the rom_count before the collection is returned to that user. A public collection never leaks the existence of hidden content.