Manage app submissions

The Microsoft Store submission API provides methods you can use to manage submissions for your apps, including gradual package rollouts. For an introduction to the Microsoft Store submission API, including prerequisites for using the API, see Create and manage submissions using Microsoft Store services.

Important

If you use the Microsoft Store submission API to create a submission for an app, be sure to make further changes to the submission only by using the API, rather than the Dev Center dashboard. If you use the dashboard to change a submission that you originally created by using the API, you will no longer be able to change or commit that submission by using the API. In some cases, the submission could be left in an error state where it cannot proceed in the submission process. If this occurs, you must delete the submission and create a new submission.

Methods for managing app submissions

Use the following methods to get, create, update, commit, or delete an app submission. Before you can use these methods, the app must already exist in your Dev Center account and you must first create one submission for the app in the dashboard. For more information, see the prerequisites.

Method URI Description
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} Get an existing app submission
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/status Get the status of an existing app submission
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions Create a new app submission
PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} Update an existing app submission
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/commit Commit a new or updated app submission
DELETE https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId} Delete an app submission

Create an app submission

To create a submission for an app, follow this process.

  1. If you have not done so already, complete all the prerequisites for the Microsoft Store submission API.

    Note

    Make sure the app already has at least one completed submission with the age ratings information completed.

  2. Obtain an Azure AD access token. You must pass this access token to the methods in the Microsoft Store submission API. After you obtain an access token, you have 60 minutes to use it before it expires. After the token expires, you can obtain a new one.

  3. Create an app submission by executing the following method in the Microsoft Store submission API. This method creates a new in-progress submission, which is a copy of your last published submission.

    POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions
    

    The response body contains an app submission resource that includes the ID of the new submission, the shared access signature (SAS) URI for uploading any related files for the submission to Azure Blob storage (such as app packages, listing images, and trailer files), and all of the data for the new submission (such as the listings and pricing information).

    Note

    A SAS URI provides access to a secure resource in Azure storage without requiring account keys. For background information about SAS URIs and their use with Azure Blob storage, see Shared Access Signatures, Part 1: Understanding the SAS model and Shared Access Signatures, Part 2: Create and use a SAS with Blob storage.

  4. If you are adding new packages, listing images, or trailer files for the submission, prepare the app packages and prepare the app screenshots, images, and trailers. Add all of these files to a ZIP archive.

    Note

    The ability to submit a trailer for your app submission using this API is currently not available to all developer accounts. If your account does not have access to this resource, the trailers array in the app submission resource is null when you get or create a submission.

  5. Revise the app submission data with any required changes for the new submission, and execute the following method to update the app submission.

    PUT https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}
    

    Note

    If you are adding new files for the submission, make sure you update the submission data to refer to the name and relative path of these files in the ZIP archive.

  6. If you are adding new packages, listing images, or trailer files for the submission, upload the ZIP archive to Azure Blob storage using the SAS URI that was provided in the response body of the POST method you called earlier. There are different Azure libraries you can use to do this on a variety of platforms, including:

    The following C# code example demonstrates how to upload a ZIP archive to Azure Blob storage using the CloudBlockBlob class in the Azure Storage Client Library for .NET. This example assumes that the ZIP archive has already been written to a stream object.

    string sasUrl = "https://productingestionbin1.blob.core.windows.net/ingestion/26920f66-b592-4439-9a9d-fb0f014902ec?sv=2014-02-14&sr=b&sig=usAN0kNFNnYE2tGQBI%2BARQWejX1Guiz7hdFtRhyK%2Bog%3D&se=2016-06-17T20:45:51Z&sp=rwl";
    Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob blockBob =
       new Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob(new System.Uri(sasUrl));
    await blockBob.UploadFromStreamAsync(stream);
    
  7. Commit the app submission by executing the following method. This will alert Dev Center that you are done with your submission and that your updates should now be applied to your account.

    POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/commit
    
  8. Check on the commit status by executing the following method to get the status of the app submission.

    GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/status
    

    To confirm the submission status, review the status value in the response body. This value should change from CommitStarted to either PreProcessing if the request succeeds or to CommitFailed if there are errors in the request. If there are errors, the statusDetails field contains further details about the error.

  9. After the commit has successfully completed, the submission is sent to the Store for ingestion. You can continue to monitor the submission progress by using the previous method, or by visiting the Dev Center dashboard.

