Call ISteamUGC::CreateQueryUserUGCRequest with the target account ID, the desired list type (e.g., k_EUserUGCList_Published), matching UGC type, sort order, and the app IDs for creator and consumer
Optionally add filters via ISteamUGC::AddRequiredTag or ISteamUGC::SetReturnMetadata before sending the query
Call ISteamUGC::SendQueryUGCRequest and await the SteamUGCQueryCompleted_t callback to receive the result handle
Iterate results using ISteamUGC::GetQueryUGCResult with the handle and index to extract file details, vote data, and metadata for each item
Release the result handle with ISteamUGC::ReleaseQueryUGCRequest to avoid memory leaks
Known gotchas
Page indexing starts at 1, not 0; passing page 0 returns an invalid handle and no results
Results are returned asynchronously via callback; blocking the main thread waiting for the result will stall Steam callbacks and deadlock the query
SetReturnMetadata must be called before SendQueryUGCRequest; calling it after the send has no effect and silently returns items without metadata
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp