npm & PyPI Package Scraper: Downloads, Stars, Vulnerabilities avatar

npm & PyPI Package Scraper: Downloads, Stars, Vulnerabilities

Pricing

$1.00 / 1,000 package results

Go to Apify Store
npm & PyPI Package Scraper: Downloads, Stars, Vulnerabilities

npm & PyPI Package Scraper: Downloads, Stars, Vulnerabilities

Input: npm or PyPI package names. Output: package metadata, download counts, GitHub stars, known vulnerabilities and maintenance-health signals per package. $1 per 1,000 packages.

Pricing

$1.00 / 1,000 package results

Rating

0.0

(0)

Developer

Winters Works

Winters Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Categories

Share

Get clean, flat metadata for npm and PyPI packages in one run: latest version, license, maintainers, release history, weekly and monthly downloads, dependency count, GitHub stars, known vulnerabilities and a simple health rating. Everything comes from official public APIs. No scraping, no login, no proxies.

What you get per package

FieldNotes
ecosystem, name, latestVersion, urlnpm or pypi
description, license, homepage, repoUrlrepo URL normalized
author, maintainers, keywords
createdAt, lastPublishedAt, versionsCountPyPI created date = first upload
weeklyDownloads, monthlyDownloadsoptional
dependenciesCountruntime dependencies of the latest version
githubStars, githubOpenIssues, githubLastCommitoptional
vulnCount, vulnIdsoptional, known vulnerabilities in the latest version (OSV.dev)
deprecated, deprecatedMessage
daysSinceLastRelease, healthactive / slowing / stale / abandoned / deprecated

Health thresholds: active up to 180 days since last release, slowing up to 18 months, stale up to 3 years, abandoned beyond that.

Use cases

  • Dev-tool marketing: find popular packages and their maintainers in your niche (use npm search, e.g. keywords:mcp).
  • Supply-chain security: audit a dependency list for abandoned, deprecated or vulnerable packages.
  • OSS analysis and due diligence: compare adoption, release cadence and GitHub traction across projects.
  • Investors and researchers: track growth of developer tools by downloads and stars.

Example input

{
"ecosystem": "both",
"packages": ["react", "requests", "@types/node"],
"includeDownloads": true,
"includeGithub": false,
"includeVulns": true
}

Search npm instead:

{ "ecosystem": "npm", "packages": [], "searchQuery": "keywords:web-scraping", "maxResults": 50 }

Example output

{
"ecosystem": "pypi", "name": "requests", "latestVersion": "2.32.3",
"license": "Apache-2.0", "weeklyDownloads": 60000000,
"dependenciesCount": 4, "vulnCount": 0, "daysSinceLastRelease": 120, "health": "active"
}

Pricing

Pay per result: about $1 per 1,000 packages (one package-result event per record). Set a maximum spend per run and the Actor stops cleanly when it is reached.

FAQ

Does it need API keys? No. A GitHub token is optional and only raises the GitHub rate limit from 60 to 5,000 requests per hour. Without it, enable GitHub stats only for small lists.

Can I search PyPI? PyPI has no official search API, so search works on npm only. For PyPI, provide package names.

With ecosystem "both", what happens to a name that exists on only one registry? It is looked up on both and missing ones are skipped.

How fresh is the data? Live at run time. PyPI download numbers come from pypistats.org, which updates daily; requests to it are throttled to about one per second.

Are vulnerabilities complete? They come from OSV.dev for the latest version only. Treat it as a screening signal, not a full audit.

Data sources

registry.npmjs.org (metadata and search), api.npmjs.org (downloads), pypi.org JSON API, pypistats.org, api.github.com (optional), api.osv.dev (optional).

By Winters Works.

Yes, in the sense that it only reads public or official data: the public npm, PyPI, OSV.dev and (optionally) GitHub APIs. It does not log in, bypass paywalls or access private data. You remain responsible for how you use the results, including privacy, copyright and marketing laws. Not affiliated with or endorsed by the data sources.

Quick start and cost

Run it with the prefilled input to see sample output in seconds; the default run costs only a few cents at most. Then adjust the input and schedule it.

Use from code and AI agents

Call it from any language with the Apify API, or let an AI agent find and run it through the Apify MCP server.

from apify_client import ApifyClient
run = ApifyClient("<YOUR_APIFY_TOKEN>").actor("wintersworks/npm-pypi-package-intelligence").call(run_input={"ecosystem": "both", "packages": ["react", "requests"]})
items = ApifyClient("<YOUR_APIFY_TOKEN>").dataset(run["defaultDatasetId"]).list_items().items

Results land in the run's dataset (JSON, CSV, Excel). Set a maximum charge per run in the run options to cap spend.

About

Built and maintained by Winters Works. Questions or feature requests: open an issue on the Actor page or email wintersworks.shop@gmail.com.