Fetch API Documentation

February 5, 2026 · View on GitHub

中文

This document describes how to use NVIDIA's official API to get the driver list for a specific GPU model.

API Overview

NVIDIA provides public APIs for their driver download page. We can call these APIs directly to fetch driver information.

API Endpoints

EndpointPurpose
lookupValueSearch.aspx?TypeID=2Get product series list (psid)
lookupValueSearch.aspx?TypeID=3Get product list (pfid)
lookupValueSearch.aspx?TypeID=4Get OS list (osid)
processFind.aspxQuery driver list with parameters

Getting Parameter Values

First, test what format the API returns using PowerShell commands.

Get osid for Windows 11

[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; (Invoke-RestMethod -Uri "https://www.nvidia.com/Download/API/lookupValueSearch.aspx?TypeID=4" -Headers @{"User-Agent"="Mozilla/5.0"}).LookupValueSearch.LookupValues.LookupValue | ? { $_.Name -eq "Windows 11" -or $_.Name -match '^Windows\s*11(\s*64-?bit)?$' }

It returns:

Code Name       Value
---- ----       -----
10.0 Windows 11 135

Seems osid is 135.

Get psid for RTX 40 Series Notebooks

[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; (Invoke-RestMethod -Uri "https://www.nvidia.com/Download/API/lookupValueSearch.aspx?TypeID=2" -Headers @{"User-Agent"="Mozilla/5.0"}).LookupValueSearch.LookupValues.LookupValue | ? { $_.Name -match 'GeForce' -and $_.Name -match 'RTX\s*40' -and $_.Name -match 'Notebook' } | select -First 1 -ExpandProperty Value

It returns:

129

Thus the psid is 129.

Get pfid for GeForce RTX 4060 Laptop GPU

note: sometimes, the laptop GPUs name string have no NVIDIA prefix, but desktop edition have

[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; (Invoke-RestMethod -Uri "https://www.nvidia.com/Download/API/lookupValueSearch.aspx?TypeID=3" -Headers @{"User-Agent"="Mozilla/5.0"}).LookupValueSearch.LookupValues.LookupValue | ? { $_.Name -eq "GeForce RTX 4060 Laptop GPU" } | select -First 1 -ExpandProperty Value

Result is:

1007

Thus the pfid is 1007.

Query Driver List

Construct the URL with the parameters:

https://www.nvidia.com/Download/processFind.aspx?dtcid=1&lang=zh-hans&lid=1&osid=135&pfid=1007&psid=129

Parameters

ParameterDescriptionExample
dtcidDriver type: 1=Game Ready, 0=Studio1
langLanguage codeen-us, zh-hans
lidLanguage ID1
osidOperating System ID135 (Windows 11)
pfidProduct ID1007 (RTX 4060 Laptop)
psidProduct Series ID129 (RTX 40 Notebooks)

Response Format

The API returns an HTML table with available drivers:

webpage

Click the first link to enter the https://www.nvidia.com/en-us/drivers/details/xxxx/ page, where you can download the driver by clicking the "Download" button.

Download URL Format

Driver download URLs follow this pattern:

Notebook version:

https://us.download.nvidia.com/Windows/{version}/{version}-notebook-win10-win11-64bit-international-dch-whql.exe

Desktop version:

https://us.download.nvidia.com/Windows/{version}/{version}-desktop-win10-win11-64bit-international-dch-whql.exe

Example

https://us.download.nvidia.com/Windows/591.86/591.86-notebook-win10-win11-64bit-international-dch-whql.exe

Code Implementation

In NvwUpd, DriverFetcher.cs implements the above API calls:

  1. First fetch psid and pfid from TypeID=2 and TypeID=3
  2. Get osid for current Windows version from TypeID=4
  3. Call processFind.aspx to get driver list
  4. Parse HTML response to extract version and driver ID
  5. Construct download URL

This approach eliminates the need for hardcoded product IDs - the code works automatically when NVIDIA releases new GPUs.