Magento Version JSON API: free, no auth, CORS open
15 endpoints, predictable shapes, identical schema across distributions. Replace {distribution} with magento-community, magento-commerce, or mage-os.
/api/v1/{distribution}/versions
All versions with full lifecycle data.
/api/v1/{distribution}/versions/supported
Versions currently in support.
/api/v1/{distribution}/versions/secure
Versions still receiving security patches.
/api/v1/{distribution}/versions/latest
Latest stable release.
/api/v1/{distribution}/versions/{version}
A specific release, with a derived `security` summary embedded.
/api/v1/{distribution}/versions/{version}/security
Which bulletins affect this version, its status, and the recommended fix.
/api/v1/security-bulletins
All Adobe/Magento security bulletins, keyed by id.
/api/v1/security-bulletins/{id}
One security bulletin, with CVEs and fixed-in versions.
/api/v1/patches/search
Rank QPT patches for a version against a query, modules and categories; list mode without them.
/api/v1/patches/{id}/composer.zip
Download a composer-patches ZIP bundle combining all live files for the required distribution and version. Use tests=without to omit test files; ref=current commit prefix enables immutable caching.
/api/v1/patches/{id}/composer/{vendor}/{file}
One package-relative patch as text/x-diff. Prefer a local file when configuring composer-patches.
/api/v1/patches/{id}
One quality patch with file variants, constraints and modified files.
/api/v1/patches
Every quality patch, keyed by id.
/api/v1/{distribution}/versions/{version}/patches
All quality patches applicable to this version.
/api/v1/health
Liveness check.
- version string
- The release identifier, e.g. "2.4.7-p5". Treat as opaque — do not sort lexically.
- releaseDate date
- ISO date the release was published. May be null for unreleased upcoming entries.
- eolDate date
- ISO date the release exits support. May be null.
- statusLabel enum
- pre-release · upcoming · supported (latest) · supported · eol · unknown.
- isLatestVersion boolean
- Only the latest release of a distribution has this true.
- isSecureVersion boolean
- Released and not past end of support. Lifecycle only: a release can be inside support and still have open security bulletins.
- securitySummary object
- List endpoints only. status (vulnerable · secure · eol · unknown) and requiredPatches (Adobe isolated patches for this exact release, all needed, oldest first) and upgradeRequired; all null when the distribution has no bulletin coverage. Remedies: /versions/{version}/security.
- isFutureVersion boolean
- releaseDate is in the future, or the version is an alpha, beta or RC pre-release.
- isEOLVersion boolean
- eolDate is past.
- systemRequirements object
- Sparse map of stack components. Absent keys mean “not declared,” not “incompatible.”
{
"data": {
"2.4.9": {
"version": "2.4.9",
"releaseDate": "2026-05-12",
"eolDate": "2029-05-31",
"isEOLVersion": false,
"isSecureVersion": true,
"isLatestVersion": true,
"isFutureVersion": false,
"statusLabel": "supported (latest)",
"securitySummary": { "status": "vulnerable", "requiredPatches": 4, "upgradeRequired": false },
"systemRequirements": {
"php": ["8.5"],
"composer": ["2.10"],
"mysql": ["8.4"],
"mariadb": ["11.8", "12.3"],
"opensearch": ["3"],
"valkey": ["9"],
"rabbitmq": ["4.3"],
"varnish": ["8"],
"nginx": ["1.30"]
}
}
},
"_documentation": "https://magento.watch/api",
"_description": "Latest stable release"
}
/{distribution}/versions/{version}/security{
"data": {
"distribution": "magento-community",
"version": "2.4.7",
"status": "vulnerable",
"vulnerableTo": [
{
"id": "APSB25-88",
"severity": "critical",
"publishedDate": "2025-09-09",
"cves": ["CVE-2025-54236"],
"fixedIn": "2.4.7-p7",
"isolatedPatches": []
},
{
"id": "APSB25-71",
"severity": "critical",
"publishedDate": "2025-08-12",
"cves": ["CVE-2025-49557"],
"fixedIn": "2.4.7-p7",
"isolatedPatches": []
}
// … 6 more, newest first
],
"fixedBy": [
{
"id": "APSB24-18",
"severity": "critical",
"publishedDate": "2024-04-09",
"cves": ["CVE-2024-20758", "CVE-2024-20759"],
"fixedIn": "2.4.7"
}
],
"recommendedVersion": "2.4.7-p10"
},
"_documentation": "https://magento.watch/api",
"_description": "Security status for 2.4.7"
}
- Latest version:
curl -s https://magento.watch/api/v1/magento-community/versions/latest | jq '.data | keys[0]' - All supported PHP versions:
curl -s https://magento.watch/api/v1/magento-community/versions/supported | jq '[.data[].systemRequirements.php] | add | unique' - EOL date for a specific release:
curl -s https://magento.watch/api/v1/magento-community/versions/2.4.7-p5 | jq '.eolDate'
Responses ship Cache-Control: public, max-age=3600, s-maxage=86400, stale-while-revalidate=86400. There is no rate limit at the application layer; please cache locally for high-volume polling. CORS is open (Access-Control-Allow-Origin: *).
