Downloading Automic Software Artifacts via REST API (packages.broadcom.com)
search cancel

Downloading Automic Software Artifacts via REST API (packages.broadcom.com)

book

Article ID: 456756

calendar_today

Updated On:

Products

Automic Automation CA Automic One Automation CA Automic Operations Manager CA Automic Oracle CA Automic Service Orchestration - Automation Engine

Issue/Introduction

support.broadcom.com does not itself expose a REST API for downloading software artifacts (installers, agents, hotfixes, documentation, DB installers).

Customers who previously scripted downloads via REST against the legacy Automic portal lost that capability when downloads moved to support.broadcom.com.

automic-packages is a purpose-built Artifactory registry that mirrors the same files published on support.broadcom.com and is reachable via REST from https://packages.broadcom.com/.

This is a different registry from the Docker image registry (automic-docker.packages.broadcom.com) used for AAKE container pulls. Same underlying Artifactory instance and token mechanism, different repo (automic-packages vs automic-docker), different content (zipped software artifacts vs container images).

As of September 2026, only Automic Automation content is published to this registry

Resolution

1. Obtain a Registry Token

Generate a token at https://support.broadcom.com/group/ecx/registry-token.

This is the same token mechanism/portal used for Docker registry access for AAKE if you already have a valid registry token for image pulls, it is worth trying against this API before generating a new one.

2. Authenticate to search Artifacts via AQL

When using curl to interact with the Artifactory API, ensure your authentication token is properly encoded or passed as a Bearer token to avoid 401 Failed to decode basic authentication token errors.

Option 1: Using Base64 Encoding

To use Basic authentication, first encode your credentials:

$AuthEncoded = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("<[email protected]>:<api key>"))

Invoke-RestMethod -Method Post `
  -Uri "https://packages.broadcom.com/artifactory/api/search/aql" `
  -Headers @{ Authorization = "Basic $AuthEncoded" } `
  -ContentType 'text/plain' `
  -Body 'items.find({
    "repo": "automic-packages",
    "path": { "$match": "automic/component/release/AE/26.*" },
    "$or": [
        { "name": { "$match": "*Agent_Windows*" } },
        { "name": { "$match": "*Agent_Unix*" } }
    ]
})'

Option 2: Using Bearer Token

Alternatively, you can pass the token directly as a Bearer token:

$TOKEN= "your-support-portal-token"

Invoke-RestMethod -Method Post `
  -Uri "https://packages.broadcom.com/artifactory/api/search/aql" `
  -Headers @{ Authorization = "Bearer $TOKEN" } `
  -ContentType 'text/plain' `
  -Body 'items.find({
    "repo": "automic-packages",
    "path": { "$match": "automic/component/release/AE/26.*" },
    "$or": [
        { "name": { "$match": "*Agent_Windows*" } },
        { "name": { "$match": "*Agent_Unix*" } }
    ]
})'

For Linux versions

Option 1: Using Base64 Encoding

 

EMAIL="[email protected]"
API_KEY="api_key"
AUTH_ENCODED=$(echo -n "${EMAIL}:${API_KEY}" | base64 -w0)

curl --request POST \
  --url https://packages.broadcom.com/artifactory/api/search/aql \
  --header "Authorization: Basic $AUTH_ENCODED" \
  --header 'Content-Type: text/plain' \
  --data 'items.find({
    "repo": "automic-packages",
    "path": { "$match": "automic/component/release/AE/26.*" },
    "$or": [
        { "name": { "$match": "*Agent_Windows*" } },
        { "name": { "$match": "*Agent_Unix*" } }
    ]
})'

 

Option 2: Using Bearer Token

TOKEN="your-support-portal-token"

curl --request POST \
  --url https://packages.broadcom.com/artifactory/api/search/aql \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Content-Type: text/plain' \
  --data 'items.find({
    "repo": "automic-packages",
    "path": { "$match": "automic/component/release/AE/26.*" },
    "$or": [
        { "name": { "$match": "*Agent_Windows*" } },
        { "name": { "$match": "*Agent_Unix*" } }
    ]
})'

POST an AQL items.find query to the search endpoint. Search is scoped with `"repo": "automic-packages", then narrowed by path ($match` against the version folder) and name ($match against the artifact filename, $or for multiple patterns):

You can search the automic-packages registry using AQL statements. 
Artifactory Query Language (AQL) is described here:

AQL syntax reference: https://docs.jfrog.com/artifactory/docs/artifactory-query-language

3. Browse a Folder

GET the folder path directly to list its contents:


https://packages.broadcom.com/artifactory/automic-packages/automic/component/release/AE/

4. Download a File

GET the exact file path returned by search or browse:

 curl --request GET \  -O --url 'https://packages.broadcom.com/artifactory/automic-packages/automic/component/release/AE/26.1.0/+/Automation.Engine_Agent_AS400_26_1_0+build.1789729699194.zip' \  --header "Authorization: Basic $AUTH_ENCODED"
 

Tip: hotfix version folders use a literal + segment (e.g. 24.4.5/+/...) and filenames themselves contain a literal + (e.g. ..._24_4_5+build...zip). Browsing (step 4) shows these unencoded, but when issuing the actual GET to download, percent-encode + as %2B — some HTTP clients/proxies otherwise interpret a raw + in the path differently than the literal character, causing a 404 even though the folder listing shows the file present with that exact name.

Additional Information

  • If you also need Docker image pulls (not software zip downloads), that's the separate   automic-docker registry.

  • Don't confuse the two registries when troubleshooting: automic-packages (this guide, generic software artifacts, searched/downloaded over plain HTTPS GET/POST) vs   automic-docker.packages.broadcom.com (Docker image pulls, authenticated via   docker login / Kubernetes pull secrets). Same Artifactory backend and token portal, different repo keys and different client protocols.