PowerShell Examples
Fetch and filter data
# Get all Windows 11 updates
$response = Invoke-RestMethod 'https://api.datafornerds.io/v2/microsoft/windows-11-update-history.json'
# Filter to standard releases from this year
$recent = $response.data | Where-Object {
$_.ReleaseType -eq 'Standard' -and $_.ReleaseDate -ge '2026-01-01'
}
$recent | Sort-Object ReleaseDate -Descending | Format-Table ReleaseDate, KBNumber, OSBuild
Check if your system is up to date
$response = Invoke-RestMethod 'https://api.datafornerds.io/v2/microsoft/windows-update-history.json'
$currentBuild = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').CurrentBuild
$ubr = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion').UBR
$myBuild = "$currentBuild.$ubr"
$latest = $response.data |
Where-Object { $_.MajorVersion -eq 11 -and $_.ReleaseType -eq 'Standard' } |
Sort-Object ReleaseDate -Descending |
Select-Object -First 1
if ($myBuild -eq $latest.OSBuild) {
Write-Host "You are on the latest build: $myBuild" -ForegroundColor Green
} else {
Write-Host "Current: $myBuild | Latest: $($latest.OSBuild) ($($latest.KBNumber))" -ForegroundColor Yellow
}
Efficient polling with conditional requests
$uri = 'https://api.datafornerds.io/v2/microsoft/windows-update-history.json'
$etag = $null
function Get-UpdatesIfChanged {
$headers = @{}
if ($etag) { $headers['If-None-Match'] = $etag }
try {
$response = Invoke-WebRequest -Uri $uri -Headers $headers
$script:etag = $response.Headers['ETag']
$data = $response.Content | ConvertFrom-Json
Write-Host "Data updated: $($data.metadata.recordCount) records"
return $data
} catch {
if ($_.Exception.Response.StatusCode -eq 304) {
Write-Host "No changes since last check"
return $null
}
throw
}
}
Build a language code lookup table
$response = Invoke-RestMethod 'https://api.datafornerds.io/v2/microsoft/language-codes.json'
$lookup = @{}
$response.data | ForEach-Object { $lookup[$_.LanguageCode] = $_.BCP47 }
# Convert LCID to BCP 47
$lookup['1033'] # Returns: en-US