Developer API
Access Microsoft 365 Apps, Windows Client and Windows Server release data through our free REST API
Your Free API Key
Use this key to authenticate your API requests
1d55d59bc0c94895ab76348e1fb3a24e
Quick Start
Get up and running in seconds
Base URL: https://api.office365versions.com
Authenticate by including the subscription key in the Ocp-Apim-Subscription-Key header or as an subscription-key query parameter.
Example: Get latest Microsoft 365 Apps versions
curl -H "Ocp-Apim-Subscription-Key: 1d55d59bc0c94895ab76348e1fb3a24e" \
https://api.office365versions.com/api/M365AppsReleases
Example: Get Windows 11 releases
curl -H "Ocp-Apim-Subscription-Key: 1d55d59bc0c94895ab76348e1fb3a24e" \
https://api.office365versions.com/api/WindowsVersions/windows11/releases
Using query parameter (alternative)
https://api.office365versions.com/api/M365AppsReleases?subscription-key=1d55d59bc0c94895ab76348e1fb3a24e
API Endpoints
Complete reference of available endpoints
Microsoft 365 Apps
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/M365AppsReleases |
Complete version data with metadata |
| GET | /api/M365AppsReleases/data |
Version data array (DataTables compatible) |
| GET | /api/M365AppsReleases/channel/{channel} |
Versions for a specific channel |
| GET | /api/M365AppsReleases/channel/{channel}/latest |
Latest version for a specific channel |
Windows Client
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/WindowsVersions |
All Windows versions data (Windows 10 & 11) |
| GET | /api/WindowsVersions/releases |
All releases from both editions |
| GET | /api/WindowsVersions/latest-versions |
Latest version and build for Windows 10 & 11 |
| GET | /api/WindowsVersions/windows10/releases |
Windows 10 releases |
| GET | /api/WindowsVersions/windows11/releases |
Windows 11 releases |
| GET | /api/WindowsVersions/windows10/version/{version}/releases |
Windows 10 releases for a specific version (e.g., 22H2) |
| GET | /api/WindowsVersions/windows11/version/{version}/releases |
Windows 11 releases for a specific version (e.g., 24H2) |
| GET | /api/WindowsVersions/{edition}/latest |
Latest version for an edition (Windows10 or Windows11) |
| GET | /api/WindowsVersions/{edition}/summary |
Release summary with statistics |
| GET | /api/WindowsVersions/{edition}/recent |
Recent updates (default: 10, use ?count=N) |
| GET | /api/WindowsVersions/compare?version1=X&version2=Y |
Compare two Windows versions |
Windows Server
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/WindowsVersions/servers/summary |
Summary with latest updates per server version |
| GET | /api/WindowsVersions/server/releases |
All server releases combined |
| GET | /api/WindowsVersions/server2016/releases |
Windows Server 2016 releases |
| GET | /api/WindowsVersions/server2019/releases |
Windows Server 2019 releases |
| GET | /api/WindowsVersions/server2022/releases |
Windows Server 2022 releases |
| GET | /api/WindowsVersions/server2025/releases |
Windows Server 2025 releases |
| GET | /api/WindowsVersions/last-update |
Last data refresh timestamp |
PowerShell
Example for IT admins
$headers = @{
"Ocp-Apim-Subscription-Key" = "1d55d59bc0c94895ab76348e1fb3a24e"
}
# Get latest M365 Apps versions
$data = Invoke-RestMethod `
-Uri "https://api.office365versions.com/api/M365AppsReleases" `
-Headers $headers
# Get Windows Server 2025 releases
$server = Invoke-RestMethod `
-Uri "https://api.office365versions.com/api/WindowsVersions/server2025/releases" `
-Headers $headers
Python
Example for automation
import requests
headers = {
"Ocp-Apim-Subscription-Key": "1d55d59bc0c94895ab76348e1fb3a24e"
}
# Get latest M365 Apps versions
r = requests.get(
"https://api.office365versions.com/api/M365AppsReleases",
headers=headers
)
data = r.json()
# Get Windows 11 releases
r = requests.get(
"https://api.office365versions.com/api/WindowsVersions/windows11/releases",
headers=headers
)
Rate Limits
Fair usage policy
| Plan | Limit | Reset |
|---|---|---|
| Free | 5 requests / day | Midnight UTC |
When you exceed the daily limit, the API returns 429 Too Many Requests.
Response headers include X-RateLimit-Limit for tracking.
Need more? Contact us.
Terms of Use
Guidelines and disclaimers
- This API is provided as-is with no SLA guarantees
- Data is sourced from official Microsoft documentation
- Do not use for mission-critical production systems without caching
- We reserve the right to revoke keys that abuse the service
- Data is refreshed automatically every few hours
Response Format
All responses are JSON
Success (HTTP 200)
{
"lastUpdated": "2026-03-12T10:30:00Z",
"totalChannels": 7,
"channels": [ ... ]
}
Rate Limited (HTTP 429)
{
"statusCode": 429,
"message": "Rate limit is exceeded.
Try again in 86400 seconds."
}
For the complete interactive API specification, visit the Swagger UI .