Game options and trailers

There are two sets of advanced listing options that may not be available in some submissions: game options and trailers.

These listing options were added after the Microsoft Store submission API was first released to developers. If you created a submission for an app via the submission API before these listing options were introduced and this submission is still in progress, you will not be able to access these listing options until you successfully commit the submission or you delete it.

To determine whether you can access these listing options for a given app when using the submission API, use the get an app method and check whether the hasAdvancedListingPermission field of the Application resource is true. If you cannot access these listing options for an app, the gamingOptions and trailers values in your app submission resource are null when you create an app submission.

Code examples for managing app submissions

The following articles provide detailed code examples that demonstrate how to create an app submission in several different programming languages:

Note

In addition to the code examples listed above, we also provide an open-source PowerShell module which implements a command-line interface on top of the Microsoft Store submission API. This module is called StoreBroker. You can use this module to manage your app, flight, and add-on submissions from the command line instead of calling the Microsoft Store submission API directly, or you can simply browse the source to see more examples for how to call this API. The StoreBroker module is actively used within Microsoft as the primary way that many first-party applications are submitted to the Store. For more information, see our StoreBroker page on GitHub.

Methods for managing a gradual package rollout

You can gradually roll out the updated packages in an app submission to a percentage of your app’s customers on Windows 10. This allows you to monitor feedback and analytic data for the specific packages to make sure you’re confident about the update before rolling it out more broadly. You can change the rollout percentage (or halt the update) for a published submission without having to create a new submission. For more details, including instructions for how to enable and manage a gradual package rollout in the Dev Center dashboard, see this article.

To programmatically enable a gradual package rollout for an app submission, follow this process using methods in the Microsoft Store submission API:

  1. Create an app submission or get an existing app submission.
  2. In the response data, locate the packageRollout resource, set the isPackageRollout field to true, and set the packageRolloutPercentage field to the percentage of your app's customers who should get the updated packages.
  3. Pass the updated app submission data to the update an app submission method.

After a gradual package rollout is enabled for an app submission, you can use the following methods to programmatically get, update, halt, or finalize the gradual rollout.

Method URI Description
GET https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/packagerollout Get the gradual rollout info for an app submission
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/updatepackagerolloutpercentage Update the gradual rollout percentage for an app submission
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/haltpackagerollout Halt the gradual rollout for an app submission
POST https://manage.devcenter.microsoft.com/v1.0/my/applications/{applicationId}/submissions/{submissionId}/finalizepackagerollout Finalize the gradual rollout for an app submission

Data resources

The Microsoft Store submission API methods for managing app submissions use the following JSON data resources.

App submission resource

This resource describes an app submission.

