tmc catalog reads the site the way a visitor sees it. It sends no
credential, so it works before tmc auth login, and it covers what the
content API does not hand out: category and tag names, owners, download and
rating counts, dependencies, reviews and the list of games.
It is the public half of the App API (/api/app/v1) — the
same one-row-for-every-kind shape described in
Browsing.
tmc catalog browse mod --app 3 --category 7 --tag 1 --tag 2 --sort downloads
tmc catalog show mod 42 # summary + counts
tmc catalog show mod 42 --part dependencies # or releases, media, links
tmc catalog facets mod # ids to filter by
tmc catalog reviews mod 42 --sort helpful
tmc catalog games --search seed
tmc catalog lookup play.example.com --port 27015 # listed servers at an address
Two different reads, on purpose
tmc mod get 42 --anon and tmc catalog show mod 42 both work without a key,
and they are different endpoints. The first is the content API’s anonymous
summary, which an item’s team can switch off (apiPublic) and which answers
for seven types. The second is what the site’s own pages are built from, and
is the one to reach for when you want what a visitor sees.
Kinds
asset, mod, server, serverMap, article, community, collection,
user. Ids on this surface are strings — the app API’s convention — even
where they look like numbers.
Commands
- browse <kind>
A page of rows. Filters:
--search,--app(repeatable),--category(repeatable),--tag(repeatable; all must match, or any with--any-tag),--community,--owner,--official,--nsfw. Order with--sort(createdAt,lastEdit,name,views,downloads,rating,reviews,favorites, and for serverscurUsers,maxUsers,avgUsers),--dir asc|descand--time-range all|24h|7d|30d. Kind-specific filters go through--filter key=value— for example--filter onlineOnly=true --filter os=LINUXon servers.- show <kind> <id>
One item’s summary and counts.
--part releases|media|links|dependenciesfetches that part instead.- facets <kind>
The games, categories and countries that kind can be filtered by, with their ids — the numbers
browsewants.- reviews <kind> <id>
An item’s reviews,
--sort recent|helpful|rating.- games
The games list.
--search,--type(GAME,GAME_SINGLEPLAYER,GAME_ENGINE,VOIP,OTHER),--playablefor games playable on the site,--ids/--slug(repeatable) to fetch specific ones.- lookup <host>
The listed servers at a hostname or IP, optionally narrowed by
--port. Useful for “is my server listed yet?” — see Getting listed.- build <game>
The installable native build of a game for one platform (
--platform LINUX_X64, for example); nothing when there is none. This is what the desktop app installs from.- listing
The address-only server listing a game’s server browser reads.
--apptakes a game id or slug; page with--pageand--limit, or--all.
Paging
Every list takes --limit, --cursor, --all (follow the cursor to the end)
and --max (stop after this many rows with --all). Output formats are the
usual ones — see Output and exit codes.
Anonymous means the anonymous quota
With no key, requests are counted per source address, and the budget is
deliberately small. A script that walks a whole kind with --all should
expect to meet a 429; the CLI waits out the server’s own retry-after, but
a key is free and has a much larger budget. See
Rate limits.
