Python Examples
Fetch and filter data
import requests
response = requests.get("https://api.datafornerds.io/v2/microsoft/windows-update-history.json")
response.raise_for_status()
payload = response.json()
print(f"Dataset: {payload['metadata']['dataset']}")
print(f"Records: {payload['metadata']['recordCount']}")
# Filter to latest Windows 11 standard updates
win11 = [
r for r in payload["data"]
if r["MajorVersion"] == 11 and r["ReleaseType"] == "Standard"
]
for update in sorted(win11, key=lambda r: r["ReleaseDate"], reverse=True)[:5]:
print(f" {update['ReleaseDate']} {update['KBNumber']} {update['OSBuild']}")
Build a lookup dictionary
import requests
data = requests.get("https://api.datafornerds.io/v2/microsoft/language-codes.json").json()["data"]
lcid_to_bcp47 = {r["LanguageCode"]: r["BCP47"] for r in data}
print(lcid_to_bcp47["1033"]) # en-US
print(lcid_to_bcp47["1036"]) # fr-FR
Efficient polling with ETag
import requests
url = "https://api.datafornerds.io/v2/microsoft/windows-update-history.json"
etag = None
def get_updates_if_changed():
global etag
headers = {"If-None-Match": etag} if etag else {}
response = requests.get(url, headers=headers)
if response.status_code == 304:
print("No changes")
return None
response.raise_for_status()
etag = response.headers.get("ETag")
data = response.json()
print(f"Updated: {data['metadata']['recordCount']} records")
return data
Export to CSV with pandas
import pandas as pd
import requests
data = requests.get("https://api.datafornerds.io/v2/microsoft/m365-apps-update-history.json").json()["data"]
df = pd.DataFrame(data)
df["ReleaseDate"] = pd.to_datetime(df["ReleaseDate"])
df.sort_values("ReleaseDate", ascending=False, inplace=True)
# Latest release per channel
latest = df.groupby("ChannelName").first().reset_index()
print(latest[["ChannelName", "Version", "Build", "ReleaseDate"]])
# Export
df.to_csv("m365-apps-history.csv", index=False)