Please enable JavaScript to view this website.

Skip to main content

API

Full API Docs

The full list of available endpoints and how to use them can be found within the API documentation here.

Artifactory API Documentation

This API functions as a proxy to the Artifactory API. It provides endpoints to query and download artifacts from Artifactory.

Base URL

https://quicklink-api.milwaukeetool.com/v1/artifactory

Endpoints

1. Get Artifacts

URL: /artifacts

Method: GET

Description: This endpoint uses the Artifactory API to query both the FW_Releases and cluster-releases repositories for all the released artifacts for a given Part Number and Product ID combination.

Query Parameters:

  • productId (string, required): The product ID to filter artifacts.
  • partNumber (string, optional): The part number to filter artifacts.
  • production (boolean, optional): Filter for production artifacts, useful if trying to search for non released artifacts.
  • hardwareVersion (string, optional): Filter artifacts by bootloader hardware version.

Response:

  • 200 OK: Returns a list of artifacts.
  • 400 Bad Request: Invalid request parameters.
  • 500 Internal Server Error : An error occurred while processing the request.

Example Request:

GET /v1/artifactory/artifacts?productId=0x00F7&partNumber=898002235&production=false

Example Response:

[
{
"repo": "FW_Releases",
"path": "898002294_0x00F7",
"name": "898002294_REV37_VER2_1_24_MTIW_Encrypted.zip",
"size": 124929,
"created": "2023-02-17T00:09:53.421Z",
"modified": "2023-02-17T00:09:53.196Z",
"version": "37.2.1.24",
"nodeId": 1,
"changeNoteSummary": "Bug fixes and performance improvements",
"firmwareMatchSet": [
{
"productId": "0x00F7",
"nodeId": 1,
"softwarePartNumber": 898002294,
"version": "39.2.2.3"
}
],
"compatibleProductIds": []
},
{
"repo": "FW_Releases",
"path": "898002294_0x00F7",
"name": "898002294_REV39_VER2_2_3_MTIW_Encrypted.zip",
"size": 126570,
"created": "2023-03-15T18:39:34.477Z",
"modified": "2023-03-15T18:39:34.283Z",
"version": "39.2.2.3",
"nodeId": 1,
"changeNoteSummary": "Bug fixes and performance improvements",
"firmwareMatchSet": [
{
"productId": "0x00F7",
"nodeId": 1,
"softwarePartNumber": 898002294,
"version": "39.2.2.3"
}
],
"compatibleProductIds": []
}
]

2. Download Artifact

URL: /artifact/download

Method: GET

Description: This endpoint uses the Artifactory API to query for the details of an artifact, downloads, unzips (if applicable), and returns the binary (*.bin) file in the bundle.

Query Parameters:

  • path (string, required): The path within the repository.
  • artifact (string, required): The name of the artifact with the file extension same as name in the query.
  • isBle (boolean, optional): When true, extracts BLE-specific firmware from the zip bundle instead of the standard .bin file.
  • imageType (integer, required when isBle is true): 0 for apploader-signed-encrypted, 1 for application-signed-encrypted.
  • repo (string, optional): Overrides the default repository (FW_Releases) used for the download.

BLE Mode: When isBle is true, the endpoint extracts BLE-specific files from the zip bundle. Use imageType=0 for the apploader-signed-encrypted file or imageType=1 for the application-signed-encrypted file.

Note: Non-zip artifacts are returned as raw binary data without extraction.

Response:

  • 200 OK: Returns the binary file.
  • 400 Bad Request: Invalid request parameters.
  • 404 Not Found: Artifact not found.
  • 500 Internal Server Error: An error occurred while processing the request.

Example Request:

GET /v1/artifactory/artifact/download?path=898002294_0x00F7&artifact=898002294_REV39_VER2_2_3_MTIW_Encrypted.zip

Example Response:

{
"type": "buffer",
"data": [....]
}

3. Get Most Recent Artifact

URL: /latest

Method: GET

Description: This endpoint uses the Artifactory API to query the repository for the most recently released artifact for a given Part Number and Product ID combination. It only returns artifacts with release type "production candidate". The partNumber parameter is matched against the @firmware_part Artifactory property only (not @raw_firmware_part or @part_number).

Note: This endpoint uses a different environment-specific repository and connects via the Artifactory edge server.

Query Parameters:

  • productId (string, required): The product ID to filter artifacts.
  • partNumber (string, required): The part number to filter artifacts.

Response:

  • 200 OK: Returns a list of artifacts.
  • 400 Bad Request: Invalid request parameters.
  • 404 Not Found: No Artifactory found for productId/partNumber combo.
  • 500 Internal Server Error : An error occurred while processing the request.

Example Request:

GET /v1/artifactory/latest?productId=0x00F7&partNumber=898002235

Example Response:

{
"url": "https://{path-to-artifact}",
"size": 124929,
"created": "2023-02-17T00:09:53.421Z",
"modified": "2023-02-17T00:09:53.196Z",
"version": "37.2.1.24"
}

Error Handling

The API returns standard HTTP status codes to indicate the success or failure of an API request. The following are common status codes returned by the API:

  • 200 OK: The request was successful.
  • 400 Bad Request: The request was invalid or cannot be otherwise served.
  • 404 Not Found: The requested resource could not be found.
  • 500 Internal Server Error : An error occurred on the server.

Authentication

  • The /artifacts and /artifact/download endpoints require Auth0 JWT authorization (pass a Bearer token in the Authorization header).
  • The /latest endpoint is a public endpoint requiring no authentication.

Contact

For any inquiries or support, please contact the JEDI data engineering team at quicklinksupportg@milwaukeetool.com.