Skip to main content

Commercial API

Commercial customers can use Chef’s Commercial API to download Chef software packages and view software package metadata.

Install script

You can use an install script from the API to download and install Chef packages. For more information, see the Chef install script documentation.

License

To download packages and review metadata with this API, you need a license ID.

You can get your license ID from the Chef Downloads portal, or contact Chef if you don’t have one.

For more information, see Chef’s licensing documentation.

Endpoints

The Chef Commercial Download API has the following endpoints:

  • /architectures
  • /platforms
  • /products
  • /packages
  • /versions/all
  • /versions/latest
  • /metadata
  • /download
  • /fileName
  • /package-managers
  • /files

For details about query strings and path parameters, see the parameters section.

architectures

The architectures endpoint returns a list of valid architectures for Chef products. You can use any of these architectures as the m query string value in the endpoints below.

https://chefdownload-commercial.chef.io/architectures

platforms

The platforms endpoint returns a list of valid platform keys and friendly names. You can use any of these platform keys as the p query string value in the endpoints below.

https://chefdownload-commercial.chef.io/platforms

products

The products endpoint returns a list of valid product keys. In the endpoints below, replace <PRODUCT> with a product key from this response.

https://chefdownload-commercial.chef.io/products

To include EOL products, use eol=true:

https://chefdownload-commercial.chef.io/products?eol=true

packages

Use the packages endpoint to get a full list of packages for a particular release channel and product.

By default, this endpoint returns packages for the latest version.

  • direct: (optional) Returns the download URL from the /files endpoint instead of the standard download endpoint. Default value: false.
https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/packages?license_id=<LICENSE_ID>

To get packages for a specific product version, use the v query string:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/packages?v=<VERSION_NUMBER>&license_id=<LICENSE_ID>

To retrieve download URLs from the /files endpoint, add the direct=true parameter:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/packages?license_id=<LICENSE_ID>&direct=true

versions/all

Use versions/all to return a list of versions of a product from a particular release channel.

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/versions/all?license_id=<LICENSE_ID>

versions/latest

Use versions/latest to return the latest version of a product from a particular release channel.

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/versions/latest?license_id=<LICENSE_ID>

metadata

The metadata endpoint returns data about a particular Chef product package.

The endpoint determines the package type (for example, rpm or deb) from the pm or p query parameter:

  • p: (required) The platform that the package is installed on.
    • If you also specify pm, you can use a generic value such as linux.
    • If you omit pm, specify the exact platform name (for example, ubuntu, amazon, or redhat) so the API can derive the package type from the platform.
  • pm: (optional) The package type to retrieve (for example: deb, rpm, msi, or tar). If provided, the API uses pm to determine the package type directly.
  • direct: (optional) Returns the download URL from the /files endpoint instead of the standard download endpoint. Default value: false.

Retrieve metadata by specifying the platform:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/metadata?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>

Retrieve metadata by specifying the platform and package type:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/metadata?p=<PLATFORM>&pm=<PACKAGE_MANAGER>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>

Retrieve metadata with a download URL from the /files endpoint:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/metadata?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>&direct=true

download

The download endpoint downloads a particular package of a Chef product.

The endpoint determines the package type (for example, rpm or deb) from the pm or p query parameter:

  • p: (required) The platform that the package is installed on.
    • If you also specify pm, you can use a generic value such as linux.
    • If you omit pm, specify the exact platform name (for example, ubuntu, amazon, or redhat) so the API can derive the package type from the platform.
  • pm: (optional) The package type to retrieve (for example: deb, rpm, msi, or tar). If provided, the API uses pm to determine the package type directly.

Download a package by specifying the platform:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/download?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>

Download a package by specifying the platform and package type:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/download?p=<PLATFORM>&pm=<PACKAGE_MANAGER>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>

fileName

The fileName endpoint returns the file name.

The endpoint determines the package type (for example, rpm or deb) from the pm or p query parameter:

  • p: (required) The platform that the package is installed on.
    • If you also specify pm, you can use a generic value such as linux.
    • If you omit pm, specify the exact platform name (for example, ubuntu, amazon, or redhat) so the API can derive the package type from the platform.
  • pm: (optional) The package type to retrieve (for example: deb, rpm, msi, or tar). If provided, the API uses pm to determine the package type directly.

Retrieve a file name by specifying the platform:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/fileName?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>

Retrieve a file name by specifying the platform and package type:

