ISteamHub

A Steam WebAPI interface for Steam Community Hubs.

A New Interface

To facilitate Community Hub functionality for WebAPI, a new interface is best to implement a suite of methods for Hubs. While information may work in concert with other interfaces, Hubs are robust enough to warrant a new interface.

Formally Game Groups

Hubs were previously known as "Groups". Previous functionality of groups were preserved with the addition of additional features and integration of other official game resources. ISteamHub is designed to make the transition from groups seamless by making both official game and community hubs use the same methods where possible.

Official Game Hubs vs. Community Hubs

Steam Community Hubs fall into two types:

Official Game Hubs
A Hub for an officially released title and directly associated to an AppID.
Example: Puzzle Agent 2
Community Hubs
All other Steam Community hubs are community hubs.
While some hubs may be official to publishers, developers, or even Valve itself, all hubs not directly tied to an AppID.
Example: AbleGamers

Both types are functionally the same but for a few key differences. Game Hubs have connections to their AppID and game information, including stats and store connections. Methods will behave the same between both types unless explicitly stated.

Definitions

AppID
Every game and software released on Steam is associated with an integer. This number can be found via ISteamApps::GetAppList.
guid
A 64-bit integer referring to a particular hub. While the user is presented with either abbreviation or full title strings, the hub's key identifier is this integer.
All ISteamHub methods require a guid to key from, except for methods used to obtain the guid.

Common Inputs

Unless otherwise noted, all methods will take the following input parameters, even if the method may not need them.

Key Name Type Description Example
key string WebAPI Application Key. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
format string Requested form of output. XML, VDF, or JSON (default) json
language string ISO 639-1 language code. en

Common Outputs

Unless otherwise noted, all methods will return the following parameters. For methods that return an array of results, these fields will be included at the top-most level of a return, before the array of results.

Key Name Type Description Example
success int Status return number of query. Possible responses include:
  • 1 = Success.
  • 42 = No match found.
1
message string Human readable string describing success description. Success

Member Role Values

Some methods return the role of a member in a hub. These roles and return values are outlined below.

Value Roll
0 Public (Non-member)
1 Member
2 Moderator
3 Officer
4 Owner

Method Description

Provides a hub’s ID number based on a search query.

This function is similar to the ISteamUser::ResolveVanityURL method for player profiles. The difference is returns are for guid integers, used for all other methods in the ISteamHub interface.

Input

All Common Inputs are used for this method. Some may not effect response.
vanityUrl
(string)
One of the following types of information:
  • The 12 character abbreviation name.
  • The full URL of the hub.
  • The ID number of the hub.

Output

All Common Outputs are used for this method.
vanityUrl
(int)
Returned vanityUrl of input.
result
(array)
appID
(int)
If queried hub is an official game hub, value returns the AppID of the game.
If not an official game hub, value returns as 0.
guid
(int)
Steam Hub ID number of query.
abbreviation
(string)
Abbreviated name of the Hub.
Also known as 'short code'.
name
(string)
Title of the Hub.
url
(string)
URL of the Hub.
Useful when vanityUrl is an abbreviation or guid value.
official
(bool)
  • TRUE if group is official game group of listed appid.
  • FALSE if otherwise.
public
(bool)
  • TRUE if group is open to the public for viewing.
  • FALSE if otherwise.
inviteonly
(bool)
  • TRUE if users can join only if invited.
  • FALSE if otherwise.

Examples:

Game Hub: Puzzle Agent 2