{
  "id": "1152921504621243540",
  "applicationCategory": "BooksAndReference_EReader",
  "pricing": {
    "trialPeriod": "FifteenDays",
    "marketSpecificPricings": {},
    "sales": [],
    "priceId": "Tier2",
    "isAdvancedPricingModel": true
  },
  "visibility": "Public",
  "targetPublishMode": "Manual",
  "targetPublishDate": "1601-01-01T00:00:00Z",
  "listings": {
    "en-us": {
      "baseListing": {
        "copyrightAndTrademarkInfo": "",
        "keywords": [
          "epub"
        ],
        "licenseTerms": "",
        "privacyPolicy": "",
        "supportContact": "",
        "websiteUrl": "",
        "description": "Description",
        "features": [
          "Free ebook reader"
        ],
        "releaseNotes": "",
        "images": [
          {
            "fileName": "contoso.png",
            "fileStatus": "Uploaded",
            "id": "1152921504672272757",
            "description": "Main page",
            "imageType": "Screenshot"
          }
        ],
        "recommendedHardware": [],
        "title": "Contoso ebook reader"
      },
      "platformOverrides": {
        "Windows81": {
          "description": "Ebook reader for Windows 8.1"
        }
      }
    }
  },
  "hardwarePreferences": [
    "Touch"
  ],
  "automaticBackupEnabled": false,
  "canInstallOnRemovableMedia": true,
  "isGameDvrEnabled": false,
  "gamingOptions": [],
  "hasExternalInAppProducts": false,
  "meetAccessibilityGuidelines": true,
  "notesForCertification": "",
  "status": "PendingCommit",
  "statusDetails": {
    "errors": [],
    "warnings": [],
    "certificationReports": []
  },
  "fileUploadUrl": "https://productingestionbin1.blob.core.windows.net/ingestion/387a9ea8-a412-43a9-8fb3-a38d03eb483d?sv=2014-02-14&sr=b&sig=sdd12JmoaT6BhvC%2BZUrwRweA%2Fkvj%2BEBCY09C2SZZowg%3D&se=2016-06-17T18:32:26Z&sp=rwl",
  "applicationPackages": [
    {
      "fileName": "contoso_app.appx",
      "fileStatus": "Uploaded",
      "id": "1152921504620138797",
      "version": "1.0.0.0",
      "architecture": "ARM",
      "languages": [
        "en-US"
      ],
      "capabilities": [
        "ID_RESOLUTION_HD720P",
        "ID_RESOLUTION_WVGA",
        "ID_RESOLUTION_WXGA"
      ],
      "minimumDirectXVersion": "None",
      "minimumSystemRam": "None",
      "targetDeviceFamilies": [
        "Windows.Mobile min version 10.0.10240.0"
      ]
    }
  ],
  "packageDeliveryOptions": {
    "packageRollout": {
        "isPackageRollout": false,
        "packageRolloutPercentage": 0.0,
        "packageRolloutStatus": "PackageRolloutNotStarted",
        "fallbackSubmissionId": "0"
    },
    "isMandatoryUpdate": false,
    "mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
  },
  "enterpriseLicensing": "Online",
  "allowMicrosoftDecideAppAvailabilityToFutureDeviceFamilies": true,
  "allowTargetFutureDeviceFamilies": {
    "Desktop": false,
    "Mobile": true,
    "Holographic": true,
    "Xbox": false,
    "Team": true
  },
  "friendlyName": "Submission 2",
  "trailers": []
}

This resource has the following values.

Value Type Description
id string The ID of the submission.
applicationCategory string A string that specifies the category and/or subcategory for your app. Categories and subcategories are combined into a single string with the underscore '_' character, such as BooksAndReference_EReader.
pricing object A pricing resource that contains pricing info for the app.
visibility string The visibility of the app. This can be one of the following values:
  • Hidden
  • Public
  • Private
  • NotSet
targetPublishMode string The publish mode for the submission. This can be one of the following values:
  • Immediate
  • Manual
  • SpecificDate
targetPublishDate string The publish date for the submission in ISO 8601 format, if the targetPublishMode is set to SpecificDate.
listings object A dictionary of key and value pairs, where each key is a country code and each value is a listing resource that contains listing info for the app.
hardwarePreferences array An array of strings that define the hardware preferences for your app. This can be one of the following values:
  • Touch
  • Keyboard
  • Mouse
  • Camera
  • NfcHce
  • Nfc
  • BluetoothLE
  • Telephony
automaticBackupEnabled boolean Indicates whether Windows can include your app's data in automatic backups to OneDrive. For more information, see App declarations.
canInstallOnRemovableMedia boolean Indicates whether customers can install your app to removable storage. For more information, see App declarations.
isGameDvrEnabled boolean Indicates whether game DVR is enabled for the app.
gamingOptions array An array that contains one gaming options resource that defines game-related settings for the app.

