AWS Marketplace

Introducing AWS Marketplace APIs for Private Marketplace to manage software subscriptions

AWS Marketplace now enables buyers to programmatically manage their Private Marketplace using a set of publicly accessible APIs. With Private Marketplace, buyers can curate a catalog of approved third-party software available in AWS Marketplace. This enables their organization’s end users to purchase software governed by their internal policies and procedures from AWS Marketplace. Private Marketplace removes the need for blanket security controls for procurement and enables end users to subscribe to pre-approved, third-party software in AWS Marketplace. Administrators can help their end users quickly access the tools they need by making selected, vetted third-party software available in their Private Marketplace. End users can easily find, buy, and deploy the products approved for their use. They can also request additional products to be vetted and added to their organization’s approved catalog.

What you can do with public APIs

The newly launched public APIs allow Private Marketplace administrators to help their end users innovate faster through programmatic management of Private Marketplace. The APIs enable automation through integration with your organization’s existing software procurement processes and systems. Now, administrators can use their existing preferred ticketing and servicing tools to further streamline the management of the approved software products in AWS Marketplace. This removes the need to log into the AWS Management Console. Organizations can continue to use their existing approval steps and roles within their preferred systems to vet and make products available for end users. End users are able to use their existing processes as part of the AWS Marketplace software procurement process. Using the APIs, administrators can simply add products to Private Marketplace from within their preferred system. To use this feature, you can access the Catalog API containing the change sets for Private Marketplace.

Administrators and end users: who are they in Private Marketplace?

  • Administrator: Curator of the approved set of third-party software products within AWS Marketplace. This can be a role or set of policies within AWS Identity and Access Management (IAM) that enables management of a Private Marketplace. This includes the ability to add and remove approved third-party software products as well as to update the settings and branding for the Private Marketplace. Additional information about the administrator role can be found here.
  • End User: Subscriber to the approved third-party software products in AWS Marketplace. This can be a role or set of policies within AWS IAM that allows visibility of approved third-party software products. It could also allow the ability to subscribe to software products and permissions to request to an administrator to add additional products to their organization’s Private Marketplace. Additional information about the end user role can be found here.

How to use the AWS Marketplace APIs for Private Marketplace

Private Marketplace administrators and end users can access the public APIs through the AWS Marketplace Catalog API. You can call the APIs to create a new Private Marketplace for your organization, view approved products, add and remove approved products, and update settings as well as branding for your Private Marketplace. You can use your preferred API tools to call the APIs.

Solution overview

A. Creating a Private Marketplace

  1. Creating an experience
    1. Sending create experience request
    2. Finding the experienceID
  2. Creating a procurement policy
    1. Creating the procurement policy
    2. Finding the procurementpolicyID
  3. Creating branding settings (optional)
  4. Going live
    1. Going live
    2. Finding the status of your Private Marketplace

B. Updating Private Marketplace settings

  1. Updating the procurement policy
    1. Allowing software requests
    2. Denying software requests
    3. Finding the current procurementPolicy configuration
  2. Updating the branding settings
  3. Disabling your Private Marketplace
    1. Disabling your Private Marketplace
    2. Finding the status of your Private Marketplace

C. Managing your Private Marketplace

  1. Finding a product
    1. Finding a product
    2. Selecting a product
  2. Adding a product to your Private Marketplace
  3. Removing a product from your Private Marketplace
  4. Viewing approved or declined products in your Private Marketplace
    1. Listing product entities
    2. Viewing an entity’s approved and denied software
  5. Listing experience entities
  6. Listing all available change sets

Solution walkthrough

Here is how to use the APIs to manage a Private Marketplace.

For the purposes of this blog post exercise, I use Postman to call the APIs. If you are not familiar with Postman, you can follow this guide here to make API calls. Here are the steps I followed in Postman to make my API calls throughout this blog post.

