For release notes about service releases and product updates, see the release notes section on PlayFab’s public GitHub repository
2604.0.1
Date: September 4, 2026Breaking changes
- Removed
PFInventoryGetMicrosoftStoreAccessTokensAsync, its result functions, and its request and response types after the service API was retired. - Removed
PFSegmentsServerGetPlayersInSegmentAsync, its result functions, and its supporting types after the service API was retired. - Removed the obsolete
entitymember fromPFAuthenticationGetEntityRequest.PFAuthenticationGetEntityAsyncnow issues a token for the calling entity. - Renamed two Account Management request types to distinguish the Client and Server models:
PFAccountManagementUnlinkAppleRequestis nowPFAccountManagementClientUnlinkAppleRequest.PFAccountManagementUnlinkGameCenterAccountRequestis nowPFAccountManagementClientUnlinkGameCenterAccountRequest.
- Removed the retired
E_PF_COPILOT_DISABLED,E_PF_COPILOT_INVALID_REQUEST,E_PF_GET_PLAYERS_IN_SEGMENT_DEPRECATED, andE_PF_GET_PLAYERS_IN_SEGMENT_RATE_LIMIT_EXCEEDEDerror codes. - Changed the underlying type of
PFGameSaveInitOptionsfromuint32_ttouint64_t. - Added values to
PFMultiplayerServerAzureVmSize. Existing values after the insertion points have new numeric representations, so applications shouldn’t persist or transmit the numeric value of this enumeration across SDK versions.
API updates
- Added the optional
namespaceWidemember toPFFriendsClientGetFriendsListRequestandPFFriendsServerGetFriendsListRequest. It includes friends from the same namespace who haven’t signed in to the current title. - Added PlayStation Network authentication-version and sandbox support through new
authVersion,sandboxId, andpsnSandboxIdmembers on the related Authentication, Account Management, and user-information models. - Added
issuertoPFAccountManagementGetPlayFabIDsFromNintendoServiceAccountIdsRequest. - Added statistics data to entity profiles through
includeStatisticsand the newPFStatisticColumn,PFStatisticColumnCollection, andPFStatisticColumnCollectionDictionaryEntrytypes. - Added
aggregationTargetEntityKeystoPFStatisticsStatisticUpdateand added thePFStatisticAggregationMethodenumeration. - Added
expirationTimestamptoPFInventoryRedemptionSuccess,regiontoPFMultiplayerServerRequestPartyServiceResponse, and additional Azure VM sizes. - Added service error codes for new PlayStation Network, Nintendo, Economy, Experiments, Statistics, Segments, entity-membership, IP-address, and Game Save conditions.
PFEntityRegisterTokenRefreshedEventHandlernow accepts an optional task queue.- Added
E_PF_GAMESAVE_OPERATION_IN_PROGRESSfor Game Save operations rejected because another mutually exclusive operation is in progress. - Added
PF_GAMESAVE_MAX_SHORT_SAVE_DESCRIPTION_LENGTH, which defines the maximum accepted short save-description length as 768 characters.
Runtime and platform updates
- Fixed
PFUninitializeAsynchanging while an internal HTTP operation or event-pipeline flush is in progress. - Added the SDK version to the trace log during initialization.
- Updated
PlayFab::Wrappers::Exception::what()to include theHRESULTin its message. - Exported
PF_APIsymbols with default visibility on iOS and macOS, and fixed a macOS launch crash when using the Apple Unified SDK. - Fixed sized
operator deleteoverrides on Clang-based toolchains so custom memory hooks are honored. - Updated GDK projects to use the
x64project platform required by the GDK 2510 layout and added support for retargeting projects to the Visual Studio 2026v145toolset. - Pinned the Android
com.google.android.gms:play-services-games-v2dependency to version 21.0.0 to retainminSdkVersion 21compatibility.
Game Save updates
- Fixed non-PlayFab blob-transfer failures being reported as success. HTTP failures now return a failing
HRESULTinstead of allowing a manifest to be finalized against a blob that wasn’t written. - Fixed data-loss and synchronization issues involving stale extended-manifest URLs, incomplete remote file sets, folder deletion during download, missing
localstate.json, and marker-file creation for new saves. - Fixed upload, locking, and conflict failures, including infinite relock loops, stale manifest versions, incorrect base-version chains, conflict-loser selection, mishandled nonretryable service errors, and unnecessarily slow uploads after directory deletion.
- Fixed GDK memory corruption and races in shared Game Save context management, and added validation that prevents extended-manifest paths from escaping the save folder.
- Restored title write access to the save folder when synchronization enters the
Uploadingstate. Original files are read only duringPreparingForUpload. - Clarified progress behavior:
PFGameSaveFilesUiProgressCallbackreports state transitions, whilePFGameSaveFilesUiProgressGetProgresscan be polled for byte-level progress. A total of zero now means that the total is unknown. - Fixed GRTS cancellation and offline behavior, accepted forward-slash paths produced by engines such as Unreal Engine, and corrected several Windows and GDK initialization, shutdown, device-identity, and save-loading failures.
- Fixed Game Save telemetry identifying Steam Deck devices incorrectly.
2504.0.0
Date: April 22, 2025- Migrated JSON parsing from rapidjson to nlohmann::json for improved security and maintainability.
- Addressed an issue where initializing PFCore overwrites the trace callback set by the title.
- Changes to the memory hook functions, adding a new API to retrieve default memory hooks and modifying existing memory allocation functions to include a memory type ID.
- Fixed a bug related to tracing cleanup when multiple clients are involved.
- Enabled the PFAccountManagementSetDisplayNameAsync API in PlayFab.C.
- Introduced custom memory allocation for the nlohmann JSON library and global overrides for new/delete operators.
2410.0.0
Date: October 4, 2024- Added public headers, source, and libraries for use with the Microsoft GDK to the GitHub release
- The http library, libHttpClient, is now a dynamic library dependency on all platforms. This library must be included in the game’s shipped package for PlayFab Services to function.
- Added public preview APIs for Leaderboards and Statistics
- Added authenticationToken optional parameter authenticationToken to PFAuthenticationLoginWithFacebookRequest
- Added support for new service error codes
- Removed OfferId from redeem responses in the Economy API. Added the new field MarketplaceAlternateId instead. Callers should move to the new field, while the service will continue to respond with both fields for backward compatibility.
- Resolved an issue with PFFriendsExternalFriendSources not allowing multiple selections
2406.0.0
Date: July 2, 2024- Added support for optional gzip compression to PFEventPipelineConfig for Linux and Android
- Added support for automatic response gzip compression (and decompression) using PFHttpSettings
- Enable print truncation when attempting to log XCurl traces
- Fixed various static code analysis warnings
2403.0.0
Date: February 28, 2024- Release of new SDK projections with support for Linux, Android, iOS and macOS. The new APIs being exposed with this release are:
- For Android:
- LoginWithFacebook
- ClientLinkGoogleAccount
- ClientLinkGooglePlayGamesServicesAccount
- ClientUnlinkGoogleAccount
- ClientUnlinkGooglePlayGamesServicesAccount
- ClientAndroidDevicePushNotificationRegistration
- RedeemGooglePlayInventoryItems
- For iOS:
- LoginWithFacebook
- ClientLinkApple
- ClientUnlinkApple
- ClientLinkGameCenterAccount
- ClientUnlinkGameCenterAccount
- ClientRegisterForIOSPushNotification
- RedeemAppleAppStoreInventoryItems
- For Android:
- Added support for Event Buffering in Event pipelines.
2310.0.1
Date: September 28, 2023- Added PFAccountManagementServerLinkNintendoServiceAccountSubjectAsync to Win32
2310.0.0
Date: September 28, 2023- Added support for Nintendo Switch (see Request access for secured SDKs and samples - PlayFab | Microsoft Learn to request access)
- Added optional gzip compressionLevel to PFEventPipelineConfig
- Removed TelemetryKey management calls from PFEvents
- Added missing Legacy PFCloudScript Client calls:
- ClientExecuteCloudScript
- ExecuteEntityCloudScript
- Added missing PFAccountManagement Client calls:
- ClientAddOrUpdateContactEmail
- ClientAddUsernamePassword
- ClientGetPlayFabIDsFromFacebookIDs
- ClientGetPlayFabIDsFromFacebookInstantGamesIds
- ClientGetPlayFabIDsFromGameCenterIDs
- ClientGetPlayFabIDsFromGoogleIDs
- ClientGetPlayFabIDsFromGooglePlayGamesPlayerIDs
- ClientGetPlayFabIDsFromKongregateIDs
- ClientGetPlayFabIDsFromNintendoServiceAccountIds
- ClientGetPlayFabIDsFromNintendoSwitchDeviceIds
- ClientGetPlayFabIDsFromPSNAccountIDs
- ClientGetPlayFabIDsFromTwitchIDs
- ClientLinkAndroidDeviceID
- ClientLinkApple
- ClientLinkFacebookAccount
- ClientLinkFacebookInstantGamesId
- ClientLinkGameCenterAccount
- ClientLinkGoogleAccount
- ClientLinkGooglePlayGamesServicesAccount
- ClientLinkIOSDeviceID
- ClientLinkKongregate
- ClientLinkNintendoServiceAccount
- ClientLinkNintendoSwitchDeviceId
- ClientLinkPSNAccount
- ClientLinkTwitch
- ClientRemoveContactEmail
- ClientSendAccountRecoveryEmail
- ClientUnlinkAndroidDeviceID
- ClientUnlinkApple
- ClientUnlinkFacebookAccount
- ClientUnlinkFacebookInstantGamesId
- ClientUnlinkGameCenterAccount
- ClientUnlinkGoogleAccount
- ClientUnlinkGooglePlayGamesServicesAccount
- ClientUnlinkIOSDeviceID
- ClientUnlinkKongregate
- ClientUnlinkNintendoServiceAccount
- ClientUnlinkNintendoSwitchDeviceId
- ClientUnlinkPSNAccount
- ClientUnlinkTwitch
- ClientUpdateUserTitleDisplayName
- Added many calls intended for use by game servers (only for Win32)
- PFAuthentication
- ServerLoginWithServerCustomId
- ServerLoginWithSteamId
- ServerLoginWithXbox
- ServerLoginWithXboxId
- AuthenticateGameServerWithCustomId
- Delete
- GetEntity
- ValidateEntityToken
- PFAccountManagement
- ServerBanUsers
- ServerDeletePlayer
- ServerGetPlayerCombinedInfo
- ServerGetPlayerProfile
- ServerGetPlayFabIDsFromFacebookIDs
- ServerGetPlayFabIDsFromFacebookInstantGamesIds
- ServerGetPlayFabIDsFromNintendoServiceAccountIds
- ServerGetPlayFabIDsFromNintendoSwitchDeviceIds
- ServerGetPlayFabIDsFromPSNAccountIDs
- ServerGetPlayFabIDsFromSteamIDs
- ServerGetPlayFabIDsFromTwitchIDs
- ServerGetPlayFabIDsFromXboxLiveIDs
- ServerGetServerCustomIDsFromPlayFabIDs
- ServerGetUserAccountInfo
- ServerGetUserBans
- ServerLinkNintendoServiceAccount
- ServerLinkNintendoSwitchDeviceId
- ServerLinkPSNAccount
- ServerLinkServerCustomId
- ServerLinkSteamId
- ServerLinkXboxAccount
- ServerRevokeAllBansForUser
- ServerRevokeBans
- ServerSendCustomAccountRecoveryEmail
- ServerSendEmailFromTemplate
- ServerUnlinkNintendoServiceAccount
- ServerUnlinkNintendoSwitchDeviceId
- ServerUnlinkPSNAccount
- ServerUnlinkServerCustomId
- ServerUnlinkSteamId
- ServerUnlinkXboxAccount
- ServerUpdateAvatarUrl
- ServerUpdateBans
- GetTitlePlayersFromXboxLiveIDs
- PFCloudScript
- ServerExecuteCloudScript
- PFFriends
- ServerAddFriend
- ServerGetFriendsList
- ServerRemoveFriend
- ServerSetFriendTags
- PFInventory
- GetTransactionHistory
- PFLocalization
- GetLanguageList
- PFPlatformSpecific
- ServerAwardSteamAchievement
- PFPlayerDataManagement
- ServerGetUserData
- ServerGetUserInternalData
- ServerGetUserPublisherData
- ServerGetUserPublisherInternalData
- ServerGetUserPublisherReadOnlyData
- ServerGetUserReadOnlyData
- ServerUpdateUserData
- ServerUpdateUserInternalData
- ServerUpdateUserPublisherData
- ServerUpdateUserPublisherInternalData
- ServerUpdateUserPublisherReadOnlyData
- ServerUpdateUserReadOnlyData
- PFPushNotifications
- ServerSendPushNotification
- ServerSendPushNotificationFromTemplate
- PFSegments
- ServerAddPlayerTag
- ServerGetAllSegments
- ServerGetPlayerSegments
- ServerGetPlayersInSegment
- ServerGetPlayerTags
- ServerRemovePlayerTag
- PFTitleDataManagement
- ServerGetPublisherData
- ServerGetTime
- ServerGetTitleData
- ServerGetTitleInternalData
- ServerGetTitleNews
- ServerSetPublisherData
- ServerSetTitleData
- ServerSetTitleInternalData
- PFAuthentication
2306.0.0
Date: July 26, 2023- Initial release of the SDK with support for Win32 and GDK