Note:  The ability to configure game options using this API is currently not available to all developer accounts. If your account does not have access to this resource, the gamingOptions value is null. To determine whether you can configure the gamingOptions for an app submission, use the get an app method and check whether the hasAdvancedListingPermission field of the Application resource is true.
hasExternalInAppProducts boolean Indicates whether your app allows users to make purchase outside the Microsoft Store commerce system. For more information, see App declarations.
meetAccessibilityGuidelines boolean Indicates whether your app has been tested to meet accessibility guidelines. For more information, see App declarations.
notesForCertification string Contains notes for certification for your app.
status string The status of the submission. This can be one of the following values:
  • None
  • Canceled
  • PendingCommit
  • CommitStarted
  • CommitFailed
  • PendingPublication
  • Publishing
  • Published
  • PublishFailed
  • PreProcessing
  • PreProcessingFailed
  • Certification
  • CertificationFailed
  • Release
  • ReleaseFailed
statusDetails object A status details resource that contains additional details about the status of the submission, including information about any errors.
fileUploadUrl string The shared access signature (SAS) URI for uploading any packages for the submission. If you are adding new packages, listing images, or trailer files for the submission, upload the ZIP archive that contains the packages and images to this URI. For more information, see Create an app submission.
applicationPackages array An array of application package resources that provide details about each package in the submission.
packageDeliveryOptions object A package delivery options resource that contains gradual package rollout and mandatory update settings for the submission.
enterpriseLicensing string One of the enterprise licensing values values that indicate the enterprise licensing behavior for the app.
allowMicrosftDecideAppAvailabilityToFutureDeviceFamilies boolean Indicates whether Microsoft is allowed to make the app available to future Windows 10 device families.
allowTargetFutureDeviceFamilies object A dictionary of key and value pairs, where each key is a Windows 10 device family and each value is a boolean that indicates whether your app is allowed to target the specified device family.
friendlyName string The friendly name of the submission, as shown in the Dev Center dashboard. This value is generated for you when you create the submission.
trailers array An array that contains up to 15 trailer resources that represent video trailers for the app listing.

Note:  The ability to submit a trailer for your app submission using this API is currently not available to all developer accounts. If your account does not have access to this resource, the trailers value is null. To determine whether you can configure the trailers for an app submission, use the get an app method and check whether the hasAdvancedListingPermission field of the Application resource is true.

Pricing resource

This resource contains pricing info for the app. This resource has the following values.

Value Type Description
trialPeriod string A string that specifies the trial period for the app. This can be one of the following values:
  • NoFreeTrial
  • OneDay
  • TrialNeverExpires
  • SevenDays
  • FifteenDays
  • ThirtyDays
marketSpecificPricings object A dictionary of key and value pairs, where each key is a two-letter ISO 3166-1 alpha-2 country code and each value is a price tier. These items represent the custom prices for your app in specific markets. Any items in this dictionary override the base price specified by the priceId value for the specified market.
sales array Deprecated. An array of sale resources that contain sales information for the app.
priceId string A price tier that specifies the base price for the app.
isAdvancedPricingModel boolean If true, your developer account has access to the expanded set of price tiers from .99 USD to 1999.99 USD. If false, your developer account has access to the original set of price tiers from .99 USD to 999.99 USD. For more information about the different tiers, see price tiers.

Note  This field is read-only.

Sale resource

This resources contains sale info for an app.

Important

The Sale resource is no longer supported, and currently you cannot get or modify the sale data for an app submission using the Microsoft Store submission API. In the future, we will update the Microsoft Store submission API to introduce a new way to programmatically access sales information for app submissions.

  • After calling the GET method to get an app submission, the sales value will be empty. You can continue to use the Dev Center dashboard to get the sale data for your app submission.
  • When calling the PUT method to update an app submission, the information in the sales value is ignored. You can continue to use the Dev Center dashboard to change the sale data for your app submission.

