NuGet Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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:
| Field | Description |
|---|---|
id | Package ID (e.g., Newtonsoft.Json) |
version | Latest published version |
description | Full package description |
summary | Short summary (if provided by author) |
authors | List of author names |
owners | List of NuGet gallery owners |
totalDownloads | All-time total download count |
verified | Whether the package is NuGet-verified |
tags | List of keyword tags |
licenseUrl | URL to license page |
projectUrl | Link to project or GitHub repository |
iconUrl | URL to package icon image |
packageUrl | Direct link to the package on nuget.org |
registrationUrl | NuGet 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:
| Event | Price |
|---|---|
| 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)
- Open NuGet Scraper on Apify Store
- Set Mode to
Search by keyword - Enter a Search query (e.g.,
dependency injection) - Set Max results (up to 1,000)
- Optionally enable Include prerelease to include alpha/beta versions
- Click Start and wait for results
- Download as JSON, CSV, or Excel
Package lookup mode
- Set Mode to
Lookup specific packages - Add exact package IDs to the Package IDs list (e.g.,
Newtonsoft.Json,Serilog) - Click Start — each package is fetched individually for the latest version data
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search to search by keyword, packages to look up specific IDs |
searchQuery | string | — | Keyword for search mode |
packageIds | string[] | — | Exact package IDs for packages mode |
maxResults | integer | 50 | Max packages to return (search mode, up to 1,000) |
includePrerelease | boolean | false | Include prerelease versions in search results |
maxRequestRetries | integer | 3 | Retry 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, orserialization - 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
projectUrlto find GitHub repositories for deeper analysis (stars, issues, activity) - Pagination is automatic — the scraper handles multi-page results transparently, up to your
maxResultslimit
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 ApifyClientclient = 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.
Related actors
- npm Scraper — scrape Node.js packages from the npm registry
- PyPI Scraper — scrape Python packages from PyPI
- Crates.io Scraper — scrape Rust packages from crates.io
- pub.dev Scraper — scrape Dart/Flutter packages from pub.dev