NuGet Scraper avatar

NuGet Scraper

Pricing

Pay per event

Go to Apify Store
NuGet Scraper

NuGet Scraper

Scrape NuGet packages — search by keyword or extract metadata for specific package IDs including version, downloads, authors, tags, and license.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Scrape packages from the NuGet Gallery, Microsoft's official .NET package registry. Search by keyword or look up specific packages by ID to extract version info, download counts, authors, tags, license URLs, and project links — all via the public NuGet REST API, no browser needed.

What does NuGet Scraper do?

NuGet Scraper uses the NuGet v3 public API to extract package metadata from the world's official .NET package registry. Two modes are supported:

  • Search mode — enter a keyword and get ranked results with full metadata, including the most popular matching packages
  • Package lookup mode — provide a list of exact package IDs and get the latest version details for each

All data is fetched from NuGet's official public API. No authentication required, no browser overhead.

Who is it for?

  • 🔵 .NET developers — discover the best NuGet packages for their projects
  • 📊 Technology analysts — research .NET ecosystem trends and library adoption
  • 🏢 Engineering managers — evaluate package health, maintenance status, and download momentum
  • 🔒 Security teams — audit package authorship, verification status, and license types
  • 📝 Technical writers — build comparison guides and package surveys
  • 🤖 Developers building tools — power package recommendation engines or dependency dashboards

Why scrape NuGet?

NuGet hosts over 350,000 unique packages and serves billions of downloads per month. It is the canonical source for .NET library ecosystem data.

Key reasons to use this scraper:

  • Ecosystem analysis — understand which packages dominate any .NET technology area
  • Technology benchmarking — compare download counts and maintenance activity across competing libraries
  • Competitive intelligence — monitor download growth for packages competing in the same space
  • Dependency auditing — bulk-check license types, verification status, and project URLs
  • Developer tooling — feed package data into recommendation systems, dashboards, or IDE plugins

What data does it extract?

Each output item contains:

FieldDescription
idPackage ID (e.g., Newtonsoft.Json)
versionLatest published version
descriptionFull package description
summaryShort summary (if provided by author)
authorsList of author names
ownersList of NuGet gallery owners
totalDownloadsAll-time total download count
verifiedWhether the package is NuGet-verified
tagsList of keyword tags
licenseUrlURL to license page
projectUrlLink to project or GitHub repository
iconUrlURL to package icon image
packageUrlDirect link to the package on nuget.org
registrationUrlNuGet registration API URL for this package

How much does it cost to scrape NuGet packages?

NuGet Scraper pricing uses Pay-Per-Event billing — you pay only for what you extract:

EventPrice
Run started$0.005 (one-time per run)
Per package extracted$0.001

Example costs:

  • 50 packages → ~$0.055
  • 200 packages → ~$0.205
  • 1,000 packages → ~$1.005

No proxy costs — the NuGet public API is freely accessible over plain HTTPS.

How to use NuGet Scraper

Search mode (default)

  1. Open NuGet Scraper on Apify Store
  2. Set Mode to Search by keyword
  3. Enter a Search query (e.g., dependency injection)
  4. Set Max results (up to 1,000)
  5. Optionally enable Include prerelease to include alpha/beta versions
  6. Click Start and wait for results
  7. Download as JSON, CSV, or Excel

Package lookup mode

  1. Set Mode to Lookup specific packages
  2. Add exact package IDs to the Package IDs list (e.g., Newtonsoft.Json, Serilog)
  3. Click Start — each package is fetched individually for the latest version data

Input parameters

ParameterTypeDefaultDescription
modestringsearchsearch to search by keyword, packages to look up specific IDs
searchQuerystringKeyword for search mode
packageIdsstring[]Exact package IDs for packages mode
maxResultsinteger50Max packages to return (search mode, up to 1,000)
includePrereleasebooleanfalseInclude prerelease versions in search results
maxRequestRetriesinteger3Retry attempts per failed request

Output format

Each dataset item is a JSON object:

