Public API
No API key is required.
Base URL
https://dl.javamasterpro.com
Endpoints
| Methods | Endpoint | Success response |
|---|---|---|
GET, HEAD | /api/healthz | 200 JSON: {"status":"ok"} |
GET, HEAD | /api/changelog | 200 JSON containing published stable-release notes. |
GET, HEAD | /api/releases/latest?platform=win-x64 | 200 JSON metadata for latest matching release. |
GET, HEAD | /api/releases/{version}?platform=win-x64 | 200 JSON metadata for requested version. |
GET, HEAD, POST | /api/downloads/latest?platform=win-x64&kind=setup | 302 for reads or 303 for POST to latest artifact URL. |
GET, HEAD, POST | /api/downloads/{version}?platform=win-x64&kind=setup | 302 for reads or 303 for POST to versioned artifact URL. |
GET, HEAD | /api/updates/velopack/{channel}/{runtime}/{fileName} | 302 to a validated update feed or package URL. |
Unsupported methods return 405 Method Not Allowed with an Allow header.
A trailing slash is accepted on every route.
This table is the complete supported HTTP API. Raw R2 manifests and bucket listings are not exposed. Installer, checksum, and Velopack URLs returned by the API are public, but clients should not construct or discover other object paths.
Parameters
-
channelis optional on changelog, release, and download endpoints. It defaults tostable, currently the only supported value. -
platformis required on release and download endpoints. Supported values arewin-x64andwin-arm64. The legacy nameruntimeis not accepted as a query parameter. -
kindapplies only to download endpoints. It defaults tosetupand also acceptschecksum. -
versionmust be a semantic version, such as1.2.3. Prerelease and build suffixes are accepted. -
Velopack paths support channel
stableand runtimeswin-x64orwin-arm64.fileNamemust bereleases.win.jsonor a package named in that runtime's current feed. LegacyRELEASESfiles and portable archives are not exposed.
Release response
Release endpoints return one runtime-specific release. Each response contains exactly one
setup artifact and one checksum artifact. releaseNotesUrl is
omitted when no release-notes URL was published. Internal object keys and content types are not
included in the public response. Values below are illustrative.
{
"version": "1.2.3",
"channel": "stable",
"runtime": "win-x64",
"publishedAt": "2026-07-04T12:00:00.000Z",
"updateFeedUrl": "https://dl.javamasterpro.com/velopack/stable/win-x64/",
"releaseNotesUrl": "https://javamasterpro.com/changelog/#v1-2-3",
"artifacts": [
{
"kind": "setup",
"url": "https://dl.javamasterpro.com/releases/stable/1.2.3/win-x64/JavaMasterPro-Setup-win-x64.exe",
"sha256": "0000000000000000000000000000000000000000000000000000000000000000",
"sizeBytes": 12345678
},
{
"kind": "checksum",
"url": "https://dl.javamasterpro.com/releases/stable/1.2.3/win-x64/JavaMasterPro-Setup-win-x64.exe.sha256",
"sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"sizeBytes": 99
}
]
} Changelog response
Changelog releases are ordered by version. summary is optional. Section kinds are
new, improvements, fixes, and known-issues. A
summary-only release can have an empty sections array.
{
"schemaVersion": 1,
"generatedAt": "2026-07-14T12:00:00.000Z",
"channel": "stable",
"releases": [
{
"version": "1.2.3",
"publishedDate": "2026-07-14",
"summary": "Release summary.",
"sections": [
{
"kind": "fixes",
"items": ["Fixed an update check that could stall."]
}
]
}
]
} Downloads and analytics
Programmatic clients should use GET or HEAD. Those requests never record
download analytics. The website uses a form POST after analytics consent; valid
same-origin setup-download fields may be recorded asynchronously. A POST still redirects when
analytics fields are absent, invalid, or analytics delivery fails. Checksum downloads are never
recorded.
Errors, CORS, and caching
JSON successes and errors include Access-Control-Allow-Origin: *. Errors are sanitized,
use Cache-Control: no-store, and have this shape:
{
"error": {
"code": "invalid_platform",
"message": "invalid platform"
}
} -
Health responses use
no-store. -
Changelog, latest-release, latest-download, and Velopack redirects use
public, max-age=60, stale-while-revalidate=300. -
Versioned release responses and versioned read redirects use
public, max-age=31536000, immutable. - POST redirects use
private, no-store.