This resource has the following values.

Value Type Description
name string The name of the sale.
basePriceId string The price tier to use for the base price of the sale.
startDate string The start date for the sale in ISO 8601 format.
endDate string The end date for the sale in ISO 8601 format.
marketSpecificPricings object A dictionary of key and value pairs, where each key is a two-letter ISO 3166-1 alpha-2 country code and each value is a price tier. These items represent the custom prices for your app in specific markets. Any items in this dictionary override the base price specified by the basePriceId value for the specified market.

Listing resource

This resource contains listing info for an app. This resource has the following values.

Value Type Description
baseListing object The base listing info for the app, which defines the default listing info for all platforms.
platformOverrides object A dictionary of key and value pairs, where each key is string that identifies a platform for which to override the listing info, and each value is a base listing resource (containing only the values from description to title) that specifies the listing info to override for the specified platform. The keys can have the following values:
  • Unknown
  • Windows80
  • Windows81
  • WindowsPhone71
  • WindowsPhone80
  • WindowsPhone81

Base listing resource

This resource contains base listing info for an app. This resource has the following values.

Value Type Description
copyrightAndTrademarkInfo string Optional copyright and/or trademark info.
keywords array An array of keyword to help your app appear in search results.
licenseTerms string The optional license terms for your app.
privacyPolicy string The URL for the privacy policy for your app.
supportContact string The URL or email address for the support contact info for your app.
websiteUrl string The URL of the web page for your app.
description string The description for the app listing.
features array An array of up to 20 strings that list the features for your app.
releaseNotes string The release notes for your app.
images array An array of image and icon resources for the app listing.
recommendedHardware array An array of up to 11 strings that list the recommended hardware configurations for your app.
minimumHardware string An array of up to 11 strings that list the minimum hardware configurations for your app.
title string The title for the app listing.
shortDescription string Only used for games. This description appears in the Information section of the Game Hub on Xbox One, and helps customers understand more about your game.
shortTitle string A shorter version of your product’s name. If provided, this shorter name may appear in various places on Xbox One (during installation, in Achievements, etc.) in place of the full title of your product.
sortTitle string If your product could be alphabetized in different ways, you can enter another version here. This may help customers find the product more quickly when searching.
voiceTitle string An alternate name for your product that, if provided, may be used in the audio experience on Xbox One when using Kinect or a headset.
devStudio string Specify this value if you want to include a Developed by field in the listing. (The Published by field will list the publisher display name associated with your account, whether or not you provide a devStudio value.)

Image resource

This resource contains image and icon data for an app listing. For more information about images and icons for listing, see App screenshots and images. This resource has the following values.

Value Type Description
fileName string The name of the image file in the ZIP archive that you uploaded for the submission.
fileStatus string The status of the image file. This can be one of the following values:
  • None
  • PendingUpload
  • Uploaded
  • PendingDelete
id string The ID for the image. This value is supplied by Dev Center.
description string The description for the image.
imageType string Indicates the type of the image. The following strings are currently supported.

Screenshot images:

  • Screenshot (use this value for the desktop screenshot)
  • MobileScreenshot
  • XboxScreenshot
  • SurfaceHubScreenshot
  • HoloLensScreenshot

Store logos:

  • StoreLogo9x16
  • StoreLogoSquare
  • Icon (use this value for the 1:1 300 x 300 pixels logo)

Promotional images:

  • PromotionalArt16x9
  • PromotionalArtwork2400X1200

Xbox images:

  • XboxBrandedKeyArt
  • XboxTitledHeroArt
  • XboxFeaturedPromotionalArt

Optional promotional images:

  • SquareIcon358X358
  • BackgroundImage1000X800
  • PromotionalArtwork414X180

Gaming options resource

This resource contains game-related settings for the app. The values in this resource correspond to the game settings for submissions in the Dev Center dashboard.

