Steam hub

Steam Community Hub API

The hub's live player counts, with the access state made explicit.

GET /v1/steam/apps/{appId}/community

1 credit Failed requests are free A not-found answer is still charged

About this endpoint

GET /v1/steam/apps/{appId}/community returns data.hubAccess, data.hubAppId, data.name, data.url, data.inGame and data.inGroupChat. hubAccess is open when the hub is available and its counts are included, mature_content_check when a mature-content confirmation is required, login_required when the hub is shown only to signed-in users, and none when the app exists but has no hub.

hubAppId is the app whose hub this is. DLC and demos share their full game's hub, so it can differ from appId. inGame and inGroupChat are set only when hubAccess is open. The community routes are rate limited more tightly than the store and app routes, so build in a retry and do not poll this route aggressively.

Steam Community Hub API FAQ

How do I get a Steam app's community hub data?

Call GET /v1/steam/apps/{appId}/community. Read data.hubAccess first, then data.inGame and data.inGroupChat when it is open. data.name and data.url describe the hub.

What do the hubAccess values mean?

open means the hub is available and the counts are included. mature_content_check means a mature-content confirmation is required and the counts are not included. login_required means the hub is visible only to signed-in users. none means the app has no hub.

Why is hubAppId different from appId?

DLC and demos use their full game's community hub. The route reports the app whose hub this is in hubAppId, so you can group related ids together.

Why did my community request take longer?

The community routes allow fewer requests per minute than the store and app routes. Space calls out, retry a temporary refusal after a short delay, and avoid using this route as a high-frequency player counter. The players route is the cheaper live count.

How many credits does a community hub lookup cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.