Sync Steam achievements
Overview
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:
| Request | Endpoint |
|---|---|
| Unlock Steam achievements | PUT /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:
- Setting off
- Setting on
appId in the request | Result |
|---|---|
| Not sent | Accepted. AGS uses the configured App ID. |
| Matches the configured App ID | Accepted. |
| Different from the configured App ID | Rejected with error 39129. |
appId in the request | Result |
|---|---|
In the appIds list | Accepted. The unlock goes to that app's achievements. |
Not in the appIds list | Rejected with error 39129. |
| Not sent | Rejected with error 39223. AGS does not fall back to the default app. |
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.
- C# Extend SDK
- Go Extend SDK
- Java Extend SDK
- Python Extend SDK
Coming soon
Coming soon
Coming soon
Coming soon