
Steam
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Connect Steam to PostHog to sync your data into the PostHog data warehouse for analysis and modeling.
Sync the games, playtime, achievements and friends of a list of Steam players.
Create a key on the Steam Web API key page. Each player's profile and game details must be public, or Steam returns no games for them. The friends table needs a public friend list.
The tables identify each player by an opaque key. They hold no Steam ID, name, or location.
Steam reports playtime totals, not sessions. Sync the playtime_snapshots table daily and subtract consecutive days to get the time played on each day.
Configuration
| Option | Description |
|---|---|
Steam Web API keyType: password Required: True | |
Steam IDsType: textarea Required: True | The 17-digit Steam ID of each player, separated by commas or new lines. |
Linking Steam to PostHog
- Go to the Data pipeline page in PostHog
- Click New source and select Steam
- Fill in the required configuration fields
- Click Next, select the tables you want to sync, and then press Import
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
players | One row for each Steam player listed on the source. | Full refresh | — | — |
owned_games | One row for each game a listed player owns or played for free. | Full refresh | — | — |
playtime_snapshots | One row per player, game and day for each game played in the last two weeks. Subtract the total of the previous day to get the minutes played on a day. | Incremental, Full refresh | snapshot_date | — |
player_achievements | One row per player, game and achievement for each played game that has achievements. Locked achievements are included with achieved set to false. | Full refresh | — | — |
friends | One row for each friend of a listed player whose friend list is public. | Full refresh | — | — |
current_players | Number of players in each game that a listed player owns, read at each sync. Each sync adds one row per game, so the rows over time are a history of concurrent players. | Incremental, Full refresh | captured_at | — |
global_achievement_percentages | Percentage of the game's players who unlocked each achievement, for each game with achievements that a listed player owns. | Full refresh | — | — |