In the Postman console, configure your session as below:

  • Select Authorization tab, select Type: AWS Signature, enter the AccessKey and SecretKey of the IAM user or role that has the permissions to create and update Private Marketplace.
  • Still under Authorization, in the Advanced section, enter AWS Region=us-east-1 and Service Name= aws-marketplace.
  • Select the Body tab, and then choose RAW(JSON). Make sure RAW option is enabled for every API call.
  • Some API calls require headers under Headers tab.

A. Creating a Private Marketplace

To create a Private Marketplace and make it live, you must use these three actions called change types: CreateExperience, CreateProcurementPolicy, and UpdateExperience. Another optional change type is CreateBrandingSettings. You can skip step A and proceed to step B. Updating Private Marketplace settings if you have already been using Private Marketplace in your account.

1. Creating a Private Marketplace experience (entity)

  1. CreateExperience is the action used to create a Private Marketplace entity. To do that, send the following API request on the Postman console:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

{

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "CreateExperience",

         "Details": "{\"Name\": \"My Company`s Private Marketplace\"}",

         "Entity": { 

            "Type": "Experience@1.0"

         }

      }

   ],

   "ChangeSetName": "Creating my first experience"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "4eui3rj0js1wjtlfwcb1vXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:AWS_Account_ID:AWSMarketplace/ChangeSet/4eui3rj0js1wjtlfwcb1vXXXX"

}

Take note of the ChangeSetID, as you need it to find out the experienceID.

  1. To find the experienceID, on the Postman console, send the following API request:

GET Request: https://catalog.marketplace.us-east-1.amazonaws.com/DescribeChangeSet?catalog=AWSMarketplace&changeSetId=4eui3rj0js1wjtlfwcb1vXXXX

You should get a successful response similar to this one:

{

    "ChangeSet": [

        {

            "ChangeType": "CreateExperience",

            "Details": "{\"Name\": \"My Company`s Private Marketplace\"}",

            "Entity": {

                "Identifier": "exp-asevc3uyvXXXX@1",

                "Type": "Experience"

            },

            "ErrorDetailList": []

        }

    ],

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/4eui3rj0js1wjtlfwcb1vXXXX",

    "ChangeSetId": "4eui3rj0js1wjtlfwcb1vXXXX",

    "ChangeSetName": "Creating my first experience",

    "EndTime": "2020-10-08T06:16:23Z",

    "FailureCode": null,

    "FailureDescription": null,

    "StartTime": "2020-10-08T06:15:50Z",

    "Status": "SUCCEEDED"

}

From that response, take note of the experience identifier experienceID. In the previous code, my experienceID is in between the quotation marks after “Identifier”.

2. Creating a procurement policy

  1. Using the experienceID from step A.1.1, you can now create a procurement policy using CreateProcurementPolicy change type. A procurement policy enables you to put controls around the products that your users can subscribe to within AWS Marketplace. To create a procurement policy, on the Postman console, send the following API request:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

{

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "CreateProcurementPolicy",

         "Details": "{\"Name\": \" My Company's Procurement Policy \"}",

         "Entity": { 

            "Identifier": "exp-asevc3uyvXXXX@1",  

            "Type": "Experience@1.0"

         }

      }

   ],

   "ChangeSetName": "Creating my first procurement policy"

}

The revisionId after the @ sign, along with the EntityId, distinguish one published revision from another. Additional information about the revisionId can be found here.

You should get a successful response similar to this one:

{

    "ChangeSetId": "edp87qihz45sgixj0nz0xXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/ edp87qihz45sgixj0nz0xXXXX"

}

  1. To find the ProcurementPolicyId, on the Postman console, send the following API request:

GET Request:  https://catalog.marketplace.us-east-1.amazonaws.com/DescribeEntity?catalog=AWSMarketplace&entityId=exp-asevc3uyvXXXX

You should get a successful response similar to this one:

{

    "Details": "{\"Name\":\" Corp`s Private Marketplace\",\"Status\":\"Enabled\",\"ProcurementPolicies\":[\"procpolicy-skbxaj5xrXXXX\"],\"DiscoveryPolicies\":[],\"BrandingSettings\":[]}",

    "EntityArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/Experience/exp-asevc3uyvXXXX",

    "EntityIdentifier": "exp-asevc3uyvXXXX@2",

    "EntityType": "Experience@1.0",

    "LastModifiedDate": "2020-10-08T06:55:58Z"

}