If you created a submission for an app via the submission API before these listing options were introduced and this submission is still in progress, you will not be able to access these listing options for any submissions for the app until you successfully commit the submission or you delete it. To determine whether you can access these listing options for a given app when using the submission API, use the get an app method and check whether the hasAdvancedListingPermission field of the Application resource is true.

{
  "gamingOptions": [
    {
      "genres": [
        "Games_ActionAndAdventure",
        "Games_Casino"
      ],
      "isLocalMultiplayer": true,
      "isLocalCooperative": true,
      "isOnlineMultiplayer": false,
      "isOnlineCooperative": false,
      "localMultiplayerMinPlayers": 2,
      "localMultiplayerMaxPlayers": 12,
      "localCooperativeMinPlayers": 2,
      "localCooperativeMaxPlayers": 12,
      "isBroadcastingPrivilegeGranted": true,
      "isCrossPlayEnabled": false,
      "kinectDataForExternal": "Enabled"
    }
  ],
}

This resource has the following values.

Value Type Description
genres array An array of one or more of the following strings that describe the genres of the game:
  • Games_ActionAndAdventure
  • Games_CardAndBoard
  • Games_Casino
  • Games_Educational
  • Games_FamilyAndKids
  • Games_Fighting
  • Games_Music
  • Games_Platformer
  • Games_PuzzleAndTrivia
  • Games_RacingAndFlying
  • Games_RolePlaying
  • Games_Shooter
  • Games_Simulation
  • Games_Sports
  • Games_Strategy
  • Games_Word
isLocalMultiplayer boolean Indicates whether the game supports local multiplayer.
isLocalCooperative boolean Indicates whether the game supports local co-op.
isOnlineMultiplayer boolean Indicates whether the game supports online multiplayer.
isOnlineCooperative boolean Indicates whether the game supports online co-op.
localMultiplayerMinPlayers int Specifies the minimum number of players the game supports for local multiplayer.
localMultiplayerMaxPlayers int Specifies the maximum number of players the game supports for local multiplayer.
localCooperativeMinPlayers int Specifies the minimum number of players the game supports for local co-op.
localCooperativeMaxPlayers int Specifies the maximum number of players the game supports for local co-op.
isBroadcastingPrivilegeGranted boolean Indicates whether the game supports broadcasting.
isCrossPlayEnabled boolean Indicates whether the game supports multiplayer sessions between players on Windows 10 PCs and Xbox.
kinectDataForExternal string One of the following string values that indicates whether the game can collect Kinect data and send it to external services:
  • NotSet
  • Unknown
  • Enabled
  • Disabled

Status details resource

This resource contains additional details about the status of a submission. This resource has the following values.

Value Type Description
errors object An array of status detail resources that contain error details for the submission.
warnings object An array of status detail resources that contain warning details for the submission.
certificationReports object An array of certification report resources that provide access to the certification report data for the submission. You can examine these reports for more information if the certification fails.

Status detail resource

This resource contains additional information about any related errors or warnings for a submission. This resource has the following values.

Value Type Description
code string A submission status code that describes the type of error or warning.
details string A message with more details about the issue.

Application package resource

This resource contains details about an app package for the submission.

{
  "applicationPackages": [
    {
      "fileName": "contoso_app.appx",
      "fileStatus": "Uploaded",
      "id": "1152921504620138797",
      "version": "1.0.0.0",
      "architecture": "ARM",
      "languages": [
        "en-US"
      ],
      "capabilities": [
        "ID_RESOLUTION_HD720P",
        "ID_RESOLUTION_WVGA",
        "ID_RESOLUTION_WXGA"
      ],
      "minimumDirectXVersion": "None",
      "minimumSystemRam": "None",
      "targetDeviceFamilies": [
        "Windows.Mobile min version 10.0.10240.0"
      ]
    }
  ],
}

This resource has the following values.

Note

When calling the update an app submission method, only the fileName, fileStatus, minimumDirectXVersion, and minimumSystemRam values of this object are required in the request body. The other values are populated by Dev Center.

