Create, Edit, and Retrieve A+ Media Assets
Learn how to create media assets, retrieve metadata and pairings, and update titles and descriptions.
Learn how to create image and video media assets, retrieve media metadata and related pairings, and update media titles and accessibility descriptions. Media that you upload to the A+ Media Library can be referenced where required by certain A+ modules.
Prerequisites
To complete this tutorial, you need:
- Authorization from the selling partner for whom you are making calls. For more information, refer to Authorizing Selling Partner API applications.
- The Product Listing role assigned to your developer profile.
- The Product Listing role selected in the app registration page for your application.
- One or more image or video files that you want to add to the A+ media library.
Step 1. Create a media asset
To create a media asset, you need to:
Step 1a. Upload your file
Call the createUploadDestinationForResource operation of the Uploads API. Upload your file by making a POST request to the url from the createUploadDestinationForResource response. Confirm that you receive a 2XX response.
ImportantImages must comply with Amazon's product image requirements. Videos must comply with video content requirements.
Save the uploadDestinationId value for the following step.
Step 1b. Create the media asset
Call the createMedia operation. The mediaType field determines the type of asset to create.
createMedia is idempotent. The response status code indicates the result:
201: A new media asset or pairing was created.200: The asset or pairing already exists with identical metadata. The existing data is returned.409: The asset or pairing already exists but the metadata fields differ.
The response returns the full unified Media shape, including the assigned mediaId, a composite status, a mediaUrl, any issues, and the relatedMedia associations. Newly created video assets typically return a status of PENDING_PROCESSING and PENDING_AMAZON while Amazon processes the file.
NoteIf you provide an
uploadDestinationId, it is resolved to amediaIdbefore any further processing. A request that references an asset byuploadDestinationIdand a later request that uses the resultingmediaIdare treated as referring to the same asset.
Step 2. Retrieve a media asset
Call the getMedia operation and pass the mediaId value.
The response contains the unified Media shape and includes related media associations. The response also includes a composite status array and an issues array, which you can use to determine the state of the asset and whether action is required. Possible status values are:
PENDING_PROCESSING: Media is being processed (transcoding, validation).PENDING_REVIEW: Processing is complete; the media is awaiting content compliance review.UNABLE_TO_PROCESS: Processing failed. This may require a re-upload or metadata correction.NOT_APPROVED: The media failed compliance review. This may require a re-upload or metadata correction.AVAILABLE: The media is available for display in A+ Content.PENDING_AMAZON: Amazon is the next actor. Applies when action is required from Amazon.PENDING_SELLING_PARTNER: The selling partner is the next actor. Applies when action is required from the seller.
NoteThe
mediaUrlvalue is non-permanent. Re-retrieve the asset withgetMediarather than caching the URL indefinitely.
Step 3. Update a media asset
Call the updateMedia operation to update metadata on an existing asset, using mediaId to identify the target asset.
Each request updates either title or descriptions, but not both.
- To update a video-image pairing title, provide
associatedMediaIdas a query parameter and sendtitle. - To update video-level descriptions, omit
associatedMediaIdand senddescriptions. - To update a standalone image title, omit
associatedMediaIdand sendtitle.
The response returns the full unified Media shape. When associatedMediaId is provided, relatedMedia contains only the specified pairing. When associatedMediaId is absent, relatedMedia contains all affected pairings.
NoteDescriptions are upserted by locale. Only the locales you provide are modified; existing locales that are not in the request are preserved.
Updated about 1 hour ago