3. Creating branding settings (optional)

While this step is optional, I recommend creating branding for your Private Marketplace. Branding helps your end users know they are subscribing to software approved for their use from your organization’s authorized Private Marketplace. To create the branding settings, send the following API request on the Postman console:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body: This should contain branding settings that enable you to provide the Private Marketplace name, a description, logo, logo URL, and theme color. The following change type gives my Private Marketplace the name CorpPrivateMarketplace, adds my corporate color of a dark blue, and adds my logo and its URL.

{

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "CreateBrandingSettings",

         "Details": "{ \"Name\": \"CorpPrivateMarketplace\",  \"Description\": \"My First Branding\",  \"Configuration\":  {    \"Title\" : \"Corp\",    \"Information\" : \"Welcome to Corp Private Marketplace.\",    \"ThemeColor\" : \"#232f3e\", \"LogoUrl\" : \"https:\/\/trademarks.amazon.com\/media\/images\/available_at_amzn_tile.original.png\"  }}",

         "Entity": {

            "Type": "Experience@1.0",

            "Identifier”: "exp-asevc3uyvXXXX@6"

         }

      }

   ],

   "ChangeSetName": "Creating initial branding"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "1lkk3l2j39qwb9us2ok6fXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/1lkk3l2j39qwb9us2ok6fXXXX"

}

4. Going live with your Private Marketplace

  1. Before you can use your Private Marketplace, you must switch it to live mode using the UpdateExperience change type. I recommend you to populate your Private Marketplace with the approved list of products before switching your Private Marketplace to live mode. When your Private Marketplace is live, your end users will be governed by the approved products in the Private Marketplace. They can subscribe to those approved products and request for approval for any new products. To enable your Private Marketplace, on the Postman console, send the following API request:

POST Request : https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

{

    "Catalog": "AWSMarketplace",

    "ChangeSet": [

        {

            "ChangeType": "UpdateExperience",

            "Details": "{\"Status\": \"Enabled\"}",

            "Entity": {

                "Type": "Experience@1.0",

                "Identifier": "exp-asevc3uyvXXXX@2"

            }

        }

    ],

    "ChangeSetName": ”Go live"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "byfcykqkiz4ul9ol31qjjXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/ byfcykqkiz4ul9ol31qjjXXXX"

}

Congratulations! Your Private Marketplace is now live.

  1. To find the status of your Private Marketplace, on the Postman console, send the following API request:

GET Request: https://catalog.marketplace.us-east-1.amazonaws.com/DescribeEntity?catalog=AWSMarketplace&entityId=exp-asevc3uyvXXXX

You should get a successful response similar to this one:

{

    "Details": "{\"Name\":\" My Company`s Private Marketplace\",\"Status\":\"Enabled\",\"ProcurementPolicies\":[\"procpolicy-skbxaj5xrXXXX\"],\"DiscoveryPolicies\":[],\"BrandingSettings\":[]}",

    "EntityArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/Experience/exp-asevc3uyvXXXX",

    "EntityIdentifier": "exp-asevc3uyvXXXX@3",

    "EntityType": "Experience@1.0",

    "LastModifiedDate": "2020-10-08T06:55:58Z"

}

B. Updating Private Marketplace settings

1. Updating your procurement policy

You can update the Procurement Policy to allow or deny software requests. This corresponds to Software Requests functionality on the Private Marketplace console. When you first create a procurement policy, the default behavior is to allow resource requests.

  1. To allow software resource requests, send the following API request on the Postman console:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

 {

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "UpdateProcurementPolicy",

         "Details": "{\"Configuration\”: {\"ResourceRequest\”: \"Allow\"}}",

         "Entity": {

            "Type": "Experience@1.0",

            "Identifier”: "exp-asevc3uyvXXXX@3"

         }

      }

   ],

   "ChangeSetName": "Updating procurement policy"

}

  1. To deny software resource requests, on the Postman console, send the following API request:

