← Back to package search

API & agent access

Query the same package catalog used by the browser interface.

This is a static GitHub Pages site, not a server-side search API. Query parameters such as ?q=nssm are handled by JavaScript in a browser. Scripts and agents should download the catalog and search it locally.

Catalog endpoint

https://solrevdev.com/winget-search/packages.json

The response contains extraction metadata and a packages array. Package records include the ID, name, publisher, version, descriptions, tags, homepage, and license. Some values may be null.

macOS and Linux

Requires curl and jq. Download once, then change query for additional searches.

curl -fsSL https://solrevdev.com/winget-search/packages.json -o packages.json

query='nssm'
jq --arg q "$query" '
  .packages
  | map(select(
      [.id, .name, .publisher, .description, ((.tags // []) | join(" "))]
      | map(. // "")
      | join(" ")
      | ascii_downcase
      | contains($q | ascii_downcase)
    ))
  | .[:10]
  | map({id, name, version, publisher})
' packages.json

Windows PowerShell and PowerShell 7+

This example is compatible with Windows PowerShell 5.1 and cross-platform PowerShell 7 or later.

$catalog = Invoke-RestMethod -Uri 'https://solrevdev.com/winget-search/packages.json'
$query = 'nssm'

$catalog.packages |
  Where-Object {
    $text = (@($_.id, $_.name, $_.publisher, $_.description) + @($_.tags) |
      Where-Object { $_ } |
      ForEach-Object { [string]$_ }) -join ' '
    $text.IndexOf($query, [System.StringComparison]::OrdinalIgnoreCase) -ge 0
  } |
  Select-Object -First 10 id, name, version, publisher

Create install commands

After filtering results in either shell, use the exact package ID:

winget install -e --id NSSM.NSSM

Machine-oriented instructions are also available in llms.txt.