Value Type Description
fileName string The name of the package.
fileStatus string The status of the package. This can be one of the following values:
  • None
  • PendingUpload
  • Uploaded
  • PendingDelete
id string An ID that uniquely identifies the package. This value is provided by Dev Center.
version string The version of the app package. For more information, see Package version numbering.
architecture string The architecture of the package (for example, ARM).
languages array An array of language codes for the languages the app supports. For more information, see Supported languages.
capabilities array An array of capabilities required by the package. For more information about capabilities, see App capability declarations.
minimumDirectXVersion string The minimum DirectX version that is supported by the app package. This can be set only for apps that target Windows 8.x; it is ignored for apps that target other versions. This can be one of the following values:
  • None
  • DirectX93
  • DirectX100
minimumSystemRam string The minimum RAM that is required by the app package. This can be set only for apps that target Windows 8.x; it is ignored for apps that target other versions. This can be one of the following values:
  • None
  • Memory2GB
targetDeviceFamilies array An array of strings that represent the device families that the package targets. This value is used only for packages that target Windows 10; for packages that target earlier releases, this value has the value None. The following device family strings are currently supported for Windows 10 packages, where {0} is a Windows 10 version string such as 10.0.10240.0, 10.0.10586.0 or 10.0.14393.0:
  • Windows.Universal min version {0}
  • Windows.Desktop min version {0}
  • Windows.Mobile min version {0}
  • Windows.Xbox min version {0}
  • Windows.Holographic min version {0}

Certification report resource

This resource provides access to the certification report data for a submission. This resource has the following values.

Value Type Description
date string The date and time the report was generated, in in ISO 8601 format.
reportUrl string The URL at which you can access the report.

Package delivery options resource

This resource contains gradual package rollout and mandatory update settings for the submission.

{
  "packageDeliveryOptions": {
    "packageRollout": {
        "isPackageRollout": false,
        "packageRolloutPercentage": 0,
        "packageRolloutStatus": "PackageRolloutNotStarted",
        "fallbackSubmissionId": "0"
    },
    "isMandatoryUpdate": false,
    "mandatoryUpdateEffectiveDate": "1601-01-01T00:00:00.0000000Z"
  },
}

This resource has the following values.

Value Type Description
packageRollout object A package rollout resource that contains gradual package rollout settings for the submission.
isMandatoryUpdate boolean Indicates whether you want to treat the packages in this submission as mandatory for self-installing app updates. For more information about mandatory packages for self-installing app updates, see Download and install package updates for your app.
mandatoryUpdateEffectiveDate date The date and time when the packages in this submission become mandatory, in ISO 8601 format and UTC time zone.

Package rollout resource

This resource contains gradual package rollout settings for the submission. This resource has the following values.

Value Type Description
isPackageRollout boolean Indicates whether gradual package rollout is enabled for the submission.
packageRolloutPercentage float The percentage of users who will receive the packages in the gradual rollout.
packageRolloutStatus string One of the following strings that indicates the status of the gradual package rollout:
  • PackageRolloutNotStarted
  • PackageRolloutInProgress
  • PackageRolloutComplete
  • PackageRolloutStopped
fallbackSubmissionId string The ID of the submission that will be received by customers who do not get the gradual rollout packages.

Note

The packageRolloutStatus and fallbackSubmissionId values are assigned by Dev Center, and are not intended to be set by the developer. If you include these values in a request body, these values will be ignored.

Trailer resource

This resource represents a video trailer for the app listing. The values in this resource correspond to the trailers options for submissions in the Dev Center dashboard.

You can add up to 15 trailer resources to the trailers array in an app submission resource. To upload trailer video files and thumbnail images for a submission, add these files to the same ZIP archive that contains the packages and listing images for the submission, and then upload this ZIP archive to the shared access signature (SAS) URI for the submission. For more information uploading the ZIP archive to the SAS URI, see Create an app submission.