{

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "UpdateProcurementPolicy",

         "Details": "{\"Configuration\”: {\"ResourceRequest\”: \"Deny\"}}",

         "Entity": {

            "Type": "Experience@1.0",

            "Identifier”: "exp-asevc3uyvXXXX@4"

         }

      }

   ],

   "ChangeSetName": "Updating procurement policy"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "3bygr4jkw74nkedz65gjpXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/3bygr4jkw74nkedz65gjpXXXX"

}

  1. To find the current ProcurementPolicy configuration, on the Postman console, send the following API request:

GET Request: https://catalog.marketplace.us-east-1.amazonaws.com/DescribeChangeSet?catalog=AWSMarketplace&changeSetId=3bygr4jkw74nkedz65gjpXXXX

You should get a successful response similar to this one:

{

    "ChangeSet": [

        {

            "ChangeType": "UpdateProcurementPolicy",

            "Details": "{\"Configuration\" : {\"ResourceRequest\" : \"Deny\"}}",

            "Entity": {

                "Identifier": "exp-asevc3uyvXXXX@4",

                "Type": "Experience"

            },

            "ErrorDetailList": []

        }

    ],

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/3bygr4jkw74nkedz65gjpXXXX",

    "ChangeSetId": "3bygr4jkw74nkedz65gjpXXXX",

    "ChangeSetName": "Updating my first procurement policy and denying resource requests",

    "EndTime": "2020-10-08T06:40:24Z",

    "FailureCode": null,

    "FailureDescription": null,

    "StartTime": "2020-10-08T06:39:15Z",

    "Status": "SUCCEEDED"

}

2. Updating the branding settings (optional)

This should contain branding settings that enable you to provide the Private Marketplace name, a description, logo, logo URL, and theme color. The following example gives my Private Marketplace the name Corp’s Private Marketplace, adds color of a dark blue, and adds my logo and its URL.

If you have already created branding on your Private Marketplace and want to update your branding settings, send the following API request on the Postman console:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

{

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "UpdateBrandingSettings",

         "Details": "{ \"Name\": \"Corp`s Private Marketplace\",  \"Description\": \"My Company`s Private Marketplace\",  \"Configuration\":  {   \"Title\" : \"My Private Marketplace Company\",    \"Information\" : \"My PMPCompany.\",    \"ThemeColor\" : \"#232f3e\", \"LogoUrl\" : \"http:\/\/schaik.com\/pngsuite\/basn0g04.png\"  }}",

         "Entity": {

            "Type": "Experience@1.0",

            "Identifier" : "exp-asevc3uyvXXXX@7"

         }

      }

   ],

   "ChangeSetName": "Updating my first branding"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "1lpp3l2j39qwb9us2ok6fXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/1lpp3l2j39qwb9us2ok6fXXXX"

}

3. Disabling your Private Marketplace

  1. Disabling your Private Marketplace means your users will no longer be governed by your Private Marketplace and will be able to procure any software available publicly in AWS Marketplace. To disable your Private Marketplace, on the Postman console, send the following API request:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

{

    "Catalog": "AWSMarketplace",

    "ChangeSet": [

        {

            "ChangeType": "UpdateExperience",

            "Details": "{\"Status\": \"Disabled\"}",

            "Entity": {

                "Type": "Experience@1.0",

                "Identifier": "exp-asevc3uyvXXXX@5"

            }

        }

    ],

    "ChangeSetName": "Disable Private Marketplace"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "4pjt414rai05pitqywiifXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/4pjt414rai05pitqywiifXXXX"

}

Now your Private Marketplace is no longer live.

  1. For end users to be governed by the set of approved products again, you must switch your Private Marketplace back to live mode by repeating step A.4.1. To find the current status of your Private Marketplace, repeat step A.4.2 with the ChangeSetId from the response in step B.3.1.

C. Managing your Private Marketplace