https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/fileName?p=<PLATFORM>&pm=<PACKAGE_MANAGER>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>

package-managers

The package-managers endpoint lists the available package types.

https://chefdownload-commercial.chef.io/package-managers

files

The files endpoint downloads a particular package of a Chef product.

The endpoint identifies the package using path segments instead of query parameters. The URL structure varies depending on the product type.

To construct a /files endpoint URL, use the metadata or packages endpoint with the direct=true parameter to retrieve the correct URL for your use case. To get the filename for a package, use the fileName endpoint.

Download packages for Chef Automate and Chef Habitat:

https://chefdownload-commercial.chef.io/files/<CHANNEL>/<PRODUCT>/<PRODUCT_VERSION>/<PLATFORM>/<ARCHITECTURE>/<FILENAME>?license_id=<LICENSE_ID>

Download packages for Chef Infra Client Enterprise, Chef Infra Client Legacy Migration, Chef InSpec Enterprise, and Chef Workstation Enterprise:

https://chefdownload-commercial.chef.io/files/<CHANNEL>/<PRODUCT>/<PRODUCT_VERSION>/<PLATFORM>/<ARCHITECTURE>/<PACKAGE_MANAGER>/<FILENAME>?license_id=<LICENSE_ID>

Download packages for other products:

https://chefdownload-commercial.chef.io/files/<CHANNEL>/<PRODUCT>/<PRODUCT_VERSION>/<PLATFORM>/<PLATFORM_VERSION>/<ARCHITECTURE>/<FILENAME>?license_id=<LICENSE_ID>

Parameters

The API accepts the following parameters. Most endpoints use these as query string values, while the files endpoint uses the same values as path segments in the URL. Each parameter’s placeholder name (shown in angle brackets) represents both forms.

<CHANNEL>
The release channel to install from. For the available channels, see release channels.
<PRODUCT>
The Chef Software product to install.

You can see a list of valid product keys in the Chef product matrix or by using the products endpoint.

license_id
Your license ID.

A license is required to download packages and retrieve package metadata with this API.

eol
Whether to include EOL versions of a product or EOL products in the response.

Possible values: true or false.

Default value: false.

p (<PLATFORM>)
The platform.

Possible values include: debian, el (for RHEL derivatives), linux, linux-kernel2, mac_os_x, sles, ubuntu, or windows.

For a complete list, use the platforms endpoint.

pm (<PACKAGE_MANAGER>)
The package type.

This parameter is optional. If it’s not provided, the API automatically detects the platform and derives the package format from it. Include pm when you want to request a specific package format explicitly.

Values include:

  • deb for Debian-based systems, for example, Ubuntu
  • rpm for Red Hat-based systems, for example, CentOS or Fedora
  • tar for generic Unix-like systems
  • msi for Windows systems

For a complete list, use the package-managers endpoint.

pv (<PLATFORM_VERSION>)
The platform version.

Possible values depend on the platform. For example, Ubuntu: 18.04, or 20.04, or for macOS: 10.15 or 11.

m (<ARCHITECTURE>)
The machine architecture for the machine on which the product will be installed.

Possible values depend on the platform. For example, for Ubuntu or Debian: i386, x86_64, or aarch64, or for macOS: x86_64.

To get the supported architecture values, use the architectures endpoint.

v (<PRODUCT_VERSION>)
The version of the product to be installed.

Versions typically take the form of x.y.z where x, y, and z are decimal numbers that represent major (x), minor (y), and patch (z) versions. One-part (x) and two-part (x.y) versions are allowed.

Default value: latest.

<FILENAME>
The name of the package file to download.

Use the fileName endpoint to retrieve this value for a given package.

direct
Returns the download URL from the /files endpoint instead of the standard download endpoint.

Possible values: true or false.

Default value: false.

Chef product names

Use the following product keys to download packages or retrieve data for different Chef products. You can also use the products endpoint

ProductProduct keyNotes
Chef Automateautomate
Chef Backendchef-backend
Chef Habitathabitat
Chef Infra ClientchefVersions 18 and earlier
Chef Infra Client Enterprisechef-iceVersions 19 and later
Chef Infra Client Legacy Migrationmigrate-ice
Chef Infra Serverchef-server
Chef InSpecinspec
Chef InSpec Enterpriseinspec-enterprise
Chef Supermarketsupermarket
Chef Workstationchef-workstationVersions 25 and earlier
Chef Workstation Enterprisechef-workstation-enterpriseVersions 26 and later

