steamapi

A nice Steam API wrapper.

Usage no npm install needed!

<script type="module">
  import steamapi from 'https://cdn.skypack.dev/steamapi';
</script>

README

SteamAPI

NPM Discord

Setup

Installation

npm i steamapi

Getting an API Key

Once signed into Steam, head over to http://steamcommunity.com/dev/apikey to generate an API key.

Usage

First, we start by making a SteamAPI "user".

const SteamAPI = require('steamapi');
const steam = new SteamAPI('steam token');

Now, we can call methods on the steam object.

For example, let's retrieve the SteamID64 of a user. SteamAPI provides a resolve method, which accepts URLs and IDs.

steam.resolve('https://steamcommunity.com/id/DimGG').then(id => {
    console.log(id); // 76561198146931523
});

Now let's take that ID, and fetch the user's profile.

steam.getUserSummary('76561198146931523').then(summary => {
    console.log(summary);
    /**
    PlayerSummary {
        avatar: {
            small: 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/7f/7fdf55394eb5765ef6f7be3b1d9f834fa9c824e8.jpg',
            medium: 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/7f/7fdf55394eb5765ef6f7be3b1d9f834fa9c824e8_medium.jpg',
            large: 'https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/7f/7fdf55394eb5765ef6f7be3b1d9f834fa9c824e8_full.jpg'
        },
        steamID: '76561198146931523',
        url: 'http://steamcommunity.com/id/DimGG/',
        created: 1406393110,
        lastLogOff: 1517725233,
        nickname: 'Dim',
        primaryGroupID: '103582791457347196',
        personaState: 1,
        personaStateFlags: 0,
        commentPermission: 1,
        visibilityState: 3
    }
    */
});

Documentation

SteamAPI

Kind: global class

new SteamAPI(key, [options])

Sets Steam key for future use.

Param Type Default Description
key string Steam key
[options] Object {} Optional options for caching and warnings getGameDetails()
[options.enabled] boolean true Whether caching is enabled
[options.expires] number 86400000 How long cache should last for in ms (1 day by default)
[options.disableWarnings] boolean false Whether to suppress warnings

steamAPI.get(path, [base], [key]) ⇒ Promise.<Object>

Get custom path that isn't in SteamAPI.

Kind: instance method of SteamAPI
Returns: Promise.<Object> - JSON Response

Param Type Default Description
path string Path to request e.g '/IPlayerService/GetOwnedGames/v1?steamid=76561198378422474'
[base] string "this.baseAPI" Base URL
[key] string "this.key" The key to use

steamAPI.resolve(info) ⇒ Promise.<string>

Resolve info based on id, profile, or url. Rejects promise if a profile couldn't be resolved.

Kind: instance method of SteamAPI
Returns: Promise.<string> - Profile ID

Param Type Description
info string Something to resolve e.g 'https://steamcommunity.com/id/xDim'

steamAPI.getAppList() ⇒ Promise.<Array.<App>>

Get every single app on steam.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<App>> - Array of apps

steamAPI.getFeaturedCategories() ⇒ Promise.<Array.<Object>>

Get featured categories on the steam store.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<Object>> - Featured categories

steamAPI.getFeaturedGames() ⇒ Promise.<Object>

Get featured games on the steam store

Kind: instance method of SteamAPI
Returns: Promise.<Object> - Featured games

steamAPI.getGameAchievements(app) ⇒ Promise.<Object>

Get achievements for app id.

Kind: instance method of SteamAPI
Returns: Promise.<Object> - App achievements for ID

Param Type Description
app string App ID

steamAPI.getGameDetails(app, [force]) ⇒ Promise.<Object>

Get details for app id. Requests for this endpoint are limited to 200 every 5 minutes

Kind: instance method of SteamAPI
Returns: Promise.<Object> - App details for ID

Param Type Default Description
app string App ID
[force] boolean false Overwrite cache

steamAPI.getGameNews(app) ⇒ Promise.<Array.<Object>>

Get news for app id.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<Object>> - App news for ID

Param Type Description
app string App ID

steamAPI.getGamePlayers(app) ⇒ Promise.<number>

Get number of current players for app id.

Kind: instance method of SteamAPI
Returns: Promise.<number> - Number of players

Param Type Description
app string App ID

steamAPI.getGameSchema(app) ⇒ Promise.<Object>

Get schema for app id.

Kind: instance method of SteamAPI
Returns: Promise.<Object> - Schema

Param Type Description
app string App ID

steamAPI.getServers(host) ⇒ Promise.<Array.<Server>>

Get every server associated with host.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<Server>> - Server info

Param Type Description
host string Host to request

steamAPI.getUserAchievements(id, app) ⇒ Promise.<PlayerAchievements>

Get users achievements for app id.

Kind: instance method of SteamAPI
Returns: Promise.<PlayerAchievements> - Achievements

Param Type Description
id string User ID
app string App ID

steamAPI.getUserBadges(id) ⇒ Promise.<PlayerBadges>

Get users badges.

Kind: instance method of SteamAPI
Returns: Promise.<PlayerBadges> - Badges

Param Type Description
id string User ID

steamAPI.getUserBans(id) ⇒ Promise.<(PlayerBans|Array.<PlayerBans>)>

Get users bans.

Kind: instance method of SteamAPI
Returns: Promise.<(PlayerBans|Array.<PlayerBans>)> - Ban info

Param Type Description
id string | Array.<string> User ID(s)

steamAPI.getUserFriends(id) ⇒ Promise.<Array.<Friend>>

Get users friends.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<Friend>> - Friends

Param Type Description
id string User ID

steamAPI.getUserGroups(id) ⇒ Promise.<Array.<string>>

Get users groups.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<string>> - Groups

Param Type Description
id string User ID

steamAPI.getUserLevel(id) ⇒ Promise.<number>

Get users level.

Kind: instance method of SteamAPI
Returns: Promise.<number> - Level

Param Type Description
id string User ID

steamAPI.getUserOwnedGames(id) ⇒ Promise.<Array.<Game>>

Get users owned games.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<Game>> - Owned games

Param Type Description
id string User ID

steamAPI.getUserRecentGames(id) ⇒ Promise.<Array.<RecentGame>>

Get users recent games.

Kind: instance method of SteamAPI
Returns: Promise.<Array.<RecentGame>> - Recent games

Param Type Description
id string User ID

steamAPI.getUserServers([hide], [key]) ⇒ Promise.<PlayerServers>

Gets servers on steamcommunity.com/dev/managegameservers using your key or provided key.

Kind: instance method of SteamAPI
Returns: Promise.<PlayerServers> - Servers

Param Type Default Description
[hide] boolean false Hide deleted/expired servers
[key] string "this.key" Key

steamAPI.getUserStats(id, app) ⇒ Promise.<PlayerStats>

Get users stats for app id.

Kind: instance method of SteamAPI
Returns: Promise.<PlayerStats> - Stats for app id

Param Type Description
id string User ID
app string App ID

steamAPI.getUserSummary(id) ⇒ Promise.<PlayerSummary>

Get users summary.

Kind: instance method of SteamAPI
Returns: Promise.<PlayerSummary> - Summary

Param Type Description
id string User ID