Connect your Steamworks account
A Steamworks connection lets LevelMetrics read your real sales and wishlist numbers for the apps you choose, instead of the public estimate we show everyone else. It takes about two minutes to set up and the key we ask for cannot touch your Steamworks account beyond that.
What we read
With a connected key, LevelMetrics pulls two things per app: daily sales (units, gross and net revenue, refunds, by country and platform) and daily wishlist activity (adds, deletes, purchases, gifts). We use two Steamworks Web API permissions to do this: General and Financial. We never ask for Microtransactions or Economy, and a key granted only those two permissions cannot manage your app, change prices, issue items, or do anything beyond report numbers back to us.
Create the key in Steamworks
This has to be done by a Steamworks admin on your team. Steamworks scopes Web API keys to a group of apps rather than to a single app, so the first step is creating a group.
- Log in to Steamworks with an admin account for your organization.
- Go to Users & Permissions and open Manage Groups.
- Create a new group and give it a name that makes its purpose obvious later, for example "LevelMetrics API".
- Click Add an application to this group, type the game's name and pick the entry that looks like "Shores of Dread [3969370]". Do this for every app you want LevelMetrics to see, including any DLC, demos, and soundtracks you track. Steamworks treats each of those as its own app ID, separate from the base game, and a key only sees the apps in its group: a game that is missing here is the most common reason a key is rejected or a listing shows no sales.
- Inside the group, choose Create WebAPI Key. The dialog lists four permissions in this order: General (tick it), Microtransactions (leave off), Economy (leave off) and Financial (tick it). We never ask for the two in the middle.
- Leave the IP whitelist empty for now. We do not publish fixed server addresses yet, and a whitelist that does not include our servers makes Steam reject our requests.
- Select Save Changes to create the key.
- Copy the key from the right-hand sidebar. Steamworks only shows the full key here, so copy it now.
Paste it into LevelMetrics
Go to /app/account/steamworks and paste the key in. Because the permission lives on the group, not on a person, we do not need any Steamworks user added, just the key.
What we check when you paste it
Before we save anything, we call Steamworks with your key to confirm it works and can see the data we need. If the key is invalid, has been revoked, or is a personal Steam Web API key rather than a publisher key from a Steamworks group, we tell you right away instead of storing it, and we show what Steam answered. If the key is valid but was created without the Financial permission, we show a "missing Financial permission" error: the fix is to go back into Steamworks, edit the key's group, tick Financial, and paste the key again. If Steamworks itself rate-limits the check, we ask you to try again in a moment rather than guessing at an answer.
Apps added later
If you add a new app to your Steamworks catalog after creating the key, it will not show up in LevelMetrics until you also add it to the group the key belongs to. We re-check the list of apps your key can see on every sync, so once an app is added to the group, we pick it up automatically on the next sync and prompt you to add it as a listing.
Security
Your key is encrypted at rest with AES-256-GCM before it touches our database, and it is never written to logs. We only ever send it to Steam's own Web API, never anywhere else. If you disconnect your Steamworks account, we delete the key immediately and remove every row of sales and wishlist data we had ingested for it.
A few notes on the data
- Sales dates are in Pacific time, the same as Steamworks itself reports them.
- Wishlist dates are in GMT, a different day boundary than sales, so the two should not be lined up day for day.
- All money figures are in US dollars, regardless of the currency a sale happened in.
- Steam sometimes recalculates an earlier day's sales after the fact, for example when a refund or a chargeback settles late. When that happens, we replace our copy of that whole day with Steam's corrected numbers, so a past day's totals can shift slightly after we first synced it.