Curate Portal Assets

Overview

Curates the API catalog of an API Experience Hub (AEH) portal: discovers Exchange assets that are not yet published, adds selected assets to the portal, inspects the visibility of each minor version, adjusts visibility per version, and removes assets that should no longer be published. The workflow lets portal administrators control exactly which APIs — and which minor versions — are exposed to portal consumers.

What you'll build: A curated portal catalog with the right assets and minor-version visibility for your consumers.

Prerequisites

Before starting, ensure:

  1. Authentication ready

    • Valid Bearer token for Anypoint Platform
    • AEH Administrator or AEH Portal Administrator permissions
  2. Environment already bootstrapped (not covered by this workflow — use the AEH UI for these)

    • The Salesforce Connection has been created in AEH
    • At least one Portal has been created on that connection

Step 1: List AEH Connections

Retrieve the AEH connections the user has access to. The selected connection's ID is used as connectionId in every downstream management call.

$ curl -X GET ${baseUrl}/api/v1/connections \
  -H "Authorization: Bearer ${authToken}" \
  -H "Content-Type: application/json"
Captured Variables
connectionId $[*].id

What happens next: The chosen connectionId scopes every subsequent call to a single Salesforce org connection.

Step 2: List Portals on the Connection

List the portals that live on the selected connection and pick the target portalId.

$ curl -X GET ${baseUrl}/api/v1/connections/{connectionId}/apiPortals \
  -H "Authorization: Bearer ${authToken}" \
  -H "Content-Type: application/json"
Captured Variables
portalId $[*].id

What happens next: You now have the (connectionId, portalId) pair required by every curation operation.

Step 3: Discover Unpublished Exchange Assets

Search Exchange for assets that the connected Salesforce org has access to but that are not yet published in this portal. This is the candidate list for publication.

$ curl -X POST ${baseUrl}/api/v1/connections/{connectionId}/apiPortals/{portalId}/assets/search/exchange \
  -H "Authorization: Bearer ${authToken}" \
  -H "Content-Type: application/json"
Captured Variables
candidateAssets $.assets[*]
candidateGroupId $.assets[*].groupId
candidateAssetId $.assets[*].assetId

What happens next: Present candidates to the user and let them pick one or more assets to publish. Collect their groupId/assetId pairs for Step 4.

Step 4: Add Assets to the Portal

Publish one or more selected Exchange assets to the portal.

$ curl -X POST ${baseUrl}/api/v1/connections/{connectionId}/apiPortals/{portalId}/assets \
  -H "Authorization: Bearer ${authToken}" \
  -H "Content-Type: application/json"
Captured Variables
publishedAssetIds $[*].assetId

What happens next: The assets are now visible in the portal catalog. By default all public minor versions become visible — Step 6 adjusts that.

Step 5: Inspect Visibility of a Published Asset

Retrieve the current visibility state for each minor version of a published asset so the admin can decide which versions to hide or expose.

$ curl -X GET ${baseUrl}/api/v1/connections/{connectionId}/apiPortals/{portalId}/assets/{groupId}/{assetId} \
  -H "Authorization: Bearer ${authToken}" \
  -H "Content-Type: application/json"
Captured Variables
versionVisibilities $.versions[*]

What happens next: Present the version list and let the admin toggle visibility per minor version in Step 6.

Step 6: Update Asset Visibility

Update the visibility of specific minor versions (e.g., hide deprecated versions, restrict new versions to a specific user group).

$ curl -X PATCH ${baseUrl}/api/v1/connections/{connectionId}/apiPortals/{portalId}/assets/{groupId}/{assetId} \
  -H "Authorization: Bearer ${authToken}" \
  -H "Content-Type: application/json"
Captured Variables
updatedAssetId $.assetId

What happens next: Portal consumers now see only the minor versions you marked PUBLISHED.

Step 7: Remove Assets (Optional)

Remove assets that should no longer be exposed — e.g., fully deprecated APIs.

$ curl -X POST ${baseUrl}/api/v1/connections/{connectionId}/apiPortals/{portalId}/assets/remove \
  -H "Authorization: Bearer ${authToken}" \
  -H "Content-Type: application/json"
Captured Variables
removedAssetIds $[*].assetId

What happens next: Consumers no longer see the removed assets. Existing contracts against those assets remain intact but cannot be created anew.

Completion Checklist

  • [ ] Connection and portal selected
  • [ ] Candidate Exchange assets identified
  • [ ] Selected assets published to the portal
  • [ ] Minor-version visibility reviewed and adjusted
  • [ ] Deprecated/unwanted assets removed (if applicable)

What You've Built

Curated Portal Catalog — Only the assets and minor versions you intend are visible to portal consumers, matching your publishing strategy.

Next Steps

  1. Search the published catalog — Use searchCommunityAssets (management) to confirm the final list your portal consumers will see.
  2. Manage portal members — See the manage-portal-members-and-prospects skill to approve consumers who will browse the new assets.
  3. Monitor consumer contracts — Track contract creation through the consumer API to understand adoption of each newly published asset.