publisherQuery only supports calls from partner services.
Updates and improvements in publisherQuery (Collections Query v9)
publisherQuery is the latest Collections Query API (v9). If migrating from b2bLicensePreview (v8), review this section for behavior differences. publisherQuery has the following changes and improvements over b2bLicensePreview:- Ability to query for a user’s XBOX Game Pass subscription status
- Requires a predefined list of products to return. A best practice, but not required with v8 b2bLicensePreview. Titles who didn’t follow this best practice often had post-release issues where the request would timeout due to the large scope of content based on their query parameters. This prevented users from getting in-game credit until the game’s service was updated to specify which ProductIds they wanted within the query request.
- Streamlined response data fields to remove unused or unnecessary values
- Streamlined request parameters based on developer feedback
- Market - All requests have context for all regions in publisherQuery
- ExpandSatisfyingItems - All results expand satisfying entitlements in publisherQuery
- EntitlementsFilter - Not used as a predefined list of productIds of the query are required
publisherQuery doesn’t support LegacyProductIds (ProductIds generated from the retired XBOX Developer Portal and used as ProductId from the XBOX Inventory service).
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
Request syntax
Request header
Request body
The
ProductSkuId object contains the following parameters.
Request example
The v9 publisherQuery API supports a maximum of 100 productSkuIds per request. Providing more than 100 productIds in the productSkuIds the API returns an HTTP 400 error.
Default
maxPageSize is 100, but in the example it’s lower to demonstrate requesting the remaining items.Response
Response body
The
PublisherQueryItemContractV9 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 (controlled by the maxPageSize), your initial query response has a continuationToken. You can then use this continuationToken in a follow-up request by adding the continuation token to a copy of the previous request body. Example continuation request: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.
