There is no supported way for a service-to-service or backend flow to determine whether a given entitlement is being used via Xbox Home console sharing versus being directly owned by the signed-in account.
From the provided documentation:
- Entitlements can come from direct purchase, satisfying products (bundles/subscriptions), or device sharing, but the entitlement type is not exposed to clients, and shared entitlements are not exposed to service APIs:
- Client APIs: return only active entitlements and can include direct, shared, and satisfying entitlements, but the entitlement type is invisible.
- Service APIs: can return all entitlement states and distinguish direct vs satisfying, but cannot return shared entitlements because they lack device context.
- For durable add-ons, titles must rely on
XStoreAcquireLicenseand licensing APIs to enforce access; games must not infer access from direct entitlement of the signed-in account. This is specifically to ensure correct behavior with Home console sharing. - The
isSharedflag in the license token is documented as always returningfalseand not indicating whether the license is shared. - The
sharingSourcefield in Collections is documented as alwaysNonefor service-to-service calls, because those calls are scoped to directly owned entitlements only.
The only mechanism described that can hint at sharing is the id in the license token:
-
idis a unique identifier for the license instance and can be used to identify and track the license being used, including across logins. - Reappearing
idvalues across sessions or users can indicate license sharing or reuse.
However, this signal is only available via client-side calls to XStoreQueryLicenseTokenAsync, and the documentation explicitly positions it as an inference mechanism ("can indicate") rather than an authoritative sharing flag. There is no documented server-to-server API that:
- Returns shared entitlements, or
- Explicitly tells whether a license is being used via Home console sharing.
Given the documentation, the only available technical approach for detecting potential Home console sharing is the one already considered:
- Have the client call
XStoreQueryLicenseTokenAsync. - Extract the
idfrom the license token. - Compare that
idacross accounts to detect reuse of the same license instance.
There is no alternative, fully server-side, supported method documented to:
- Query Home console sharing state, or
- Directly distinguish shared vs direct ownership for a given user/license.
Any enforcement logic for bans that depends on Home console sharing therefore must rely on client-provided license token data and the id correlation pattern, with the understanding that this is heuristic and not a dedicated sharing flag.
References: