Skip to main content

Sync Steam achievements

Last updated on November 6, 2026

Overview​

important

When you enable Steam multiple apps, every Steam achievement sync call that omits appId starts to fail, whether it comes from your game server or from an Extend service. Update these callers before you turn it on.

Steam achievement sync is a server-side case. Your game server, or an AGS Extend service that you customize, calls the admin API to unlock Steam achievements. Your game client does not call it.

Steam achievements belong to one app. An achievement that exists in App A does not exist in App B, so AGS must know which app to unlock it in. The caller sends the App ID of the app that the achievement belongs to. The parameter is optional in the API, so existing integrations keep working and are not broken until you turn the setting on. This endpoint accepts appId in the request payload:

RequestEndpoint
Unlock Steam achievementsPUT /platform/admin/namespaces/{namespace}/users/{userId}/achievement/steam

AGS checks the appId before it performs any further logic. The result depends on whether Enable Steam multi app IDs is on or off:

appId in the requestResult
Not sentAccepted. AGS uses the configured App ID.
Matches the configured App IDAccepted.
Different from the configured App IDRejected with error 39129.

This example unlocks an achievement in a specific app. The id is the achievement API name from Steamworks. Replace <YourSteamAppId> with the App ID of the app that the achievement belongs to:

curl -X PUT "https://<YourBaseUrl>/platform/admin/namespaces/<YourNamespace>/users/<AgsUserId>/achievement/steam" \
-H "Authorization: Bearer <GameServerAccessToken>" \
-H "Content-Type: application/json" \
-d '{
"steamUserId": "<SteamId>",
"appId": "<YourSteamAppId>",
"achievements": [
{ "id": "<AchievementApiName>", "value": 1 }
]
}'

Unlock Steam achievements with the Extend SDK​

To unlock Steam achievements from your game server or Extend service, use the following function.

Coming soon