Windows 10 Update History
Endpoint
GET https://api.datafornerds.io/v2/microsoft/windows-10-update-history.json
A filtered subset of the full Windows Update History containing only Windows 10 records (MajorVersion = 10, OSType = "Client").
Schema
Same 10-field schema as the full dataset. All records have OSType = "Client" and MajorVersion = 10.
| Field | Type | Description | Example |
|---|---|---|---|
OSType | string | Always "Client" in this dataset | Client |
MajorVersion | integer | Always 10 in this dataset | 10 |
WindowsVersion | string | Feature update version (e.g., 22H2, 21H2) | 22H2 |
KBNumber | string | Knowledge Base article number | KB5058379 |
OSBuild | string | Full OS build number | 19045.7291 |
FullVersion | string | NT version string | 10.0.19045.7291 |
ReleaseDate | date | Release date (ISO 8601) | 2026-05-13 |
ReleaseType | string | Standard, Preview, or Out-of-band | Standard |
IsExpired | boolean | Whether Microsoft has marked this update as expired | false |
ArticleUrl | string | URL to the KB article | https://support.microsoft.com/kb/5058379 |
Notes
- Microsoft marks
EXPIREDinconsistently across version sections on their update history pages. DataForNerds normalizes this at the KB level: if any version of a KB is marked expired, all versions of that KB are reported as expired.
Code examples
$response = Invoke-RestMethod 'https://api.datafornerds.io/v2/microsoft/windows-10-update-history.json'
$response.data | Where-Object { $_.WindowsVersion -eq '22H2' -and $_.ReleaseType -eq 'Standard' } |
Sort-Object ReleaseDate -Descending | Select-Object -First 5 import requests
data = requests.get("https://api.datafornerds.io/v2/microsoft/windows-10-update-history.json").json()["data"]
latest = sorted([r for r in data if r["ReleaseType"] == "Standard"],
key=lambda r: r["ReleaseDate"], reverse=True)[:5]
for u in latest:
print(f"{u['ReleaseDate']} {u['KBNumber']} {u['OSBuild']}") curl -s https://api.datafornerds.io/v2/microsoft/windows-10-update-history.json \
| jq '[.data[] | select(.ReleaseType == "Standard")] | sort_by(.ReleaseDate) | reverse | .[:5]'