UNPKG

steamapi

Version:
1,017 lines (512 loc) 21.3 kB
[**steamapi**](../README.md) *** [steamapi](../README.md) / default # Class: default Defined in: [SteamAPI.ts:168](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L168) ## Constructors ### Constructor > **new default**(`key`, `options`): `SteamAPI` Defined in: [SteamAPI.ts:196](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L196) Make a new SteamAPI Client #### Parameters ##### key Key to use for API calls. Key can be generated at https://steamcommunity.com/dev/apikey. If you want to make requests without a key, pass in false `string` | `false` ##### options [`SteamAPIOptions`](../interfaces/SteamAPIOptions.md) = `{}` Custom options for default language, HTTP parameters, and caching #### Returns `SteamAPI` ## Properties ### baseActions > **baseActions**: `string` Defined in: [SteamAPI.ts:184](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L184) *** ### baseAPI > **baseAPI**: `string` Defined in: [SteamAPI.ts:182](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L182) *** ### baseStore > **baseStore**: `string` Defined in: [SteamAPI.ts:183](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L183) *** ### currency > **currency**: [`Currency`](../type-aliases/Currency.md) Defined in: [SteamAPI.ts:180](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L180) *** ### gameDetailCache? > `optional` **gameDetailCache**: [`CacheMap`](../interfaces/CacheMap.md)\<`string`, [`GameDetails`](GameDetails.md)\> Defined in: [SteamAPI.ts:186](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L186) *** ### headers > **headers**: `object` Defined in: [SteamAPI.ts:181](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L181) #### Index Signature \[`key`: `string`\]: `string` *** ### language > **language**: [`Language`](../type-aliases/Language.md) Defined in: [SteamAPI.ts:179](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L179) *** ### userResolveCache? > `optional` **userResolveCache**: [`CacheMap`](../interfaces/CacheMap.md)\<`string`, `string`\> Defined in: [SteamAPI.ts:187](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L187) *** ### reCommunityID > `static` **reCommunityID**: `RegExp` Defined in: [SteamAPI.ts:170](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L170) *** ### reProfileBase > `static` **reProfileBase**: `string` Defined in: [SteamAPI.ts:169](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L169) *** ### reProfileURL > `static` **reProfileURL**: `RegExp` Defined in: [SteamAPI.ts:173](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L173) *** ### reSteamID2 > `static` **reSteamID2**: `RegExp` Defined in: [SteamAPI.ts:171](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L171) *** ### reSteamID3 > `static` **reSteamID3**: `RegExp` Defined in: [SteamAPI.ts:172](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L172) *** ### reVanityID > `static` **reVanityID**: `RegExp` Defined in: [SteamAPI.ts:175](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L175) *** ### reVanityURL > `static` **reVanityURL**: `RegExp` Defined in: [SteamAPI.ts:174](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L174) *** ### SUCCESS\_CODE > `static` **SUCCESS\_CODE**: `number` = `1` Defined in: [SteamAPI.ts:177](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L177) ## Methods ### get() > **get**(`path`, `params`, `base`): `Promise`\<`any`\> Defined in: [SteamAPI.ts:233](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L233) Used to make any GET request to the Steam API #### Parameters ##### path `string` Path to request e.g '/IPlayerService/GetOwnedGames/v1?steamid=76561198378422474' ##### params `ParsedUrlQueryInput` = `{}` ##### base `string` = `...` Base API URL #### Returns `Promise`\<`any`\> Parse JSON *** ### getAppList() > **getAppList**(): `Promise`\<[`AppBase`](../interfaces/AppBase.md)[]\> Defined in: [SteamAPI.ts:415](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L415) Get every single app on steam Note: Original JSON names are being preserved instead of converting each element to a class here because there are 186311+ games that would have to be made into a class. #### Returns `Promise`\<[`AppBase`](../interfaces/AppBase.md)[]\> Array of very basic app info (ID + name) *** ### getCities() > **getCities**(`countryCode`, `stateCode`): `Promise`\<[`City`](../interfaces/City.md)[]\> Defined in: [SteamAPI.ts:718](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L718) Gets all the cities for a particular state #### Parameters ##### countryCode `string` ##### stateCode `string` #### Returns `Promise`\<[`City`](../interfaces/City.md)[]\> Array of city objects with fields countrycode, statecode, cityname and cityid *** ### getCountries() > **getCountries**(): `Promise`\<[`Country`](../interfaces/Country.md)[]\> Defined in: [SteamAPI.ts:702](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L702) Gets all the countries #### Returns `Promise`\<[`Country`](../interfaces/Country.md)[]\> Array of country objects with fields countrycode, hasstates, and countryname *** ### getFeaturedCategories() > **getFeaturedCategories**(`options`): `Promise`\<\{[`key`: `string`]: `any`; \}\> Defined in: [SteamAPI.ts:316](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L316) Gets featured categories on Steam store <warn>undocumented endpoint -- may be unstable</warn> #### Parameters ##### options More options ###### currency? [`Currency`](../type-aliases/Currency.md) = `...` The currency ###### language? [`Language`](../type-aliases/Language.md) = `...` The language #### Returns `Promise`\<\{[`key`: `string`]: `any`; \}\> *** ### getFeaturedGames() > **getFeaturedGames**(`options`): `Promise`\<\{[`key`: `string`]: `any`; \}\> Defined in: [SteamAPI.ts:329](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L329) Gets featured games on Steam store <warn>undocumented endpoint -- may be unstable</warn> #### Parameters ##### options More options ###### currency? [`Currency`](../type-aliases/Currency.md) = `...` The currency ###### language? [`Language`](../type-aliases/Language.md) = `...` The language #### Returns `Promise`\<\{[`key`: `string`]: `any`; \}\> *** ### getGameAchievementPercentages() > **getGameAchievementPercentages**(`app`): `Promise`\<[`AchievementPercentage`](../interfaces/AchievementPercentage.md)[]\> Defined in: [SteamAPI.ts:485](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L485) Get achievement percentages for app ID If a game does not have any achievements, this will error #### Parameters ##### app `number` App ID to get achievement progress for #### Returns `Promise`\<[`AchievementPercentage`](../interfaces/AchievementPercentage.md)[]\> Array of object with achievement name and percentage for app ID *** ### getGameDetails() #### Call Signature > **getGameDetails**(`app`, `options?`): `Promise`\<[`GameDetails`](GameDetails.md)\> Defined in: [SteamAPI.ts:354](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L354) Get details for app ID. If an array of more than one app ID is passed in, the parameter &filters=price_overview will be added to the request since otherwise the server would respond with null Note: a game will not have a price_overview field if it is F2P <warn>If the array contains invalid app IDs, they will be filtered out</warn> <warn>Requests for this endpoint are limited to 200 every 5 minutes</warn> <warn>Not every `currency` is supported. Only the following are valid: `us, ca, cc, es, de, fr, ru, nz, au, uk`.</warn> <warn>Not every `language` is supported. A list of available languages can be found [here](https://www.ibabbleon.com/Steam-Supported-Languages-API-Codes.html).</warn> ##### Parameters ###### app `Number` App ID or array of App IDs ###### options? More options ###### currency [`Currency`](../type-aliases/Currency.md) The currency ###### filters `string`[] Fields to restrict the return results to ###### language [`Language`](../type-aliases/Language.md) The language ##### Returns `Promise`\<[`GameDetails`](GameDetails.md)\> If app is number, returns single object. If app is array, returns a mapping of app IDs to objects #### Call Signature > **getGameDetails**\<`T`\>(`app`, `options?`): `Promise`\<\{[`key`: `string`]: [`GameDetails`](GameDetails.md); \}\> Defined in: [SteamAPI.ts:355](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L355) Get details for app ID. If an array of more than one app ID is passed in, the parameter &filters=price_overview will be added to the request since otherwise the server would respond with null Note: a game will not have a price_overview field if it is F2P <warn>If the array contains invalid app IDs, they will be filtered out</warn> <warn>Requests for this endpoint are limited to 200 every 5 minutes</warn> <warn>Not every `currency` is supported. Only the following are valid: `us, ca, cc, es, de, fr, ru, nz, au, uk`.</warn> <warn>Not every `language` is supported. A list of available languages can be found [here](https://www.ibabbleon.com/Steam-Supported-Languages-API-Codes.html).</warn> ##### Type Parameters ###### T `T` *extends* `number` ##### Parameters ###### app `T`[] App ID or array of App IDs ###### options? More options ###### currency [`Currency`](../type-aliases/Currency.md) The currency ###### filters `string`[] Fields to restrict the return results to ###### language [`Language`](../type-aliases/Language.md) The language ##### Returns `Promise`\<\{[`key`: `string`]: [`GameDetails`](GameDetails.md); \}\> If app is number, returns single object. If app is array, returns a mapping of app IDs to objects *** ### getGameNews() > **getGameNews**(`app`, `options`): `Promise`\<[`NewsPost`](NewsPost.md)[]\> Defined in: [SteamAPI.ts:511](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L511) Get news for app ID #### Parameters ##### app `number` App ID ##### options [`GetGameNewsOptions`](../interfaces/GetGameNewsOptions.md) = `{}` Additional options for filtering posts #### Returns `Promise`\<[`NewsPost`](NewsPost.md)[]\> App news for ID *** ### getGamePlayers() > **getGamePlayers**(`app`): `Promise`\<`number`\> Defined in: [SteamAPI.ts:438](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L438) Get number of current players for app ID #### Parameters ##### app `number` App ID to get number of current players for #### Returns `Promise`\<`number`\> Number of current players *** ### getGameSchema() > **getGameSchema**(`app`, `language`): `Promise`\<`GameSchema`\> Defined in: [SteamAPI.ts:454](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L454) Get schema for app ID #### Parameters ##### app `number` App ID to get schema for ##### language [`Language`](../type-aliases/Language.md) = `...` Language to return strings for (note: does not seem to affect stats; only achievements) #### Returns `Promise`\<`GameSchema`\> Schema *** ### getServerList() > **getServerList**(`filter`, `limit`): `Promise`\<[`GameServer`](GameServer.md)[]\> Defined in: [SteamAPI.ts:728](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L728) Gets servers using Master Server Query Protocol filtering #### Parameters ##### filter `string` = `''` Filter as defined by the [Master Server Query Protocol](https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol#Filter). Although a filter is not strictly required, you probably want to at least use something like \appid\[appid] to filter by app ##### limit `number` = `100` Number of results to return. 100 by default #### Returns `Promise`\<[`GameServer`](GameServer.md)[]\> *** ### getServers() > **getServers**(`host`): `Promise`\<[`Server`](Server.md)[]\> Defined in: [SteamAPI.ts:425](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L425) Get every server associated with a particular host #### Parameters ##### host `string` Host to query (IPv4 or IPv4:queryport) #### Returns `Promise`\<[`Server`](Server.md)[]\> Info of servers *** ### getServerTime() > **getServerTime**(): `Promise`\<`Date`\> Defined in: [SteamAPI.ts:693](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L693) Gets the Steam server's time #### Returns `Promise`\<`Date`\> Date object from the server *** ### getStates() > **getStates**(`countryCode`): `Promise`\<[`State`](../interfaces/State.md)[]\> Defined in: [SteamAPI.ts:710](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L710) Gets all the states for a particular country #### Parameters ##### countryCode `string` #### Returns `Promise`\<[`State`](../interfaces/State.md)[]\> Array of state objects with fields countrycode, statecode, and statename *** ### getUserAchievements() > **getUserAchievements**(`id`, `app`, `language`): `Promise`\<[`UserAchievements`](UserAchievements.md)\> Defined in: [SteamAPI.ts:467](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L467) Get a user's achievements for app ID #### Parameters ##### id `string` Steam ID of user ##### app `number` App ID to get achievements for ##### language [`Language`](../type-aliases/Language.md) = `...` Language to return strings for #### Returns `Promise`\<[`UserAchievements`](UserAchievements.md)\> Achievements *** ### getUserBadges() > **getUserBadges**(`id`): `Promise`\<[`UserBadges`](UserBadges.md)\> Defined in: [SteamAPI.ts:536](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L536) Get a user's badges #### Parameters ##### id `string` User ID #### Returns `Promise`\<[`UserBadges`](UserBadges.md)\> User level info and badges *** ### getUserBans() #### Call Signature > **getUserBans**(`id`): `Promise`\<[`UserBans`](UserBans.md)\> Defined in: [SteamAPI.ts:622](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L622) Get a user's or multiple users' bans. If an array of IDs is passed in, this returns an array of UserBans ##### Parameters ###### id `string` User ID(s) ##### Returns `Promise`\<[`UserBans`](UserBans.md)\> Ban info #### Call Signature > **getUserBans**(`id`): `Promise`\<[`UserBans`](UserBans.md)[]\> Defined in: [SteamAPI.ts:623](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L623) Get a user's or multiple users' bans. If an array of IDs is passed in, this returns an array of UserBans ##### Parameters ###### id `string`[] User ID(s) ##### Returns `Promise`\<[`UserBans`](UserBans.md)[]\> Ban info *** ### getUserFriends() > **getUserFriends**(`id`): `Promise`\<[`UserFriend`](UserFriend.md)[]\> Defined in: [SteamAPI.ts:641](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L641) Get a user's friends #### Parameters ##### id `string` User ID #### Returns `Promise`\<[`UserFriend`](UserFriend.md)[]\> The provided user's friends *** ### getUserGroups() > **getUserGroups**(`id`): `Promise`\<`string`[]\> Defined in: [SteamAPI.ts:653](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L653) Get the groups the user is a member of #### Parameters ##### id `string` User ID #### Returns `Promise`\<`string`[]\> Group IDs *** ### getUserLevel() > **getUserLevel**(`id`): `Promise`\<`number`\> Defined in: [SteamAPI.ts:547](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L547) Get a user's level #### Parameters ##### id `string` User ID #### Returns `Promise`\<`number`\> The user's Steam level *** ### getUserOwnedGames() > **getUserOwnedGames**(`id`, `opts`): `Promise`\<[`UserPlaytime`](UserPlaytime.md)\<[`Game`](Game.md) \| [`GameInfo`](GameInfo.md) \| [`GameInfoExtended`](GameInfoExtended.md)\>[]\> Defined in: [SteamAPI.ts:559](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L559) Get users owned games. #### Parameters ##### id `string` User ID ##### opts [`GetUserOwnedGamesOptions`](../interfaces/GetUserOwnedGamesOptions.md) = `{}` Additional options for filtering #### Returns `Promise`\<[`UserPlaytime`](UserPlaytime.md)\<[`Game`](Game.md) \| [`GameInfo`](GameInfo.md) \| [`GameInfoExtended`](GameInfoExtended.md)\>[]\> Owned games *** ### getUserRecentGames() > **getUserRecentGames**(`id`, `count`): `Promise`\<[`UserPlaytime`](UserPlaytime.md)\<[`GameInfoBasic`](GameInfoBasic.md)\>[]\> Defined in: [SteamAPI.ts:609](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L609) Get a user's recently played games. Note: <UserPlaytime>.game is GameInfo not just Game Like getUserOwnedGames() but only returns games played in the last 2 weeks #### Parameters ##### id `string` User ID ##### count `number` = `0` Number of results to limit the request to (0 means no limit) #### Returns `Promise`\<[`UserPlaytime`](UserPlaytime.md)\<[`GameInfoBasic`](GameInfoBasic.md)\>[]\> Recently played games and their play times *** ### getUserServers() > **getUserServers**(): `Promise`\<[`UserServers`](UserServers.md)\> Defined in: [SteamAPI.ts:666](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L666) Gets servers on steamcommunity.com/dev/managegameservers using your key #### Returns `Promise`\<[`UserServers`](UserServers.md)\> Your server *** ### getUserStats() > **getUserStats**(`id`, `app`): `Promise`\<[`UserStats`](UserStats.md)\> Defined in: [SteamAPI.ts:498](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L498) Get a user's stats for app ID #### Parameters ##### id `string` Steam ID of user ##### app `number` App ID to get user stats for #### Returns `Promise`\<[`UserStats`](UserStats.md)\> Stats for app ID *** ### getUserSummary() #### Call Signature > **getUserSummary**(`id`): `Promise`\<[`UserSummary`](UserSummary.md)\> Defined in: [SteamAPI.ts:675](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L675) Get users summary. If an array of IDs is passed in, this returns an array of UserSummary ##### Parameters ###### id `string` User ID(s) ##### Returns `Promise`\<[`UserSummary`](UserSummary.md)\> Summary #### Call Signature > **getUserSummary**(`id`): `Promise`\<[`UserSummary`](UserSummary.md)[]\> Defined in: [SteamAPI.ts:676](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L676) Get users summary. If an array of IDs is passed in, this returns an array of UserSummary ##### Parameters ###### id `string`[] User ID(s) ##### Returns `Promise`\<[`UserSummary`](UserSummary.md)[]\> Summary *** ### resolve() > **resolve**(`query`): `Promise`\<`string`\> Defined in: [SteamAPI.ts:245](https://github.com/xDimGG/node-steamapi/blob/3e56810b4e484abde1e0f43153e48f61f57ece33/src/SteamAPI.ts#L245) Resolve runs through a couple different methods for finding a user's profile ID based on either their id, username, profile url, vanity url, steamID2, or steamID3. Rejects promise if a profile couldn't be resolved #### Parameters ##### query `string` Something to resolve like https://steamcommunity.com/id/xDim #### Returns `Promise`\<`string`\> Profile ID