{
  "trailers": [
    {
      "id": "1158943556954955699",
      "videoFileName": "Trailers\\ContosoGameTrailer.mp4",
      "videoFileId": "1159761554639123258",
      "trailerAssets": {
        "en-us": {
          "title": "Contoso Game",
          "imageList": [
            {
              "fileName": "Images\\ContosoGame-Thumbnail.png",
              "id": "1155546904097346923",
              "description": "This is a still image from the video."
            }
          ]
        }
      }
    }
  ]
}

This resource has the following values.

Value Type Description
id string The ID for the trailer. This value is provided by Dev Center.
videoFileName string The name of the trailer video file in the ZIP archive that contains files for the submission.
videoFileId string The ID for the trailer video file. This value is provided by Dev Center.
trailerAssets object A dictionary of key and value pairs, where each key is a language code and each value is a trailer assets resource that contains additional locale-specific assets for the trailer. For more information about the supported language codes, see Supported languages.

Trailer assets resource

This resource contains additional locale-specific assets for a trailer that is defined in a trailer resource. This resource has the following values.

Value Type Description
title string The localized title of the trailer. The title is displayed when the user plays the trailer in full screen mode.
imageList array An array that contains one image resource that provides the thumbnail image for the trailer. You can only include one image resource in this array.

Image resource (for a trailer)

This resource describes the thumbnail image for a trailer. This resource has the following values.

Value Type Description
fileName string The name of the thumbnail image file in the ZIP archive that you uploaded for the submission.
id string The ID for the thumbnail image. This value is provided by Dev Center.
description string The description for the thumbnail image. This value is metadata only, and is not displayed to users.

Enums

These methods use the following enums.

Price tiers

The following values represent available price tiers in the pricing resource resource for an app submission.

Value Description
Base The price tier is not set; use the base price for the app.
NotAvailable The app is not available in the specified region.
Free The app is free.
Tierxxx A string that specifies the price tier for the app, in the format Tierxxxx. Currently, the following ranges of price tiers are supported:

  • If the isAdvancedPricingModel value of the pricing resource is true, the available price tier values for your account are Tier1012 - Tier1424.
  • If the isAdvancedPricingModel value of the pricing resource is false, the available price tier values for your account are Tier2 - Tier96.
To see the complete table of price tiers that are available for your developer account, including the market-specific prices that are associated with each tier, go to the Pricing and availability page for any of your app submissions in the Dev Center dashboard and click the view table link in the Markets and custom prices section (for some developer accounts, this link is in the Pricing section).

Enterprise licensing values

The following values represent the enterprise licensing behavior for the app. For more information about these options, see Organizational licensing options.

Value Description
None Do not make your app available to enterprises with Store-managed (online) volume licensing.
Online Make your app available to enterprises with Store-managed (online) volume licensing.
OnlineAndOffline Make your app available to enterprises with Store-managed (online) volume licensing, and make your app available to enterprises via disconnected (offline) licensing.

Submission status code

The following values represent the status code of a submission.

Value Description
None No code was specified.
InvalidArchive The ZIP archive containing the package is invalid or has an unrecognized archive format.
MissingFiles The ZIP archive does not have all files which were listed in your submission data, or they are in the wrong location in the archive.
PackageValidationFailed One or more packages in your submission failed to validate.
InvalidParameterValue One of the parameters in the request body is invalid.
InvalidOperation The operation you attempted is invalid.
InvalidState The operation you attempted is not valid for the current state of the package flight.
ResourceNotFound The specified package flight could not be found.
ServiceError An internal service error prevented the request from succeeding. Try the request again.
ListingOptOutWarning The developer removed a listing from a previous submission, or did not include listing information that is supported by the package.
ListingOptInWarning The developer added a listing.
UpdateOnlyWarning The developer is trying to insert something that only has update support.
Other The submission is in an unrecognized or uncategorized state.
PackageValidationWarning The package validation process resulted in a warning.