See the supported versions documentation for information about the support status of individual products.

Release channels

Chef releases packages from the following release channels:

stable
A build from this channel is an “official” release that has passed full user acceptance testing. Artifacts in this channel are retained indefinitely.
current
A build from this channel is an “integration” build that has passed full testing, but hasn’t been officially released. Artifacts in this channel are retained for 30 days and then removed automatically.

Use the stable channel when installing Chef products on production systems.

Examples

Get the latest build

To get the latest supported build of Chef Infra Client for Ubuntu 20.04, enter the following:

https://chefdownload-commercial.chef.io/stable/chef/metadata?p=ubuntu&pv=20.04&m=x86_64&license_id=<LICENSE_ID>

which returns something like:

sha1	"8e8ae315d4695f9c95efc0a1437d2d453f7ab116"
sha256	"86f14ae08237b4e24201436ecb83c08c29b68aed1d6ede0953a1b4547a920e36"
url	"https://chefdownload-commercial.chef.io/stable/chef/download?license_id=<LICENSE_ID>&m=x86_64&p=ubuntu&pv=20.04"
version	"18.2.7"

To get the latest supported build of Chef Infra Client Enterprise for Linux 18.04, enter the following:

https://chefdownload-commercial.chef.io/stable/chef-ice/metadata?pv=18.04&m=x86_64&p=linux&pm=deb&license_id=<LICENSE_ID>

which returns something like:

sha1	"dcf75b37bb80128af4657501bfd41eac52820191"
sha256	"2c501d02b16d67e9d5a28578b95f8d3155bed940ee4946229213f41a2e8b798e"
url	"https://chefdownload-commercial.chef.io/stable/chef-ice/download?license_id=<LICENSE_ID>&eol=false&m=x86_64&p=linux&pm=deb&v=19.1.8"
version	"19.1.8"

To get the latest supported build of Chef Workstation Enterprise for Debian Linux 26.04, enter the following:

https://chefdownload-commercial.chef.io/stable/chef-workstation-enterprise/metadata?pv=26.04&m=x86_64&p=linux&pm=deb&license_id=<LICENSE_ID>

which returns something like:

sha1	"593b60c0f1266267d0dae2921e89a0b3a7c53615"
sha256	"f27c4ad2fc92f540b3508043af7012023c16a013b3caa3603d93e6ac735bed61"
url	"https://chefdownload-commercial.chef.io/stable/chef-workstation-enterprise/download?license_id=<LICENSE_ID>&eol=false&m=x86_64&p=linux&pm=deb&v=26.0.23"
version	"26.0.23"

To get the latest supported build of Chef Infra Client for Ubuntu 20.04 with a direct download URL from the /files endpoint, add the direct=true parameter:

https://chefdownload-commercial.chef.io/stable/chef/metadata?p=ubuntu&pv=20.04&m=x86_64&license_id=<LICENSE_ID>&direct=true

which returns something like:

sha1	"8e8ae315d4695f9c95efc0a1437d2d453f7ab116"
sha256	"f27c4ad2fc92f540b3508043af7012023c16a013b3caa3603d93e6ac735bed61"
url	"https://chefdownload-commercial.chef.io/files/stable/chef/18.11.11/ubuntu/20.04/x86_64/chef_18.11.11-1_amd64.deb?license_id=<LICENSE_ID>"
version	"18.11.11"

Download directly

To use curl to download a package, enter the following:

curl -LOJ 'https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/download?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&license_id=<LICENSE_ID>'

To download a specific package format, add the optional pm=<PACKAGE_MANAGER> parameter to the URL, for example:

curl -LOJ 'https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/download?p=<PLATFORM>&pm=<PACKAGE_MANAGER>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&license_id=<LICENSE_ID>'

To use GNU Wget to download a package, enter the following:

wget --content-disposition https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/download?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&license_id=<LICENSE_ID>

To download a specific package format, add the optional pm=<PACKAGE_MANAGER> parameter to the URL. For example:

wget --content-disposition https://chefdownload-commercial.chef.io/<CHANNEL>/<PRODUCT>/download?p=<PLATFORM>&pm=<PACKAGE_MANAGER>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&license_id=<LICENSE_ID>
Edit this page on GitHub

Thank you for your feedback!

×