{
"id": "Newtonsoft.Json",
"version": "13.0.4",
"description": "Json.NET is a popular high-performance JSON framework for .NET",
"summary": "",
"authors": ["James Newton-King"],
"owners": ["dotnetfoundation", "jamesnk", "newtonsoft"],
"totalDownloads": 8156351910,
"verified": true,
"tags": ["json"],
"licenseUrl": "https://www.nuget.org/packages/Newtonsoft.Json/13.0.4/license",
"projectUrl": "https://www.newtonsoft.com/json",
"iconUrl": "https://api.nuget.org/v3-flatcontainer/newtonsoft.json/13.0.4/icon",
"packageUrl": "https://www.nuget.org/packages/Newtonsoft.Json",
"registrationUrl": "https://api.nuget.org/v3/registration5-semver1/newtonsoft.json/index.json"
}

Tips and best practices

  • For broad market research, use search mode with keywords like logging, dependency injection, or serialization
  • For specific package audits, use packages mode with a curated list of IDs — ideal for scanning your own dependency tree
  • Sort by downloads in your downstream analysis to find the most battle-tested packages
  • Check verified — NuGet-verified packages have confirmed ownership and are less likely to be typosquatted
  • Use projectUrl to find GitHub repositories for deeper analysis (stars, issues, activity)
  • Pagination is automatic — the scraper handles multi-page results transparently, up to your maxResults limit

Integrations

NuGet Scraper integrates with the full Apify ecosystem:

  • Apify datasets — results stored automatically, exportable as JSON, CSV, Excel, or XML
  • Webhooks — trigger downstream workflows when a run completes
  • Apify Scheduler — run weekly to track NuGet ecosystem trends over time
  • Google Sheets — push results via Apify's Google Sheets integration
  • Make / Zapier — connect to thousands of apps for no-code automation

API Usage

You can trigger NuGet Scraper programmatically using the Apify API or SDK.

Node.js (apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/nuget-scraper').call({
mode: 'search',
searchQuery: 'logging',
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_API_TOKEN')
run = client.actor('automation-lab/nuget-scraper').call(run_input={
'mode': 'search',
'searchQuery': 'logging',
'maxResults': 100,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['id'], item['totalDownloads'])

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~nuget-scraper/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode":"search","searchQuery":"logging","maxResults":20}'

See the Apify API docs for full reference.

Use with AI agents (MCP)

NuGet Scraper is available as a tool for AI agents via the Apify MCP server.

Quick setup

Claude Code / CLI:

$claude mcp add --transport http "https://mcp.apify.com?token=YOUR_APIFY_TOKEN&tools=automation-lab/nuget-scraper"

Claude Desktop / Cursor / VS Code — add to your MCP config JSON:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?token=YOUR_APIFY_TOKEN&tools=automation-lab/nuget-scraper",
"transport": "http"
}
}
}

Replace YOUR_APIFY_TOKEN with your token from console.apify.com/account/integrations.

Example prompts

  • "Find the top 20 .NET JSON serialization packages by download count"
  • "Look up the latest stable version of Newtonsoft.Json and Serilog and tell me which has more downloads"
  • "Search for dependency injection packages and export the top 50 results to CSV"

Legality and terms of use

NuGet Scraper uses the official NuGet public API which is freely available and designed for programmatic access. All data returned is publicly visible on the NuGet Gallery.

  • No authentication or login bypass is performed
  • Rate limits are respected via retry-with-backoff
  • This scraper complies with NuGet's terms of use
  • Users are responsible for ensuring their use case complies with applicable laws

FAQ

Can I scrape all packages on NuGet? Yes, the NuGet search API supports pagination up to 1,000 results per search. For full catalog access, combine multiple keyword searches.

Does it get prerelease packages? Optionally. Enable includePrerelease to include alpha, beta, and RC versions in search results.

What if a package ID doesn't exist? In packages mode, missing packages are skipped with a warning. Other packages in the list continue to be processed.

Is this official NuGet data? Yes — the scraper uses the official api.nuget.org REST API endpoints, not HTML scraping.

How current is the data? The NuGet API reflects real-time registry state. Download counts may lag slightly (updated hourly by Microsoft).

Why is package lookup mode returning a prerelease version? In packages mode, the scraper walks backward through NuGet's registration index to find the latest stable version when includePrerelease is disabled. If the latest version contains a prerelease marker (e.g., -dev, -beta, -rc), the most recent stable release is returned instead. If all versions in the registry are prerelease, the latest version is returned regardless of the setting.

What happens if the NuGet API is temporarily unavailable? Each request retries automatically up to maxRequestRetries times (default 3) with exponential backoff. If all retries fail for a specific package, that package is skipped with a warning in the run log and processing continues. The run still succeeds with partial results.