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:
-
Authentication ready
- Valid Bearer token for Anypoint Platform
- AEH Administrator or AEH Portal Administrator permissions
-
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
- Search the published catalog — Use
searchCommunityAssets(management) to confirm the final list your portal consumers will see. - Manage portal members — See the
manage-portal-members-and-prospectsskill to approve consumers who will browse the new assets. - Monitor consumer contracts — Track contract creation through the consumer API to understand adoption of each newly published asset.