To avoid response timeouts and long response times, you should always specify the exact products you want in your results by using the
productSkuIds parameter in the request.productSkuIds list results in longer response times that increase based on the total number of entitlements and purchases the user made across XBOX and the Microsoft Store App.
b2bLicensePreview is for calls from partner services.
b2bLicensePreview (Collections v8) vs publisherQuery (Collections v9) to query products
b2bLicensePreview (Collections v8) is the prior Collections service to query user entitlements, but is still available for partner use. publisherQuery (Collections v9) is the latest and provides expanded features such as exposing XBOX Game Pass subscription status. There are still scenarios where partners might want to use b2bLicensePreview such as support for LegacyProductIds used by the XBOX Inventory service. For more information, see the corresponding article Selecting the right Collections Query API for your needsRequest
Prerequisites
Review Prerequisites for service-to-service APIs. This API supports both Microsoft Entra ID and delegated auth X-token auth types. If product configuration isn’t published in Partner Center, calls can succeed but return no results.Request syntax
Request header
Request body
The
ProductSkuId object contains the following parameters.
Request example
Default
maxPageSize is 100, but in the example it’s lower to demonstrate requesting the remaining items.Response
Response body
The
CollectionItemContractV8 object contains the following parameters.
The
TrialInformation object contains the parameters that are shown in the following table.
Product type values and meaning
Product status values and meaning
Product acquisitionType values and meaning
Understanding the results of Satisfied Entitlements with the satisfiedByProductIds field
If the satisfiedByProductIds array is empty, the user has a direct entitlement from a direct purchase to the item.
Otherwise if the satisfiedByProductIds array has one or more ProductIds, the item is entitled to the user from those products (bundles, subscriptions, etc.).
If the user has both a direct and satisfying entitlement to an item, if excludeDuplicates in the request is True then the direct entitlement will take priority and satisfiedByProductIds will be empty.
Response Example
Requesting remaining results with the continuation token
If your query has more results than can be returned in a single response, a continuationToken is provided in the latest response. You use this continuationToken in a follow-up request by adding it to a copy of the previous request body. Example:Even if you specify the excludeDuplicates flag, when using a continuation token it’s possible to get entries of entitlements that have different status. So verify the results for duplicate entries and if they have a status that isn’t Active.
