Free Java 8 security updates from Oracle ended in January.

Azul can help keep your Java infrastructure secure.

Learn How

Overview


⚠️ Please note, the API is in an early Alpha version and is still a subject to change.

Azul Community OpenJDK Builds API for Zulu allows you to utilize Community builds provided by Azul Systems.

This document refers to API version: v1.

API Endpoint Reference

The base URL for REST endpoints is: https://zulu.api.azul.com.

The API consists of the following REST endpoints:

List Endpoint (/api/v1/bundles/)

Method: GET

Returns a list of bundle descriptions sorted by an OpenJDK version and a Zulu bundle version. The format of the bundle description and a list of query parameters are given below.

Detail Endpoint (/api/v1/bundles/<id>/)

Method: GET

Returns a single bundle description with a given id.

Binary Endpoint (/api/v1/bundles/<id>/binary/)

Method: GET

Redirects the client to the bundle file with a given id.

Bundle Description Format

A bundle description is a JSON structure that consists of the following fields:

NameFormatDescription
idint or stringSurrogate primary key. Can be replaced with a special latest keyword (see below)
namestringBundle file name
jdk_versionint[3]Version of the OpenJDK being built
arch*stringTarget CPU architecture (see “Query Parameters)”
os*stringTarget operating system (see “Query Parameters)”
ext*stringBundle file extension (see “Query Parameters)”
last_modified*stringLast modification timestamp in the ISO 8601 format
url*stringFull URL of the bundle
zulu_version*int[4]Zulu version. Consists of major, medium, minor version components and the build numbers of the Zulu bundle.
size*intFile size in bytes
md5_hash*stringMD5 digest of the bundle contents

Fields marked with * display only in the detail view. Other fields display in both list and detail views.

NOTE: New fields can be added to the bundle description without affecting the API version.

Query Parameters

Query parameters are intended for results filtering. They should be applied to:

  • The List endpoint − at any time;
  • The Detail and Binary endpoints − when the latest keyword is used (see below).
NameLookup typeRequiredDescription
versionautomatic rangeyes

Filters query results by the version of the OpenJDK in the format of 3 numbers separated by dots: major version, minor version, and revision (i.e., semantic versioning).

Numbers can be omitted starting with the revision. The omitted number corresponds to all values.

osexact matchyes

Filters query results by the operating system that the bundle targets.

Allowed values:

  • linux − Linux, GLib
  • linux_musl − Linux, Musl
  • mac − MacOS X
  • win − Windows
  • solaris − Solaris
archexact matchyes

Filters query results by the CPU architecture the bundle is built for.

Allowed values:

  • x86 − 32-bit PC (IA32)
  • x64 − 64-bit PC (AMD64 or EM64T)
  • sparcv9 − SPARC V9
extexact matchno

Filters query results by the extension of the bundle file.

Allowed values: rpm, deb, tar.gz, zip, msi, dmg

latest Keyword

When id is replaced with this keyword, the endpoint returns a bundle with the latest OpenJDK version considering the current query parameters.


⚠️ There is a limit of 100 API calls per hour per IP. When an API call is throttled, the value of Retry-After in the response header is useful to determine the time after which the API is expected to be available again.

Examples

1. List Bundles

Request to list all the 64-bit OpenJDK 9 Linux builds in the tar.gz format:

curl "https://zulu.api.azul.com/api/v1/bundles/?version=9&ext=tar.gz&os=linux&arch=x64"

Response:

[
    {
        "id": 1037,
        "name": "zulu9.0.0.15-jdk9.0.0-linux_x64.tar.gz",
        "jdk_version": [9, 0, 0]
    },
    {
        "id": 1046,
        "name": "zulu9.0.1.3-jdk9.0.1-linux_x64.tar.gz",
        "jdk_version": [9, 0, 1]
    },
    {
        "id": 1056,
        "name": "zulu9.0.4.1-jdk9.0.4-linux_x64.tar.gz",
        "jdk_version": [9, 0, 4]
    },
    {
        "id": 1067,
        "name": "zulu9.0.7.1-jdk9.0.7-linux_x64.tar.gz",
        "jdk_version": [9, 0, 7]
    }
]

2. Retrieve Bundle Details

Request to show details of the latest 64-bit OpenJDK 8 Linux build in the tar.gz format:

curl "https://zulu.api.azul.com/api/v1/bundles/latest/?version=8&ext=tar.gz&os=linux&arch=x64"

Response:

{
    "id": 1105,
    "arch": "x64",
    "os": "linux",
    "ext": "tar.gz",
    "last_modified": "2019-04-14T21:45:00Z",
    "url": "http://cdn.azul.com/zulu/bin/zulu8.38.0.13-ca-jdk8.0.212-linux_x64.tar.gz",
    "name": "zulu8.38.0.13-ca-jdk8.0.212-linux_x64.tar.gz",
    "zulu_version": [8, 38, 0, 13],
    "jdk_version": [8, 0, 212],
    "size": 105196140,
    "md5_hash": "14136019014c020fee0fc13073d00388"
}

© Azul Systems, Inc. 2019 All rights reserved.