1. Finding a product

  1. To search for specific products in AWS Marketplace using AWS Marketplace Discovery API, you need an IntegrationID value on every request. This value is unique for each customer. If you’re not sure of your IntegrationID, contact AWS. For more information on IntegrationID, review the AWS Marketplace Discovery API documentation. To find a product, send the following API request on Postman console with the product name as the value of SearchText:

POST Request: https://discovery.marketplace.us-east-1.amazonaws.com

Add the additional headers as part of the request:

Key Value
X-Amz-Target com.amazonaws.marketplace.discovery.api.v20200320.AWSMPDiscoveryService.SearchListings
Content-Encoding amz-1.0

Body:

{

    "RequestContext":

    {

        "IntegrationId": "INTEGRATION-ID"

    },

    "SearchText": "Splunk",

    "MaxResults": 1,

    "Filters":

    [

        {

            "Type": "FULFILLMENT_OPTION_TYPE",

            "Values": ["AMAZON_MACHINE_IMAGE"] 

        }

    ]

}

You should get a successful response similar to this one:

{

    "ListingSummaries": [

        {

            "Badges": [

                {

                    "DisplayName": "Bring Your Own License",

                    "Value": "BRING_YOUR_OWN_LICENSE"

                },

                {

                    "DisplayName": "Free Tier",

                    "Value": "FREE_TIER"

                }

            ],

            "Categories": [

                {

                   [Truncated for visibility]

            "ProductAttributes": {

                "BaseProductId": "7b65de6c-5006-4ca2-bd75-fdba95ae5d9d",

                "Creator": {

                    "DisplayName": "Splunk Inc.",

                    "Value": "6a766d61-5a6a-4c97-83f4-8bfe02b74914"

                }

            }, [truncated for visibility]

  1. You can select a product ID to add to your Private Marketplace entity. For example, to add Splunk AMI, I use product ID 7b65de6c-5006-4ca2-bd75-fdba95ae5d9d from Splunk Inc.

2. Adding a product to Private Marketplace

To add a product to your Private Marketplace, send the following API request on the Postman console:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

{

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "AllowProductProcurement",

         "Details": "{\"Products\": [{\"Ids\": [\"7b65de6c-5006-4ca2-bd75-fdba95ae5d9d\"]}]}",

         "Entity": { 

            "Identifier": "exp-asevc3uyvXXXX@7",

            "Type": "Experience@1.0"

         }

      }

   ],

   "ChangeSetName": "Adding product to procurement policy"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "7jn9g8ki1pauc2m6ikn0wXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:AWS_Account_ID:AWSMarketplace/ChangeSet/7jn9g8ki1pauc2m6ikn0wXXXX"

}

You can also add other products by repeating this step.

3. Removing a product from your Private Marketplace

If you no longer want a product approved in your Private Marketplace, you can remove it. When a product is removed from a Private Marketplace, accounts with an active subscription can continue to use the product. New subscriptions cannot occur until the product is approved again in the Private Marketplace. To remove a product from Private Marketplace, send the following API request on the Postman console:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/StartChangeSet

Body:

{

   "Catalog": "AWSMarketplace",

   "ChangeSet": [ 

      { 

         "ChangeType": "DenyProductProcurement",

         "Details": "{\"Products\": [{\"Ids\": [\"80ad187b-5f54-4327-9047-fb6fb36e7019\"]}]}",

         "Entity": { 

            "Identifier": "exp-asevc3uyvXXXX@8",

            "Type": "Experience@1.0"

         }

      }

   ],

   "ChangeSetName": "Removing product to procurement policy"

}

You should get a successful response similar to this one:

{

    "ChangeSetId": "5sx9pf83zno3oj47iofouXXXX",

    "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1:AWS_Account_ID:AWSMarketplace/ChangeSet/5sx9pf83zno3oj47iofouXXXX"

}

4. Viewing approved and declined products in Private Marketplace

  1. Listing the procurement policy entities

To list all the procurement policy entities, on the Postman console, send the following API request:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/ListEntities

Body:

{

    "Catalog": "AWSMarketplace",

    "EntityType": "ProcurementPolicy"

 }

You should get a successful response similar to this one:

{

    "EntitySummaryList": [

        {

            "EntityArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ProcurementPolicy/procpolicy-skbxaj5xrXXXX",

            "EntityId": "procpolicy-skbxaj5xrXXXX",

            "EntityType": "ProcurementPolicy",

            "LastModifiedDate": "2020-10-12T07:22:09Z",

            "Name": "My Company's Procurement Policy",

            "Visibility": null

        }

    ],

    "NextToken": "rO0ABXVyA="

}

  1. Viewing an entity’s approved and denied software

To look into what the procurement policy contains, including what software is approved or denied, on the Postman console, send the following API request :

GET Request: https://catalog.marketplace.us-east-1.amazonaws.com/DescribeEntity?catalog=AWSMarketplace&entityId=procpolicy-skbxaj5xrXXXX

The successful response gives you the corresponding Product IDs of the entity’s allowed and denied products.

{

    "Details": "{\"Name\":\" My Company's Procurement Policy \",\"Statements\":[{\"Effect\":\"Allow\",\"Resources\":[{\"Type\":\"Product\",\"Ids\":[\"7b65de6c-5006-4ca2-bd75-fdba95ae5d9d \"]}]},{\"Effect\":\"Deny\",\"Resources\":[{\"Type\":\"Product\",\"Ids\":[\"80ad187b-5f54-4327-9047-fb6fb36e7019\"]}]}],\"Configuration\":{\"PolicyResourceRequests\":\"Allow\"}}",

    "EntityArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ProcurementPolicy/procpolicy-skbxaj5xrXXXX",

    "EntityIdentifier": "procpolicy-skbxaj5xrXXXX@6",

    "EntityType": "ProcurementPolicy@1.0",

    "LastModifiedDate": "2020-10-12T07:22:09Z"

}

5. Listing experience entities

To list all the experience entities in the account, send the following API request on the Postman console:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/ListEntities

Body:

{

    "Catalog": "AWSMarketplace",

    "EntityType": "Experience"

 }

You should get a successful response similar to this one:
{

    "EntitySummaryList": [

        {

            "EntityArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/Experience/exp-asevc3uyvXXXX",

            "EntityId": "exp-asevc3uyvXXXX",

            "EntityType": "Experience",

            "LastModifiedDate": "2020-10-12T07:22:43Z",

            "Name": "My Company`s Private Marketplace",

            "Visibility": null

        }

    ],

    "NextToken": "rO0ABXVyABNbTGp"

}

6. Listing all available change sets

You can view the list of all the available change sets up to 60 days in your Private Marketplace. If you would like to view every single change set, you can set up AWS CloudTrail. Catalog API publishes every single change set to AWS CloudtTail. To view the details about recent changes made to your Private Marketplace, on the Postman console, send the following API request:

POST Request: https://catalog.marketplace.us-east-1.amazonaws.com/ListChangeSets

Body:

 {

   "Catalog": "AWSMarketplace"

}

You should get a successful response similar to this one:

{

    "ChangeSetSummaryList": [

        {

            "ChangeSetArn": "arn:aws:aws-marketplace:us-east-1: AWS_Account_ID:AWSMarketplace/ChangeSet/4pjt414rai05pitqywiifXXXX",

            "ChangeSetId": "4pjt414rai05pitqywiifXXXX",

            "ChangeSetName": "Updating my first experience and making it not live",

            "EndTime": "2020-10-12T07:23:09Z",

            "EntityIdList": [

                "exp-asevc3uyvXXXX"

            ],

            "FailureCode": null,

            "StartTime": "2020-10-12T07:22:01Z",

            "Status": "SUCCEEDED"

        },

[Truncated for visibility]

"NextToken": "AYADeN3N0=="

}

Conclusion

In this post, I showed you how to use the new AWS Marketplace APIs for Private Marketplace to manage Private Marketplace without signing into the AWS Management Console. By using AWS Marketplace APIs for Private Marketplace, you can integrate AWS Marketplace with your existing ticketing or procurement systems. This reduces your effort to meet your end user’s software needs by enabling you to streamline your software approval using Private Marketplace.