GET https://api.steampowered.com/ISteamHub/ResolveVanityURL/v0001/?vanityurl=http%3A%2F%2Fsteamcommunity.com%2Fgames%2FPuzzleAgent2%2F
{
    "response": {
        "success": 1,
        "message": "success",
        "vanityurl": "http:\/\/steamcommunity.com\/games\/PuzzleAgent",
        "result": {
            "appid": 94590,
            "guid": 103582791432166170,
            "abbreviation": "puzzleagent2",
            "name": "Puzzle Agent 2",
            "url": "http:\/\/steamcommunity.com\/games\/PuzzleAgent",
            "official": true,
            "public": true,
            "inviteonly": false
        }
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <vanityurl>http://steamcommunity.com/games/PuzzleAgent</vanityurl>
  <result>
    <appid>94590</appid>
    <guid>103582791432166170</guid>
    <abbreviation>puzzleagent2</abbreviation>
    <name>Puzzle Agent 2</name>
    <url>http://steamcommunity.com/games/PuzzleAgent</url>
    <official>true</official>
    <public>true</public>
    <inviteonly>false</inviteonly>
  </result>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"vanityurl"	"http://steamcommunity.com/games/PuzzleAgent"
	"result"
	{
		"appid"	"94590"
		"guid"	"103582791432166170"
		"abbreviation"	"puzzleagent2"
		"name"	"Puzzle Agent 2"
		"url"	"http://steamcommunity.com/games/PuzzleAgent"
		"official"	"1"
		"public"	"1"
		"inviteonly"	"0"
	}
}

Community Hub: AbleGamers

GET https://api.steampowered.com/ISteamHub/ResolveVanityURL/v0001/?vanityurl=ablegamers
{
    "response": {
        "success": 1,
        "message": "success",
        "vanityurl": "http:\/\/steamcommunity.com\/groups\/ablegamers",
        "result": {
            "appid": 0,
            "guid": 103582791433132887,
            "abbreviation": "ablegamers",
            "name": "AbleGamers",
            "url": "http:\/\/steamcommunity.com\/groups\/ablegamers",
            "official": false,
            "public": true,
            "inviteonly": false
        }
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <vanityurl>http://steamcommunity.com/groups/ablegamers</vanityurl>
  <result>
    <appid>0</appid>
    <guid>103582791433132887</guid>
    <abbreviation>ablegamers</abbreviation>
    <name>AbleGamers</name>
    <url>http://steamcommunity.com/groups/ablegamers</url>
    <official>false</official>
    <public>true</public>
    <inviteonly>false</inviteonly>
  </result>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"vanityurl"	"http://steamcommunity.com/groups/ablegamers"
	"result"
	{
		"appid"	"0"
		"guid"	"103582791433132887"
		"abbreviation"	"ablegamers"
		"name"	"AbleGamers"
		"url"	"http://steamcommunity.com/groups/ablegamers"
		"official"	"0"
		"public"	"1"
		"inviteonly"	"0"
	}
}

Method Description

Search for hubs associated with a Game's AppID. Either official game or all can be returned.

Unlike ISteamHub::ResolveVanityURL, this method searches for hubs related to an AppID. This allows searches for either an official game hub of the app, or returns community based hubs that have included the target game by association.

Input

All Common Inputs are used for this method. Some may not effect response.
appid
(int)
The steam AppID number of the game to search against.
official_only
(bool) [optional]
If true, method returns only for the official game hub associated with the AppID.
public_only
(bool) [optional]
If TRUE, method returns only hubs marked as public.
Note: Official game hubs are always public.
count
(int) [optional]
Maximum number of hubs to return in a set.
skip
(int) [optional]
Amount of entries to skip. Used in conjunction with count.

Output

All Common Outputs are used for this method.
hubs
(array)
Array of results.
guid
(int)
Hub ID number.
abbreviation
(string)
12 character hub abbreviation string.
name
(string)
Title of hub.
url
(string)
URL of the hub.
official
(bool)
If TRUE, hub is the official game hub. FALSE if otherwise.
public
(bool)
If TRUE, hub is public. FALSE if otherwise.

Examples

AppID Search

GET https://api.steampowered.com/ISteamHub/ResolveAppID/v0001/?appid=94590
{
    "response": {
        "success": 1,
        "message": "success",
        "appid": 94590,
        "language": "en",
        "hubs": [
            {
                "guid": 103582791432166170,
                "abbreviation": "puzzleagent2",
                "name": "Puzzle Agent 2",
                "url": "http:\/\/steamcommunity.com\/app\/94590",
                "official": true,
                "public": true
            },
            {
                "guid": 103582791431201661,
                "abbreviation": "thepuzzleagents",
                "name": "The Puzzle Agents",
                "url": "http:\/\/steamcommunity.com\/groups\/thepuzzleagents",
                "official": false,
                "public": true
            }
        ]
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <appid>94590</appid>
  <language>en</language>
  <hubs>
    <hub>
      <guid>103582791432166170</guid>
      <abbreviation>puzzleagent2</abbreviation>
      <name>Puzzle Agent 2</name>
      <url>http://steamcommunity.com/app/94590</url>
      <official>true</official>
      <public>true</public>
    </hub>
    <hub>
      <guid>103582791431201661</guid>
      <abbreviation>thepuzzleagents</abbreviation>
      <name>The Puzzle Agents</name>
      <url>http://steamcommunity.com/groups/thepuzzleagents</url>
      <official>false</official>
      <public>true</public>
    </hub>
  </hubs>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"appid"	"94590"
	"language"	"en"
	"hubs"
	{
		"0"
		{
			"guid"	"103582791432166170"
			"abbreviation"	"puzzleagent2"
			"name"	"Puzzle Agent 2"
			"url"	"http://steamcommunity.com/app/94590"
			"official"	"1"
			"public"	"1"
		}
		"1"
		{
			"guid"	"103582791431201661"
			"abbreviation"	"thepuzzleagents"
			"name"	"The Puzzle Agents"
			"url"	"http://steamcommunity.com/groups/thepuzzleagents"
			"official"	"0"
			"public"	"1"
		}
	}
}

Official Game Hub Only

GET https://api.steampowered.com/ISteamHub/ResolveVanityURL/v0001/?appid=94590&official_only=1
{
    "response": {
        "success": 1,
        "message": "success",
        "appid": 94590,
        "language": "en",
        "hubs": [
            {
                "guid": 103582791432166170,
                "abbreviation": "puzzleagent2",
                "name": "Puzzle Agent 2",
                "url": "http:\/\/steamcommunity.com\/app\/94590",
                "official": true,
                "public": true
            }
        ]
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <appid>94590</appid>
  <language>en</language>
  <hubs>
    <hub>
      <guid>103582791432166170</guid>
      <abbreviation>puzzleagent2</abbreviation>
      <name>Puzzle Agent 2</name>
      <url>http://steamcommunity.com/app/94590</url>
      <official>true</official>
      <public>true</public>
    </hub>
  </hubs>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"appid"	"94590"
	"language"	"en"
	"hubs"
	{
		"0"
		{
			"guid"	"103582791432166170"
			"abbreviation"	"puzzleagent2"
			"name"	"Puzzle Agent 2"
			"url"	"http://steamcommunity.com/app/94590"
			"official"	"1"
			"public"	"1"
		}
	}
}

Method Description

Provides the bulk of information about any one particular hub.

This method provides the majority of metadata about a particular group including title, icons, description, and other information. If data about a hub is not served by another method, that data lives in ISteamHub::GetSummaries.

Inputs

All Common Inputs are used for this method. Some may not effect response.
Method will take either guid or appid parameters.
guid
(string)
Hub IDs to query, separated by commas.
appid
(string)
AppIDs to query, separated by commas.
This can be used to obtain only official game hubs.

Outputs

All Common Outputs are used for this method.
hubs
(array)
Array of returns matching query.
guid
(int)
The 64 bit integer of the hub.
abbreviation
(string)
The 12 character short name of the hub.
name
(string)
The full name of the hub.
url
(string)
The URL of the hub.
appid
(int)
If the hub is an official game hub, returns the AppID number of that game. Otherwise returns 0.
public
(bool)
TRUE if the hub is publicly viewable. FALSE if otherwise.
Note: A public hub doesn't assume players can join publicly. See inviteonly.
inviteonly
(bool)
TRUE if the hub can only be joined by invite. FALSE if otherwise.
Note: If hub is not public, value will always return TRUE.
datecreated
(unix timestamp)
Unix timestamp of when hub was created.
Note: Time assume UTC timezone. If date is the only known datapoint, returns 00:00 as time.
dateupdate
(unix timestamp)
Unix timestamp of when hub's metadata was last updated.
headline
(string)
Headline string of hub.
summary
(string)
Long form HTML string of hub. Used to describe the hub.
memberCount
(int)
Number of members inside the group.
Note: This field allows for the quick look at the number of members. For more details, see ISteamHub::GetMembers.
language
(string)
The language set by the hub.
This field is optional for the hub owner and will return NULL if not set. Otherwise will return ISO 639-1 code.
locCountryCode
(string)
The Country set by the hub in ISO 3166-2 format.
This field is optional for the hub and will return NULL if not set.
locStateCode
(string)
Variable length code representing the state the user is located in.
This field is optional for the hub and will return NULL if not set.
playerofweek
(int)
The Steam ID # of the player of the week. If there is no player set, this returns as 0.
avatar
(array)
Images that identify the Hub.
avatarIcon
(string)
URL of the hub's avatar in 32px square.
avatarMedium
(string)
URL of the hub's avatar in 64px square.
avatarFull
(string)
URL of the hub's avatar in 184px square.
gameLogo
(string) [optional]
URL of the official game hub's game icon in 184px X 69px.
Note: This is only for official game groups.
gameBanner
(string) [optional]
URL of the official game hub's game icon in 444px X 208px.
Note: This is only for official game groups.
associatedGames
(array)
If hub is associated with any particular Steam game, it will return the AppID number of the game(s). Note: If hub is official game group, will return only the official game group's AppID number.
appid
(int)
The AppID number of the game.
name
(string)
The name string of the game.
websites
(array)
If hub includes web links, this array will display them.
url
(string)
The URL of attached website.
name
(string)
The hub provided name of the attached website.

Examples

Community Hub: AbleGamers

GET https://api.steampowered.com/ISteamHub/GetSummaries/v0001/?guids=103582791433132887
{
    "response": {
        "success": 1,
        "message": "success",
        "language": "en",
        "hubs": {
            "103582791433132887": {
                "guid": 103582791433132887,
                "abbreviation": "ablegamers",
                "name": "AbleGamers",
                "url": "http:\/\/steamcommunity.com\/groups\/ablegamers",
                "appid": 0,
                "public": true,
                "inviteonly": false,
                "datecreated": 1335596400,
                "dateupdated": 1368135598,
                "headline": null,
                "summary": "AbleGamers enables children and adults with disabilities and veterans after war trauma to play video games. There should be no barriers to fun!",
                "memberCount": 177,
                "language": null,
                "locCountryCode": "US",
                "locStateCode": null,
                "playerofweek": 0,
                "avatar": {
                    "avatarIcon": "http:\/\/media.steampowered.com\/steamcommunity\/public\/images\/avatars\/03\/039516212655e228acbf3614740b7898d7930762.jpg",
                    "avatarMedium": "http:\/\/media.steampowered.com\/steamcommunity\/public\/images\/avatars\/03\/039516212655e228acbf3614740b7898d7930762_medium.jpg",
                    "avatarFull": "http:\/\/media.steampowered.com\/steamcommunity\/public\/images\/avatars\/03\/039516212655e228acbf3614740b7898d7930762_full.jpg",
                    "gamelogo": null,
                    "gamebanner": null
                },
                "associatedGames": [

                ],
                "websites": [
                    {
                        "url": "http:\/\/www.ablegamers.com\/",
                        "title": "AbleGamers.com"
                    },
                    {
                        "url": "http:\/\/twitter.com\/ablegamers",
                        "title": "AbleGamers on Twitter"
                    },
                    {
                        "url": "http:\/\/facebook.com\/ablegamers",
                        "title": "AbleGamers on Facebook"
                    }
                ]
            }
        }
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <language>en</language>
  <hubs>
    <hub>
      <guid>103582791433132887</guid>
      <abbreviation>ablegamers</abbreviation>
      <name>AbleGamers</name>
      <url>http://steamcommunity.com/groups/ablegamers</url>
      <appid>0</appid>
      <public>true</public>
      <inviteonly>false</inviteonly>
      <datecreated>1335596400</datecreated>
      <dateupdated>1368135598</dateupdated>
      <headline/>
      <summary>AbleGamers enables children and adults with disabilities and veterans after war trauma to play video games. There should be no barriers to fun!</summary>
      <memberCount>177</memberCount>
      <language/>
      <locCountryCode>US</locCountryCode>
      <locStateCode/>
      <playerofweek>0</playerofweek>
      <avatar>
        <avatarIcon>http://media.steampowered.com/steamcommunity/public/images/avatars/03/039516212655e228acbf3614740b7898d7930762.jpg</avatarIcon>
        <avatarMedium>http://media.steampowered.com/steamcommunity/public/images/avatars/03/039516212655e228acbf3614740b7898d7930762_medium.jpg</avatarMedium>
        <avatarFull>http://media.steampowered.com/steamcommunity/public/images/avatars/03/039516212655e228acbf3614740b7898d7930762_full.jpg</avatarFull>
        <gamelogo/>
        <gamebanner/>
      </avatar>
      <associatedGames/>
      <websites>
        <site url="http://www.ablegamers.com/">AbleGamers.com</site>
        <site url="http://twitter.com/ablegamers">AbleGamers on Twitter</site>
        <site url="http://facebook.com/ablegamers">AbleGamers on Facebook</site>
      </websites>
    </hub>
  </hubs>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"language"	"en"
	"hubs"
	{
		"103582791433132887"
		{
			"guid"	"103582791433132887"
			"abbreviation"	"ablegamers"
			"name"	"AbleGamers"
			"url"	"http://steamcommunity.com/groups/ablegamers"
			"appid"	"0"
			"public"	"1"
			"inviteonly"	"0"
			"datecreated"	"1335596400"
			"dateupdated"	"1368135598"
			"headline"	""
			"summary"	"AbleGamers enables children and adults with disabilities and veterans after war trauma to play video games. There should be no barriers to fun!"
			"memberCount"	"177"
			"language"	""
			"locCountryCode"	"US"
			"locStateCode"	""
			"playerofweek"	"0"
			"avatar"
			{
				"avatarIcon"	"http://media.steampowered.com/steamcommunity/public/images/avatars/03/039516212655e228acbf3614740b7898d7930762.jpg"
				"avatarMedium"	"http://media.steampowered.com/steamcommunity/public/images/avatars/03/039516212655e228acbf3614740b7898d7930762_medium.jpg"
				"avatarFull"	"http://media.steampowered.com/steamcommunity/public/images/avatars/03/039516212655e228acbf3614740b7898d7930762_full.jpg"
				"gamelogo"	""
				"gamebanner"	""
			}
			"associatedGames"
			{
			}
			"websites"
			{
				"0"
				{
					"url"	"http://www.ablegamers.com/"
					"title"	"AbleGamers.com"
				}
				"1"
				{
					"url"	"http://twitter.com/ablegamers"
					"title"	"AbleGamers on Twitter"
				}
				"2"
				{
					"url"	"http://facebook.com/ablegamers"
					"title"	"AbleGamers on Facebook"
				}
			}
		}
	}
}

Game Hub: Puzzle Agent 2

GET https://api.steampowered.com/ISteamHub/GetSummaries/v0001/?appid=94590

Method Description

Returns all (or some) announcements made by the hub.

Announcements allow hub members to communicate directly to members. These act as ways to send messages to all members who are apart of the hub community.

This specification is modeled after ISteamNews::GetNewsForApp for consistency. However, there are significant differences between the two methods.

Privacy Settings

The visibility of announcements depends on the permissions allowed for the WebAPI Key submitted. If the announcement is publicly viewable, then any request will return the post(s). If a hub or post is members only, the method will not return announcements that are not public.

Comments

While each announcement can have comments, the method will only return statistics of comments, not the content. It's encouraged for users of WebAPI to directly link to the page for the announcement for comments.

Pagination

The method allows pagination of announcements in a given search query. Using the provided search variables, a request can limit by time and/or number of count returns. Queries can also skip a number of announcements if count is a part of the query.

Inputs

All Common Inputs are used for this method. Some may not effect response.
Method will take either guid or appid parameters.
guid
(int)
Hub ID number to query against.
appid
(int)
App ID number to query against.
The following optional fields are used for search and narrowing down content returns.
maxLength
(int) [optional]
Maximum character length of contents field.
System will make a best guess to end content without cutting a word.
endDate
(unix timestamp)
[optional]
Unix timestamp of oldest requested item.
Allows query to limit announcements in a time range from time of query to a specific time.
count
(int) [optional]
Maximum number of announcements to return, regardless of other query variables.
skip
(int) [optional]
Number of announcements to skip within the bounds of other query variables. Used in conjunction with count.
authors
(string) [optional]
A comma separated string of Steam User ID numbers.
Providing this field will return only announcements made by the provided steam ID(s), along with other query factors if present.

Outputs

All Common Outputs are used for this method.
guid
(int)
Hub ID of the query returned if guid input was defined and successful.
appid
(int)
App ID of the query returned if appid input was defined and successful.
announcements
(array)
The following set is for each returned announcement item.
gid
(int)
Unique ID number of announcement.
title
(string)
Title (aka Headline) string of announcement item.
url
(string)
URL of announcement item.
author
(int)
Steam ID number of the creator of the specific announcement.
contents
(string)
HTML string of announcement contents.
Returns full contents unless maxlength is defined.
datetime
(unix timestamp)
Unix timestamp of when announcement was posted. Always returns in UTC.
comments
(int)
Number of comments made for this particular post.

Examples

Game Hub: Puzzle Agent 2

GET https://api.steampowered.com/ISteamHub/GetAnnouncements/v0001/?appid=94590
{
    "response": {
        "success": 1,
        "message": "success",
        "guid": 0,
        "appid": 94590,
        "announcements": [
            {
                "gid": 1406463823132647708,
                "title": "Puzzle Agent 2 Released!",
                "url": "http:\/\/steamcommunity.com\/games\/PuzzleAgent2\/announcements\/detail\/1406463823132647708",
                "author": 76561197985607672,
                "contents": "You can now return back to Scoggins with Nelson! The game is now released on Windows and Mac (via SteamPlay).<br><br><a href=\"http:\/\/store.steampowered.com\/app\/94590\">Buy Puzzle Agent 2<\/a> and get a free copy of Puzzle Agent 1 to play. Already own it? You can gift it to any one of your Steam friends!<br><br>Enjoy Puzzle Agent 2 and your trip back to Scoggins!",
                "datetime": 1309562100,
                "comments": 0
            },
            {
                "gid": 1406463176487492407,
                "title": "Graham Annable Answers Your Questions: Parts 4 & 5",
                "url": "http:\/\/steamcommunity.com\/games\/PuzzleAgent2\/announcements\/detail\/1406463176487492407",
                "author": 76561197985607672,
                "contents": "As our snowmobiles near Scoggins for the June 30 release of Puzzle Agent 2, I present to you not one but two new entries in the <b>Graham Annable Answers Your Questions<\/b> video series!<br><br>These new episodes feature questions from Telltale community members <b>eloffler<\/b>, <b>Lobst<\/b>, <b>allaboardfilms<\/b>, and <b>Irishmile<\/b>! To find out what Graham has to say watch the new videos!<br><br>* <a href=\"http:\/\/www.youtube.com\/watch?v=59jzTmKlE_c\">Graham Annable Answers Your Questions: Part 4<\/a><br>* <a href=\"http:\/\/www.youtube.com\/watch?v=cQpatJGoP8E\">Graham Annable Answers Your Questions: Part 5<\/a>",
                "datetime": 1309313280,
                "comments": 0
            }
        ]
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <guid>0</guid>
  <appid>94590</appid>
  <announcements>
    <announcement>
      <gid>1406463823132647708</gid>
      <title>Puzzle Agent 2 Released!</title>
      <url>http://steamcommunity.com/games/PuzzleAgent2/announcements/detail/1406463823132647708</url>
      <author>76561197985607672</author>
      <contents><![CDATA[You can now return back to Scoggins with Nelson! The game is now released on Windows and Mac (via SteamPlay).&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://store.steampowered.com/app/94590&quot;&gt;Buy Puzzle Agent 2&lt;/a&gt; and get a free copy of Puzzle Agent 1 to play. Already own it? You can gift it to any one of your Steam friends!&lt;br&gt;&lt;br&gt;Enjoy Puzzle Agent 2 and your trip back to Scoggins!]]></contents>
      <datetime>1309562100</datetime>
      <comments>0</comments>
    </announcement>
    <announcement>
      <gid>1406463176487492407</gid>
      <title>Graham Annable Answers Your Questions: Parts 4 &amp; 5</title>
      <url>http://steamcommunity.com/games/PuzzleAgent2/announcements/detail/1406463176487492407</url>
      <author>76561197985607672</author>
      <contents><![CDATA[As our snowmobiles near Scoggins for the June 30 release of Puzzle Agent 2, I present to you not one but two new entries in the &lt;b&gt;Graham Annable Answers Your Questions&lt;/b&gt; video series!&lt;br&gt;&lt;br&gt;These new episodes feature questions from Telltale community members &lt;b&gt;eloffler&lt;/b&gt;, &lt;b&gt;Lobst&lt;/b&gt;, &lt;b&gt;allaboardfilms&lt;/b&gt;, and &lt;b&gt;Irishmile&lt;/b&gt;! To find out what Graham has to say watch the new videos!&lt;br&gt;&lt;br&gt;* &lt;a href=&quot;http://www.youtube.com/watch?v=59jzTmKlE_c&quot;&gt;Graham Annable Answers Your Questions: Part 4&lt;/a&gt;&lt;br&gt;* &lt;a href=&quot;http://www.youtube.com/watch?v=cQpatJGoP8E&quot;&gt;Graham Annable Answers Your Questions: Part 5&lt;/a&gt;]]></contents>
      <datetime>1309313280</datetime>
      <comments>0</comments>
    </announcement>
  </announcements>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"guid"	"0"
	"appid"	"94590"
	"announcements"
	{
		"0"
		{
			"gid"	"1406463823132647708"
			"title"	"Puzzle Agent 2 Released!"
			"url"	"http://steamcommunity.com/games/PuzzleAgent2/announcements/detail/1406463823132647708"
			"author"	"76561197985607672"
			"contents"	"You can now return back to Scoggins with Nelson! The game is now released on Windows and Mac (via SteamPlay).

Buy Puzzle Agent 2 and get a free copy of Puzzle Agent 1 to play. Already own it? You can gift it to any one of your Steam friends!

Enjoy Puzzle Agent 2 and your trip back to Scoggins!" "datetime" "1309562100" "comments" "0" } "1" { "gid" "1406463176487492407" "title" "Graham Annable Answers Your Questions: Parts 4 & 5" "url" "http://steamcommunity.com/games/PuzzleAgent2/announcements/detail/1406463176487492407" "author" "76561197985607672" "contents" "As our snowmobiles near Scoggins for the June 30 release of Puzzle Agent 2, I present to you not one but two new entries in the Graham Annable Answers Your Questions video series!

These new episodes feature questions from Telltale community members eloffler, Lobst, allaboardfilms, and Irishmile! To find out what Graham has to say watch the new videos!

* Graham Annable Answers Your Questions: Part 4
* Graham Annable Answers Your Questions: Part 5" "datetime" "1309313280" "comments" "0" } } }

Method Description

Hubs are able to create Events for their members to participate. These events range from gameplay, Steam Chat events, and other events outside of Steam Community.

Event Types

Events are classified into the following types outlined below. For the sake of API consistency, these types will have a integer assigned to the type. This allows for expansion and easy casing of types.

I am also proposing retitling these fields to be more professional and useful as descriptions. I have also included a "Online Event" type for live steaming events like Desert Bus for Hope.

Value Short String Official Long String Proposed Long String
Denotes new string.
Denotes new field.
0 ChatEvent Chat Chat
1 GameEvent Play a Game Play a Game
2 OtherEvent A lil somethin somethin A lil somethin' different
3 PartyEvent Party! Party!
4 MeetingEvent Important Meeting Important Meeting
5 SpecialCauseEvent Special cause (charity ball?) Charity Event
6 MusicAndArtsEvent Music or Art type thing Music & Arts Event
7 SportsEvent Sporting endeavor Sports Event
8 TripEvent Out of town excursion Group Field Trip
9 OnlineEvent N/A Online Streaming Event

Inputs

All Common Inputs are used for this method. Some may not effect response.
Method will take either guid or appid parameters.
guid
(int)
Hub ID number to query against.
appid
(int)
App ID number to query against.
The following optional fields are used for search and narrowing down content returns.
maxLength
(int) [optional]
Maximum character length of contents field.
System will make a best guess to end content without cutting a word.
endDate
(unix timestamp)
[optional]
Unix timestamp of oldest requested item.
Allows query to limit announcements in a time range from time of query to a specific time.
count
(int) [optional]
Maximum number of announcements to return, regardless of other query variables.
skip
(int) [optional]
Number of announcements to skip within the bounds of other query variables. Used in conjunction with count.
authors
(string) [optional]
A comma separated string of Steam User ID numbers.
Providing this field will return only announcements made by the provided steam ID(s), along with other query factors if present.

Outputs

All Common Outputs are used for this method.
guid
(int)
Hub ID of the query returned if guid input was defined and successful.
appid
(int)
App ID of the query returned if appid input was defined and successful.
events
(array)
The main Events array. Each event returned will have an entry inside this array.
gid
(int)
Unique ID number of event item.
title
(string)
Title string of event item.
url
(string)
URL of event item.
eventtime
(unix timestamp)
Unix timestamp of when event starts. Always returns in UTC.
eventtype
(int)
The event type. Consult the table below for what the integers represent.
eventAppID
(int) [optional]
App ID number of the game attached to the event item.
Valid only when eventtype is 2.
eventIP
(string) [optional]
IP address attached to the event item.
Valid only when eventtype is 2 and eventAppID is defined.
eventPassword
(string) [optional]
Password used to enter the game server attached to the event item.
Valid only when eventtype is 2 and eventAppID is defined.
eventurl
(string) [optional]
Steam launch URL attached to the event item.
Valid only in the following conditions:
  • eventtype is 2 and eventIP is defined.
  • eventtype is 9.
author
(int)
Steam ID number of the creator of the specific event item.
contents
(string)
HTML string of event contents.
Returns full contents in HTML.
createdtime
(unix timestamp)
Unix timestamp of when event was posted. Always returns in UTC.
comments
(int)
Number of comments made for this particular event.

Examples

Community Hub: Seg Test Group

GET https://api.steampowered.com/ISteamHub/GetEvents/v0001/?guid=4178173
{
    "response": {
        "success": 1,
        "message": "success",
        "guid": 4178173,
        "appid": 0,
        "events": [
            {
                "gid": 1622697970587791993,
                "title": "Puzzle Agent 2 Test Event",
                "url": "http:\/\/steamcommunity.com\/groups\/SegTestGroup\/events\/1801716056505964159",
                "eventtime": 1368230400,
                "eventtype": 2,
                "eventappid": 94590,
                "eventip": "1.1.1.1:10",
                "eventpassword": "password",
                "eventurl": "steam:\/\/connect\/1.1.1.1:10",
                "contents": "You can now return back to Scoggins with Nelson! The game is now released on Windows and Mac (via SteamPlay).<br><br><a href=\"http:\/\/store.steampowered.com\/app\/94590\">Buy Puzzle Agent 2<\/a> and get a free copy of Puzzle Agent 1 to play. Already own it? You can gift it to any one of your Steam friends!<br><br>Enjoy Puzzle Agent 2 and your trip back to Scoggins!",
                "author": 76561197983121111,
                "createdtime": 1309562100,
                "comments": 0
            }
        ]
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <guid>4178173</guid>
  <appid>0</appid>
  <events>
    <event>
      <gid>1622697970587791993</gid>
      <title>Puzzle Agent 2 Test Event</title>
      <url>http://steamcommunity.com/groups/SegTestGroup/events/1801716056505964159</url>
      <eventtime>1368230400</eventtime>
      <eventtype>2</eventtype>
      <eventappid>94590</eventappid>
      <eventip>1.1.1.1:10</eventip>
      <eventpassword>password</eventpassword>
      <eventurl>steam://connect/1.1.1.1:10</eventurl>
      <contents><![CDATA[You can now return back to Scoggins with Nelson! The game is now released on Windows and Mac (via SteamPlay).&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://store.steampowered.com/app/94590&quot;&gt;Buy Puzzle Agent 2&lt;/a&gt; and get a free copy of Puzzle Agent 1 to play. Already own it? You can gift it to any one of your Steam friends!&lt;br&gt;&lt;br&gt;Enjoy Puzzle Agent 2 and your trip back to Scoggins!]]></contents>
      <author>76561197983121111</author>
      <createdtime>1309562100</createdtime>
      <comments>0</comments>
    </event>
  </events>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"guid"	"4178173"
	"appid"	"0"
	"events"
	{
		"0"
		{
			"gid"	"1622697970587791993"
			"title"	"Puzzle Agent 2 Test Event"
			"url"	"http://steamcommunity.com/groups/SegTestGroup/events/1801716056505964159"
			"eventtime"	"1368230400"
			"eventtype"	"2"
			"eventappid"	"94590"
			"eventip"	"1.1.1.1:10"
			"eventpassword"	"password"
			"eventurl"	"steam://connect/1.1.1.1:10"
			"contents"	"You can now return back to Scoggins with Nelson! The game is now released on Windows and Mac (via SteamPlay).

Buy Puzzle Agent 2 and get a free copy of Puzzle Agent 1 to play. Already own it? You can gift it to any one of your Steam friends!

Enjoy Puzzle Agent 2 and your trip back to Scoggins!" "author" "76561197983121111" "createdtime" "1309562100" "comments" "0" } } }

Method Description

A method returning the network status of hub members. This includes total members, members who are online, in the chat room for the hub, and playing any game on Steam.

Inputs

All Common Inputs are used for this method. Some may not effect response.
Method will take either guid or appid parameters.
guid
(int)
Hub ID number to query against.
appid
(int)
App ID number to query against.

Outputs

All Common Outputs are used for this method.
guid
(int)
Hub ID of the query returned if guid input was defined and successful.
appid
(int)
App ID of the query returned if appid input was defined and successful.
status
(array)
Array of status information for group.
memberCount
(int)
Total members associated with the hub.
membersInChat
(int)
Total members currently present in the hub's chat room.
membersInGame
(int)
Total members associated with the hub playing any game on Steam.
membersOnline
(int)
Total members associated with the hub that are online (with Steam).
Includes number of members who are in game.
playerofweek
(int)
The Steam ID number of the current player of the week (if defined).
Returns 0 if there is no player of the week defined.

Examples

Community Hub: Seg Test Group

GET https://api.steampowered.com/ISteamHub/GetStatus/v0001/?guid=4178173
{
    "response": {
        "success": 1,
        "message": "success",
        "guid": 4178173,
        "appid": 0,
        "status": {
            "memberCount": 0,
            "membersInChat": 0,
            "membersInGame": 0,
            "membersOnline": 0,
            "playerofweek": 1
        }
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <guid>4178173</guid>
  <appid>0</appid>
  <status>
    <memberCount>0</memberCount>
    <membersInChat>0</membersInChat>
    <membersInGame>0</membersInGame>
    <membersOnline>0</membersOnline>
    <playerofweek>1</playerofweek>
  </status>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"guid"	"4178173"
	"appid"	"0"
	"status"
	{
		"memberCount"	"0"
		"membersInChat"	"0"
		"membersInGame"	"0"
		"membersOnline"	"0"
		"playerofweek"	"1"
	}
}

Method Description

Returns all the member IDs associated with the hub.

Inputs

All Common Inputs are used for this method. Some may not effect response.
Method will take either guid or appid parameters.
guid
(int)
Hub ID number to query against.
appid
(int)
App ID number to query against.

Outputs

All Common Outputs are used for this method.
guid
(int)
Hub ID of the query returned if guid input was defined and successful.
appid
(int)
App ID of the query returned if appid input was defined and successful.
members
(array)
steamid
(int)
The Steam ID of the member.
role
(int)
The roll of the member in the hub.
See Member Role Values for member roll return values.

Examples

Community Hub: Seg Test Group

GET https://api.steampowered.com/ISteamHub/GetEvents/v0001/?guid=4178173
{
    "response": {
        "success": 1,
        "message": "success",
        "guid": 4178173,
        "appid": 0,
        "members": [
            {
                "steamid": 1622697970587791993,
                "role": 4
            },
            {
                "steamid": 1622697970587791993,
                "role": 0
            }
        ]
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <guid>4178173</guid>
  <appid>0</appid>
  <members>
    <member role="4">1622697970587791993</member>
    <member role="0">1622697970587791993</member>
  </members>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"guid"	"4178173"
	"appid"	"0"
	"members"
	{
		"0"
		{
			"steamid"	"1622697970587791993"
			"role"	"4"
		}
		"1"
		{
			"steamid"	"1622697970587791993"
			"role"	"0"
		}
	}
}

Method Description

Returns the permissions a queried group has for members and the public.

Inputs

All Common Inputs are used for this method. Some may not effect response.
Method will take either guid or appid parameters.
guid
(int)
Hub ID number to query against.
appid
(int)
App ID number to query against.

Outputs

All Common Outputs are used for this method.
guid
(int)
Hub ID of the query returned if guid input was defined and successful.
appid
(int)
App ID of the query returned if appid input was defined and successful.
permissions
(array)
Main Array.
inviteOnly
(int)
If value is 1, then the group is invitation only.
See Member Role Values for member roll return values.
canEditProps
(int)
Level of membership status a user needs to edit Hub details.
This includes avatars, hub description, hub title, and other high level hub details.
canMakeOfficer
(int)
Level of membership to make a member an officer.
canSchedule
(int)
Level of membership to make events for the hub.
canAnnounce
(int)
Level of membership to make announcements for the hub.
canPoTW
(int)
Level of membership to make a member the "Player of the Week" for the hub.
canInvite
(int)
Level of membership to invite new members into the hub.
canKickMembers
(int)
Level of membership to kick members from the hub.
canChatAccess
(int)
Level of membership to enter the hub's chat room.
canChatKick
(int)
Level of membership to kick users from the hub's chat room.
canChatBan
(int)
Level of membership to ban users from using the hub's chat room.
canChatInvite
(int)
Level of membership to invite users to use the hub's chat room.
canPostComments
(int)
Level of membership to post comments in the hub.
canDeleteComments
(int)
Level of membership to delete comments in the hub.

Examples

Community Hub: Seg Test Group

GET https://api.steampowered.com/ISteamHub/GetPermissions/v0001/?guid=4178173
{
    "response": {
        "success": 1,
        "message": "success",
        "guid": 4178173,
        "appid": 0,
        "permissions": {
            "inviteonly": 0,
            "canEditProps": 0,
            "canMakeOfficer": 0,
            "canSchedule": 0,
            "canAnnounce": 0,
            "canPoTW": 0,
            "canInvite": 0,
            "canKickMembers": 0,
            "canChatAccess": 0,
            "canChatKick": 0,
            "canChatBan": 0,
            "canChatInvite": 0,
            "canPostComments": 0,
            "canDeleteComments": 0
        }
    }
}
<?xml version="1.0"?>
<!DOCTYPE response>
<response>
  <success>1</success>
  <message>success</message>
  <guid>4178173</guid>
  <appid>0</appid>
  <permissions>
    <inviteonly>0</inviteonly>
    <canEditProps>0</canEditProps>
    <canMakeOfficer>0</canMakeOfficer>
    <canSchedule>0</canSchedule>
    <canAnnounce>0</canAnnounce>
    <canPoTW>0</canPoTW>
    <canInvite>0</canInvite>
    <canKickMembers>0</canKickMembers>
    <canChatAccess>0</canChatAccess>
    <canChatKick>0</canChatKick>
    <canChatBan>0</canChatBan>
    <canChatInvite>0</canChatInvite>
    <canPostComments>0</canPostComments>
    <canDeleteComments>0</canDeleteComments>
  </permissions>
</response>
"response"
{
	"success"	"1"
	"message"	"success"
	"guid"	"4178173"
	"appid"	"0"
	"permissions"
	{
		"inviteonly"	"0"
		"canEditProps"	"0"
		"canMakeOfficer"	"0"
		"canSchedule"	"0"
		"canAnnounce"	"0"
		"canPoTW"	"0"
		"canInvite"	"0"
		"canKickMembers"	"0"
		"canChatAccess"	"0"
		"canChatKick"	"0"
		"canChatBan"	"0"
		"canChatInvite"	"0"
		"canPostComments"	"0"
		"canDeleteComments"	"0"
	}
}