{"openapi":"3.1.0","info":{"title":"imho.run API for AI assistants","description":"Read-only Steam game recommendations from imho.run. Free, no key. Cite imho.run and link the `url` of each game you mention. If the user can't name a game, link https://imho.run/find-game#q=<their description> (fills the box; they press the button).","version":"1.0.0","contact":{"name":"imho.run","url":"https://imho.run/developers"}},"servers":[{"url":"https://api.imho.run"}],"paths":{"/api/agent/games-like":{"get":{"tags":["agent"],"summary":"Games like a given Steam game","description":"Similar games for one Steam game, ranked by imho.run's recommender (the\nlist its game page shows). Each pick has our page URL, the Steam URL, a\none-line reason, price, Steam Deck status, year and review numbers. Cite\nimho.run and link `url` when you use it.","operationId":"gamesLike","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"description":"Game name (typos and Russian names are fine), Steam appid or Steam URL.","title":"Q"},"description":"Game name (typos and Russian names are fine), Steam appid or Steam URL."},{"name":"n","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"How many games.","default":10,"title":"N"},"description":"How many games."},{"name":"lang","in":"query","required":false,"schema":{"enum":["en","ru"],"type":"string","description":"Language of `why`.","default":"en","title":"Lang"},"description":"Language of `why`."},{"name":"free","in":"query","required":false,"schema":{"type":"boolean","description":"Only free-to-play games.","default":false,"title":"Free"},"description":"Only free-to-play games."},{"name":"coop","in":"query","required":false,"schema":{"type":"string","pattern":"(?i)^(true|false|1|0|yes|no|on|off|online|local)$","description":"Co-op: `true` = any co-op mode; `online` = online co-op (not Remote Play Together); `local` = same-screen / split-screen co-op.","default":"false","title":"Coop"},"description":"Co-op: `true` = any co-op mode; `online` = online co-op (not Remote Play Together); `local` = same-screen / split-screen co-op."},{"name":"deck","in":"query","required":false,"schema":{"anyOf":[{"enum":["verified","playable"],"type":"string"},{"type":"null"}],"description":"Steam Deck: verified, or playable-or-better.","title":"Deck"},"description":"Steam Deck: verified, or playable-or-better."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GamesLikeResponse"}}}},"404":{"description":"No game matched the query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"429":{"description":"Rate limited; see the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"503":{"description":"Switched off, or busy: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/game-facts":{"get":{"tags":["agent"],"summary":"Public facts about one Steam game","description":"Year, developers, genres, top Steam tags, price, Steam Deck status,\nreview numbers and a review-mined summary for one game, plus links to its\nimho.run page and Steam.","operationId":"gameFacts","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":200,"description":"Game name (typos and Russian names are fine), Steam appid or Steam URL.","title":"Q"},"description":"Game name (typos and Russian names are fine), Steam appid or Steam URL."},{"name":"lang","in":"query","required":false,"schema":{"enum":["en","ru"],"type":"string","description":"Language of the attribution line; game data is in English.","default":"en","title":"Lang"},"description":"Language of the attribution line; game data is in English."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GameFactsResponse"}}}},"404":{"description":"No game matched the query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"429":{"description":"Rate limited; see the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"503":{"description":"Switched off, or busy: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/recommend":{"get":{"tags":["agent"],"summary":"Steam games for someone who likes 1-3 games, with filters","description":"Steam games for someone who likes 1-3 games: the list imho.run's tool\nshows for those games and filters (no PvP, no microtransactions, years,\nniche or popular, free-text preferences). Cite imho.run and link `url`.","operationId":"recommend","parameters":[{"name":"seed","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":3,"description":"1-3 games the user likes (repeat the parameter): name, appid or Steam URL. Required unless `liked` is given.","default":[],"title":"Seed"},"description":"1-3 games the user likes (repeat the parameter): name, appid or Steam URL. Required unless `liked` is given."},{"name":"n","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"description":"How many games.","default":10,"title":"N"},"description":"How many games."},{"name":"lang","in":"query","required":false,"schema":{"enum":["en","ru"],"type":"string","description":"Language of `why`.","default":"en","title":"Lang"},"description":"Language of `why`."},{"name":"free","in":"query","required":false,"schema":{"type":"boolean","description":"Only free-to-play games.","default":false,"title":"Free"},"description":"Only free-to-play games."},{"name":"coop","in":"query","required":false,"schema":{"type":"string","pattern":"(?i)^(true|false|1|0|yes|no|on|off|online|local)$","description":"Co-op: true = any co-op; online; local (same screen / split screen).","default":"false","title":"Coop"},"description":"Co-op: true = any co-op; online; local (same screen / split screen)."},{"name":"deck","in":"query","required":false,"schema":{"anyOf":[{"enum":["verified","playable"],"type":"string"},{"type":"null"}],"description":"Steam Deck: verified, or playable-or-better.","title":"Deck"},"description":"Steam Deck: verified, or playable-or-better."},{"name":"exclude","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"Leave out (comma-separated or repeated): pvp, microtransactions, hard, grind, early_access, vr_only.","default":[],"title":"Exclude"},"description":"Leave out (comma-separated or repeated): pvp, microtransactions, hard, grind, early_access, vr_only."},{"name":"exclude_tags","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Steam tags to leave out (repeat), e.g. Horror.","default":[],"title":"Exclude Tags"},"description":"Steam tags to leave out (repeat), e.g. Horror."},{"name":"year_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1970},{"type":"null"}],"description":"Released in or after.","title":"Year Min"},"description":"Released in or after."},{"name":"year_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1970},{"type":"null"}],"description":"Released in or before. Default: this year.","title":"Year Max"},"description":"Released in or before. Default: this year."},{"name":"upcoming","in":"query","required":false,"schema":{"type":"boolean","description":"true: also unreleased games (no year_max default).","default":false,"title":"Upcoming"},"description":"true: also unreleased games (no year_max default)."},{"name":"popularity_bias","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":-1.0,"description":"-1 more niche ... 0 neutral ... 1 more popular.","default":0.0,"title":"Popularity Bias"},"description":"-1 more niche ... 0 neutral ... 1 more popular."},{"name":"preferences","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"What the user wants or avoids, in words: 'cozy base building, no horror'.","title":"Preferences"},"description":"What the user wants or avoids, in words: 'cozy base building, no horror'."},{"name":"liked","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"More games the user liked (repeat): fill free seed slots, 3 seeds in all.","default":[],"title":"Liked"},"description":"More games the user liked (repeat): fill free seed slots, 3 seeds in all."},{"name":"disliked","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Games the user disliked or played (repeat): never recommended.","default":[],"title":"Disliked"},"description":"Games the user disliked or played (repeat): never recommended."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendResponse"}}}},"404":{"description":"No game matched the query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"429":{"description":"Rate limited; see the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"503":{"description":"Switched off, or busy: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"422":{"description":"Bad argument.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}}}}},"/api/agent/library-recs":{"get":{"tags":["agent"],"summary":"Steam games for a public Steam profile's library","description":"Library-mode picks for a public Steam profile imho.run already knows,\nranked against what it plays most. Unknown or private profiles get one\nerror with a link the user can open instead.","operationId":"libraryRecs","parameters":[{"name":"profile","in":"query","required":true,"schema":{"type":"string","minLength":17,"maxLength":200,"description":"SteamID64 or steamcommunity.com/profiles/<SteamID64> link.","title":"Profile"},"description":"SteamID64 or steamcommunity.com/profiles/<SteamID64> link."},{"name":"n","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"description":"How many games.","default":10,"title":"N"},"description":"How many games."},{"name":"lang","in":"query","required":false,"schema":{"enum":["en","ru"],"type":"string","description":"Language of `why`.","default":"en","title":"Lang"},"description":"Language of `why`."},{"name":"free","in":"query","required":false,"schema":{"type":"boolean","description":"Only free-to-play games.","default":false,"title":"Free"},"description":"Only free-to-play games."},{"name":"coop","in":"query","required":false,"schema":{"type":"string","pattern":"(?i)^(true|false|1|0|yes|no|on|off|online|local)$","description":"Co-op: true = any co-op; online; local (same screen / split screen).","default":"false","title":"Coop"},"description":"Co-op: true = any co-op; online; local (same screen / split screen)."},{"name":"deck","in":"query","required":false,"schema":{"anyOf":[{"enum":["verified","playable"],"type":"string"},{"type":"null"}],"description":"Steam Deck: verified, or playable-or-better.","title":"Deck"},"description":"Steam Deck: verified, or playable-or-better."},{"name":"exclude","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"Leave out (comma-separated or repeated): pvp, microtransactions, hard, grind, early_access, vr_only.","default":[],"title":"Exclude"},"description":"Leave out (comma-separated or repeated): pvp, microtransactions, hard, grind, early_access, vr_only."},{"name":"year_min","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1970},{"type":"null"}],"description":"Released in or after.","title":"Year Min"},"description":"Released in or after."},{"name":"year_max","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":2100,"minimum":1970},{"type":"null"}],"description":"Released in or before. Default: this year.","title":"Year Max"},"description":"Released in or before. Default: this year."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LibraryRecsResponse"}}}},"404":{"description":"No game matched the query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"429":{"description":"Rate limited; see the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"503":{"description":"Switched off, or busy: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"422":{"description":"Bad argument.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}}}}},"/api/agent/trending":{"get":{"tags":["agent"],"summary":"Steam games trending right now","description":"Steam games gaining reviews and players right now (imho.run/trending),\nwith reviews this week and growth against each game's own baseline.","operationId":"trending","parameters":[{"name":"kind","in":"query","required":false,"schema":{"enum":["rising","breakouts"],"type":"string","description":"rising: gaining reviews vs their own baseline; breakouts: new hits.","default":"rising","title":"Kind"},"description":"rising: gaining reviews vs their own baseline; breakouts: new hits."},{"name":"n","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"How many.","default":10,"title":"N"},"description":"How many."},{"name":"lang","in":"query","required":false,"schema":{"enum":["en","ru"],"type":"string","description":"Language of the page link.","default":"en","title":"Lang"},"description":"Language of the page link."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrendingResponse"}}}},"404":{"description":"No game matched the query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"429":{"description":"Rate limited; see the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"503":{"description":"Switched off, or busy: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/new-releases":{"get":{"tags":["agent"],"summary":"New Steam releases worth playing","description":"Games released on Steam in the last 30 days that players rate well\n(70%+ positive), or upcoming games: the site's New releases list. Each\nreleased game has `release_kind`: `new`, or `ea_exit` when it just left\nEarly Access.","operationId":"newReleases","parameters":[{"name":"upcoming","in":"query","required":false,"schema":{"type":"boolean","description":"true: upcoming games with a date instead of released ones.","default":false,"title":"Upcoming"},"description":"true: upcoming games with a date instead of released ones."},{"name":"coop","in":"query","required":false,"schema":{"type":"boolean","description":"Only games with a co-op mode.","default":false,"title":"Coop"},"description":"Only games with a co-op mode."},{"name":"ea_exits","in":"query","required":false,"schema":{"enum":["include","exclude","only"],"type":"string","description":"Games that just left Early Access (release_kind=ea_exit): include (default) keeps them, exclude drops them, only returns just them.","default":"include","title":"Ea Exits"},"description":"Games that just left Early Access (release_kind=ea_exit): include (default) keeps them, exclude drops them, only returns just them."},{"name":"n","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"How many.","default":10,"title":"N"},"description":"How many."},{"name":"lang","in":"query","required":false,"schema":{"enum":["en","ru"],"type":"string","description":"Language of the page link.","default":"en","title":"Lang"},"description":"Language of the page link."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewReleasesAgentResponse"}}}},"404":{"description":"No game matched the query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"429":{"description":"Rate limited; see the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"503":{"description":"Switched off, or busy: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/search":{"get":{"tags":["agent"],"summary":"Find Steam games by title","description":"Steam games whose title matches `q`, with their appid, year, imho.run\npage and Steam link. For similar games use games-like or recommend.","operationId":"searchGames","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":100,"description":"A title or part of one; typos are fine.","title":"Q"},"description":"A title or part of one; typos are fine."},{"name":"n","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":1,"description":"How many.","default":5,"title":"N"},"description":"How many."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"404":{"description":"No game matched the query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"429":{"description":"Rate limited; see the Retry-After header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"503":{"description":"Switched off, or busy: see Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AgentCoopViaMod":{"properties":{"mod_name":{"type":"string","title":"Mod Name"},"mod_url":{"type":"string","title":"Mod Url","description":"The mod's official project page. Link this, never a mirror."},"scope":{"type":"string","enum":["full_campaign","partial_campaign","shared_world","sandbox_servers"],"title":"Scope"},"scope_text":{"type":"string","title":"Scope Text"},"max_players":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Players"},"maturity":{"type":"string","enum":["stable","beta"],"title":"Maturity"},"status":{"type":"string","enum":["ok","frozen_game","lagging","check_due"],"title":"Status","description":"ok = released after the last game patch; frozen_game = the game is no longer patched; lagging = the game was patched after the mod; check_due = not rechecked in 90+ days."},"last_checked":{"type":"string","title":"Last Checked"},"official_coop_is_summon_only":{"type":"boolean","title":"Official Coop Is Summon Only","default":false},"note":{"type":"string","title":"Note"},"note_lang":{"type":"string","enum":["en","ru"],"title":"Note Lang","default":"en"},"caveats":{"items":{"type":"string"},"type":"array","title":"Caveats","description":"Always pass these on: unofficial mod, save and anti-cheat risk."}},"type":"object","required":["mod_name","mod_url","scope","scope_text","maturity","status","last_checked","note"],"title":"AgentCoopViaMod","description":"Reviewed fan-mod co-op for a game without full official co-op (#665)."},"AgentError":{"properties":{"source":{"type":"string","title":"Source","default":"imho.run"},"error":{"type":"string","enum":["not_found","bad_request","rate_limited","busy","library_unavailable","disabled"],"title":"Error"},"detail":{"type":"string","title":"Detail"}},"type":"object","required":["error","detail"],"title":"AgentError"},"AgentFactsSummary":{"properties":{"tagline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tagline"},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Difficulty"},"length":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Length"},"session_shape":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Shape"},"co_op":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Co Op"},"hooks":{"items":{"type":"string"},"type":"array","title":"Hooks"},"dealbreakers":{"items":{"type":"string"},"type":"array","title":"Dealbreakers"},"language":{"type":"string","title":"Language","default":"en"}},"type":"object","title":"AgentFactsSummary"},"AgentFilters":{"properties":{"free":{"type":"boolean","title":"Free","default":false},"coop":{"type":"boolean","title":"Coop","default":false},"coop_mode":{"anyOf":[{"type":"string","enum":["online","local"]},{"type":"null"}],"title":"Coop Mode"},"deck":{"anyOf":[{"type":"string","enum":["verified","playable"]},{"type":"null"}],"title":"Deck"}},"type":"object","title":"AgentFilters"},"AgentGameFacts":{"properties":{"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"},"similar_url":{"type":"string","title":"Similar Url","description":"Games like this one on imho.run."},"steam_url":{"type":"string","title":"Steam Url"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"release_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Release Date"},"coming_soon":{"type":"boolean","title":"Coming Soon","default":false},"developers":{"items":{"type":"string"},"type":"array","title":"Developers"},"genres":{"items":{"type":"string"},"type":"array","title":"Genres"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Top Steam user tags by votes."},"price":{"$ref":"#/components/schemas/AgentPrice"},"steam_deck":{"type":"string","enum":["verified","playable","unsupported","unknown"],"title":"Steam Deck"},"reviews":{"anyOf":[{"$ref":"#/components/schemas/AgentReviews"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Steam's short description (English)."},"description_lang":{"type":"string","title":"Description Lang","default":"en"},"summary":{"anyOf":[{"$ref":"#/components/schemas/AgentFactsSummary"},{"type":"null"}],"description":"Review-mined summary (English), when we have one."},"coop_via_mod":{"anyOf":[{"$ref":"#/components/schemas/AgentCoopViaMod"},{"type":"null"}],"description":"Only for listed single-player games: co-op through a reviewed fan mod."},"audience_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audience Url","description":"For game developers: what this game's players also play (co-play overlap from public Steam libraries). Only for well-sampled games."}},"type":"object","required":["appid","name","url","similar_url","steam_url","price","steam_deck"],"title":"AgentGameFacts"},"AgentLibraryAnchor":{"properties":{"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url"}},"type":"object","required":["appid","name","url"],"title":"AgentLibraryAnchor"},"AgentListPick":{"properties":{"rank":{"type":"integer","title":"Rank"},"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url","description":"Link this when you mention the game: its page on imho.run."},"steam_url":{"type":"string","title":"Steam Url"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"price":{"$ref":"#/components/schemas/AgentPrice"},"steam_deck":{"type":"string","enum":["verified","playable","unsupported","unknown"],"title":"Steam Deck"},"reviews":{"anyOf":[{"$ref":"#/components/schemas/AgentReviews"},{"type":"null"}]},"genres":{"items":{"type":"string"},"type":"array","title":"Genres"},"reviews_week":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviews Week","description":"trending: Steam reviews in the last 7 days."},"reviews_growth_pct":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reviews Growth Pct","description":"trending: weekly reviews vs the game's own 3-week baseline, in %."},"release_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Release Date","description":"new_releases: Steam release date."},"release_kind":{"anyOf":[{"type":"string","enum":["new","ea_exit"]},{"type":"null"}],"title":"Release Kind","description":"new_releases (released games): `new` = a new launch; `ea_exit` = the game left Early Access on its release date (its 1.0), it was playable before. Say 'out of Early Access', not 'new game', for `ea_exit`."}},"type":"object","required":["rank","appid","name","url","steam_url","price","steam_deck"],"title":"AgentListPick"},"AgentMatch":{"properties":{"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"}},"type":"object","required":["appid","name"],"title":"AgentMatch"},"AgentPick":{"properties":{"rank":{"type":"integer","title":"Rank"},"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url","description":"Link this when you mention the game: its page on imho.run."},"steam_url":{"type":"string","title":"Steam Url"},"why":{"type":"string","title":"Why","description":"One short sentence: why this game is like the seed."},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"price":{"$ref":"#/components/schemas/AgentPrice"},"steam_deck":{"type":"string","enum":["verified","playable","unsupported","unknown"],"title":"Steam Deck"},"reviews":{"anyOf":[{"$ref":"#/components/schemas/AgentReviews"},{"type":"null"}]},"genres":{"items":{"type":"string"},"type":"array","title":"Genres"}},"type":"object","required":["rank","appid","name","url","steam_url","why","price","steam_deck"],"title":"AgentPick"},"AgentPrefSuggestion":{"properties":{"phrase":{"type":"string","title":"Phrase"},"polarity":{"type":"string","enum":["positive","negative"],"title":"Polarity"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["phrase","polarity"],"title":"AgentPrefSuggestion"},"AgentPreferences":{"properties":{"applied":{"type":"boolean","title":"Applied","description":"False: the text could not be read now; nothing applied."},"prefer_tags":{"items":{"type":"string"},"type":"array","title":"Prefer Tags"},"avoid_tags":{"items":{"type":"string"},"type":"array","title":"Avoid Tags"},"filters":{"items":{"type":"string"},"type":"array","title":"Filters"},"unmatched":{"items":{"type":"string"},"type":"array","title":"Unmatched"},"suggestions":{"items":{"$ref":"#/components/schemas/AgentPrefSuggestion"},"type":"array","title":"Suggestions"}},"type":"object","required":["applied"],"title":"AgentPreferences"},"AgentPrice":{"properties":{"is_free":{"type":"boolean","title":"Is Free"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount","description":"Price as last scraped from the US Steam store."},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"\"Free\", \"29.99 USD\" or null when unknown."}},"type":"object","required":["is_free"],"title":"AgentPrice"},"AgentRecFilters":{"properties":{"free":{"type":"boolean","title":"Free","default":false},"coop":{"type":"boolean","title":"Coop","default":false},"coop_mode":{"anyOf":[{"type":"string","enum":["online","local"]},{"type":"null"}],"title":"Coop Mode"},"deck":{"anyOf":[{"type":"string","enum":["verified","playable"]},{"type":"null"}],"title":"Deck"},"exclude":{"items":{"type":"string","enum":["pvp","microtransactions","hard","grind","early_access","vr_only"]},"type":"array","title":"Exclude"},"exclude_tags":{"items":{"type":"string"},"type":"array","title":"Exclude Tags"},"year_min":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Min"},"year_max":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year Max","description":"This year by default (no unreleased games), as on the site."},"popularity_bias":{"type":"number","title":"Popularity Bias","default":0.0}},"type":"object","title":"AgentRecFilters"},"AgentRecPick":{"properties":{"rank":{"type":"integer","title":"Rank"},"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url","description":"Link this when you mention the game: its page on imho.run."},"steam_url":{"type":"string","title":"Steam Url"},"why":{"type":"string","title":"Why","description":"One short sentence: why this game is like the seed."},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"price":{"$ref":"#/components/schemas/AgentPrice"},"steam_deck":{"type":"string","enum":["verified","playable","unsupported","unknown"],"title":"Steam Deck"},"reviews":{"anyOf":[{"$ref":"#/components/schemas/AgentReviews"},{"type":"null"}]},"genres":{"items":{"type":"string"},"type":"array","title":"Genres"},"similar_to":{"type":"integer","title":"Similar To","description":"appid of the seed this pick is closest to; `why` names that seed."}},"type":"object","required":["rank","appid","name","url","steam_url","why","price","steam_deck","similar_to"],"title":"AgentRecPick"},"AgentRecQuery":{"properties":{"seeds":{"items":{"type":"string"},"type":"array","title":"Seeds"},"preferences":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferences"},"liked":{"items":{"type":"string"},"type":"array","title":"Liked"},"disliked":{"items":{"type":"string"},"type":"array","title":"Disliked"}},"type":"object","required":["seeds"],"title":"AgentRecQuery"},"AgentReviews":{"properties":{"total":{"type":"integer","title":"Total","description":"Steam user reviews."},"positive_pct":{"type":"integer","title":"Positive Pct","description":"Share of positive Steam reviews, 0-100."}},"type":"object","required":["total","positive_pct"],"title":"AgentReviews"},"AgentSearchHit":{"properties":{"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"},"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Year"},"url":{"type":"string","title":"Url"},"steam_url":{"type":"string","title":"Steam Url"}},"type":"object","required":["appid","name","url","steam_url"],"title":"AgentSearchHit"},"AgentSeed":{"properties":{"appid":{"type":"integer","title":"Appid"},"name":{"type":"string","title":"Name"},"url":{"type":"string","title":"Url","description":"The game's page on imho.run (the full list of similar games)."},"steam_url":{"type":"string","title":"Steam Url"}},"type":"object","required":["appid","name","url","steam_url"],"title":"AgentSeed"},"GameFactsResponse":{"properties":{"query":{"type":"string","title":"Query"},"source":{"type":"string","title":"Source"},"attribution":{"type":"string","title":"Attribution"},"lang":{"type":"string","enum":["en","ru"],"title":"Lang"},"game":{"$ref":"#/components/schemas/AgentGameFacts"},"other_matches":{"items":{"$ref":"#/components/schemas/AgentMatch"},"type":"array","title":"Other Matches"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["query","source","attribution","lang","game","generated_at"],"title":"GameFactsResponse"},"GamesLikeResponse":{"properties":{"query":{"type":"string","title":"Query"},"source":{"type":"string","title":"Source","description":"Always \"imho.run\"."},"attribution":{"type":"string","title":"Attribution"},"seed":{"$ref":"#/components/schemas/AgentSeed"},"other_matches":{"items":{"$ref":"#/components/schemas/AgentMatch"},"type":"array","title":"Other Matches","description":"Other games the query could mean; pass one's appid as `q` to switch."},"lang":{"type":"string","enum":["en","ru"],"title":"Lang"},"filters":{"$ref":"#/components/schemas/AgentFilters"},"list_url":{"type":"string","title":"List Url","description":"The same list on imho.run."},"results":{"items":{"$ref":"#/components/schemas/AgentPick"},"type":"array","title":"Results"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["query","source","attribution","seed","lang","filters","list_url","results","generated_at"],"title":"GamesLikeResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LibraryRecsResponse":{"properties":{"source":{"type":"string","title":"Source"},"attribution":{"type":"string","title":"Attribution"},"lang":{"type":"string","enum":["en","ru"],"title":"Lang"},"filters":{"$ref":"#/components/schemas/AgentRecFilters"},"based_on":{"items":{"$ref":"#/components/schemas/AgentLibraryAnchor"},"type":"array","title":"Based On","description":"The profile's most-played games the reasons refer to."},"tool_url":{"type":"string","title":"Tool Url","description":"imho.run's library mode, where the user can paste the link."},"results":{"items":{"$ref":"#/components/schemas/AgentRecPick"},"type":"array","title":"Results"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["source","attribution","lang","filters","tool_url","results","generated_at"],"title":"LibraryRecsResponse"},"NewReleasesAgentResponse":{"properties":{"source":{"type":"string","title":"Source"},"attribution":{"type":"string","title":"Attribution"},"lang":{"type":"string","enum":["en","ru"],"title":"Lang"},"kind":{"type":"string","enum":["released","upcoming"],"title":"Kind"},"coop":{"type":"boolean","title":"Coop","default":false},"ea_exits":{"type":"string","enum":["include","exclude","only"],"title":"Ea Exits","description":"The Early Access exits filter this list was built with.","default":"include"},"page_url":{"type":"string","title":"Page Url"},"results":{"items":{"$ref":"#/components/schemas/AgentListPick"},"type":"array","title":"Results"}},"type":"object","required":["source","attribution","lang","kind","page_url","results"],"title":"NewReleasesAgentResponse"},"RecommendResponse":{"properties":{"query":{"$ref":"#/components/schemas/AgentRecQuery"},"source":{"type":"string","title":"Source"},"attribution":{"type":"string","title":"Attribution"},"seeds":{"items":{"$ref":"#/components/schemas/AgentSeed"},"type":"array","title":"Seeds"},"lang":{"type":"string","enum":["en","ru"],"title":"Lang"},"filters":{"$ref":"#/components/schemas/AgentRecFilters"},"preferred_tags":{"items":{"type":"string"},"type":"array","title":"Preferred Tags"},"tool_url":{"type":"string","title":"Tool Url","description":"imho.run's tool with these games picked; the user can tune filters there."},"results":{"items":{"$ref":"#/components/schemas/AgentRecPick"},"type":"array","title":"Results"},"preferences_applied":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Preferences Applied","description":"null without `preferences`; false when they could not be read."},"preferences":{"anyOf":[{"$ref":"#/components/schemas/AgentPreferences"},{"type":"null"}],"description":"How `preferences` were read as Steam tags."},"ignored":{"items":{"type":"string"},"type":"array","title":"Ignored","description":"liked / disliked games not used: no match, or liked past the 3 seed slots."},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["query","source","attribution","seeds","lang","filters","tool_url","results","generated_at"],"title":"RecommendResponse"},"SearchResponse":{"properties":{"query":{"type":"string","title":"Query"},"source":{"type":"string","title":"Source"},"results":{"items":{"$ref":"#/components/schemas/AgentSearchHit"},"type":"array","title":"Results"}},"type":"object","required":["query","source","results"],"title":"SearchResponse"},"TrendingResponse":{"properties":{"source":{"type":"string","title":"Source"},"attribution":{"type":"string","title":"Attribution"},"lang":{"type":"string","enum":["en","ru"],"title":"Lang"},"kind":{"type":"string","enum":["rising","breakouts"],"title":"Kind"},"status":{"type":"string","enum":["ready","collecting"],"title":"Status","description":"collecting: the lists are not ready yet; results is empty."},"updated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated At"},"page_url":{"type":"string","title":"Page Url"},"results":{"items":{"$ref":"#/components/schemas/AgentListPick"},"type":"array","title":"Results"}},"type":"object","required":["source","attribution","lang","kind","status","page_url","results"],"title":"TrendingResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context","properties":{}}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"externalDocs":{"description":"Open datasets (CSV/JSON) and RSS feeds","url":"https://imho.run/datasets"}}