Community API
Chef community members can use Chef’s Community API to download Chef software packages and view software package metadata.
License
You must have a Free Tier License ID to download packages from the Chef Community API. To generate a new license ID or retrieve an existing license ID, submit a request.
See Chef’s licensing documentation for more information on the Chef license.
Endpoints
The Chef Community Download API has the following endpoints:
/architectures/platforms/products/packages/versions/all/versions/latest/metadata/download/fileName/files
See the parameters section below to understand the query strings and path parameters used in the following endpoint descriptions.
architectures
The architectures endpoint returns a valid list of architecture that Chef products are built for.
Any of these architectures can be used in the m query string value in various endpoints below.
https://chefdownload-community.chef.io/architectures
platforms
The platforms endpoint returns a list of valid platform keys along with full product names. Any of these platform keys can be used in the p query string value in various endpoints below.
https://chefdownload-community.chef.io/platforms
products
The products endpoint returns a list of valid product keys. In the following endpoints, you can replace the <PRODUCT> string with a product key in the response of this endpoint.
https://chefdownload-community.chef.io/products
Use eol=true to return EOL products.
https://chefdownload-community.chef.io/products?eol=true
packages
Use packages to get a list of all packages for a particular product.
By default, it returns packages for the latest version.
https://chefdownload-community.chef.io/stable/<PRODUCT>/packages?license_id=<LICENSE_ID>
You can specify a version number with the v query string to get packages for a particular product version.
https://chefdownload-community.chef.io/stable/<PRODUCT>/packages?v=<VERSION_NUMBER>&license_id=<LICENSE_ID>
To retrieve download URLs from the /files endpoint, add the direct=true parameter:
https://chefdownload-community.chef.io/stable/<PRODUCT>/packages?license_id=<LICENSE_ID>&direct=true
versions/all
Use versions/all to return a list of versions of a product.
https://chefdownload-community.chef.io/stable/<PRODUCT>/versions/all?license_id=<LICENSE_ID>
versions/latest
Use versions/latest to return the latest version of a product.
https://chefdownload-community.chef.io/stable/<PRODUCT>/versions/latest?license_id=<LICENSE_ID>
metadata
The metadata endpoint returns data about a particular package of a Chef product.
https://chefdownload-community.chef.io/stable/<PRODUCT>/metadata?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>
To retrieve metadata with a download URL from the /files endpoint, add the direct=true parameter:
https://chefdownload-community.chef.io/stable/<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.
https://chefdownload-community.chef.io/stable/<PRODUCT>/download?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>
fileName
The fileName endpoint returns the file name.
https://chefdownload-community.chef.io/<CHANNEL>/<PRODUCT>/fileName?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&v=<PRODUCT_VERSION>&license_id=<LICENSE_ID>
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-community.chef.io/files/stable/<PRODUCT>/<PRODUCT_VERSION>/<PLATFORM>/<ARCHITECTURE>/<FILENAME>?license_id=<LICENSE_ID>
Download packages for other products:
https://chefdownload-community.chef.io/files/stable/<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. The Community API only supports the
stablechannel. <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
productsendpoint. license_id- Your license ID.
A license is required to download packages and retrieve package metadata with this API. Only free licenses can be used for community downloads.
eol- Whether to include EOL versions of a product or EOL products in the response.
Possible values:
trueorfalse.Default value:
false. p(<PLATFORM>)- The platform.
Possible values:
debian,el(for RHEL derivatives),freebsd,mac_os_x,solaris2,sles,suse,ubuntuorwindows.For a complete list, use the
platformsendpoint. pv(<PLATFORM_VERSION>)- The platform version.
Possible values depend on the platform. For example, Ubuntu:
18.04, or20.04, or for macOS:10.15or11. 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:
i386orx86_64, or for macOS:x86_64.To get the supported architecture values, use the
architecturesendpoint. v(<PRODUCT_VERSION>)- The version of the product to be installed.
Versions typically take the form of
x.y.zwhere 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
fileNameendpoint to retrieve this value for a given package. direct- Returns the download URL from the
/filesendpoint instead of the standard download endpoint.Possible values:
trueorfalse.Default value:
false.
Chef product names
See the Supported Versions documentation for information about the support status of individual products.
This is a list of currently supported products that you can install with this API.
| Product | Product Key |
|---|---|
| Chef Automate | automate |
| Chef Infra Client | chef |
| Chef Infra Server | chef-server |
| Chef Workstation | chef-workstation |
| Chef Habitat | habitat |
| Chef InSpec | inspec |
| Supermarket | supermarket |
Examples
Get the latest build
To get the latest supported build of Chef Infra Client for Ubuntu 20.04, enter the following:
https://chefdownload-community.chef.io/stable/chef/metadata?p=ubuntu&pv=20.04&m=x86_64&license_id=<LICENSE_ID>
which returns something like:
sha1 "3c8a265a36c2ce7e5594ae894fafb248789464a2"
sha256 "512c1eff0a4103e4a5c73b196d14393eddbf2b766a75e94ac9a9cb97d1fdd19c"
url "https://chefdownload-community.chef.io/stable/chef/download?eol=false&m=x86_64&p=ubuntu&pv=20.04&v=14.15.6"
version "14.15.6"
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-community.chef.io/stable/chef/metadata?p=ubuntu&pv=20.04&m=x86_64&license_id=<LICENSE_ID>&direct=true
which returns something like:
sha1 "3c8a265a36c2ce7e5594ae894fafb248789464a2"
sha256 "512c1eff0a4103e4a5c73b196d14393eddbf2b766a75e94ac9a9cb97d1fdd19c"
url "https://chefdownload-community.chef.io/files/stable/chef/14.15.6/ubuntu/20.04/x86_64/chef_14.15.6-1_amd64.deb?license_id=<LICENSE_ID>"
version "14.15.6"
Download directly
To use curl to download a package directly, enter the following:
curl -LOJ 'https://chefdownload-community.chef.io/stable/<PRODUCT>/download?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&license_id=<LICENSE_ID>'
To use GNU Wget to download a package directly, enter the following:
wget --content-disposition https://chefdownload-community.chef.io/stable/<PRODUCT>/download?p=<PLATFORM>&pv=<PLATFORM_VERSION>&m=<ARCHITECTURE>&license_id=<LICENSE_ID>