v1 end of life: raw.datafornerds.io will be retired on November 1, 2026. Migration guide →

Windows 11 Update History

Endpoint

GET https://api.datafornerds.io/v2/microsoft/windows-11-update-history.json

A filtered subset of the full Windows Update History containing only Windows 11 records (MajorVersion = 11, OSType = "Client"). Includes all release types: Standard, Preview, Out-of-band, Hotpatch, and Hotpatch-OOB.

Schema

Same 10-field schema as the full dataset. All records have OSType = "Client" and MajorVersion = 11.

Field Type Description Example
OSType string Always "Client" in this dataset Client
MajorVersion integer Always 11 in this dataset 11
WindowsVersion string Feature update version 24H2
KBNumber string Knowledge Base article number KB5058411
OSBuild string Full OS build number 26100.4061
FullVersion string NT version string (always 10.0.x) 10.0.26100.4061
ReleaseDate date Release date (ISO 8601) 2026-05-13
ReleaseType string Standard, Preview, Out-of-band, Hotpatch, or Hotpatch-OOB Standard
IsExpired boolean Whether Microsoft has marked this update as expired false
ArticleUrl string URL to the KB article https://support.microsoft.com/kb/5058411

Notes

  • Windows 11 uses NT version 10.0 internally, so FullVersion values begin with 10.0., not 11.0..
  • Microsoft marks EXPIRED inconsistently 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-11-update-history.json'
$response.data | Where-Object { $_.ReleaseType -eq 'Hotpatch' } |
    Sort-Object ReleaseDate -Descending | Format-Table ReleaseDate, KBNumber, OSBuild
import requests

data = requests.get("https://api.datafornerds.io/v2/microsoft/windows-11-update-history.json").json()["data"]
by_type = {}
for r in data:
    by_type.setdefault(r["ReleaseType"], []).append(r)
for rt, records in by_type.items():
    print(f"{rt}: {len(records)} updates")
curl -s https://api.datafornerds.io/v2/microsoft/windows-11-update-history.json \
  | jq '[.data[] | select(.WindowsVersion == "24H2" and .ReleaseType == "Standard")] | length'

JSON Schema

/v2/microsoft/schemas/windows-11-update-history.schema.json