Package Intelligence for npm and PyPI avatar

Package Intelligence for npm and PyPI

Pricing

$0.50 / 1,000 package returneds

Go to Apify Store
Package Intelligence for npm and PyPI

Package Intelligence for npm and PyPI

Track npm and PyPI packages: download stats, versions, dependencies, license, and repository. For dependency monitoring and developer marketing.

Pricing

$0.50 / 1,000 package returneds

Rating

0.0

(0)

Developer

Ken Agland

Ken Agland

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Track npm and PyPI packages: download stats, versions, dependencies, license, and repository. For dependency monitoring and developer marketing.

What it does

Looks up metadata and download stats for npm or PyPI packages, either from an explicit list of names or from an npm search, and returns one clean record per package: current version, license, homepage, repository, dependency count, last publish date, and downloads for the last day, week, and month.

Example input

Look up a fixed list of npm packages:

{ "packages": ["react", "express"], "registry": "npm" }

Search npm for packages matching a term:

{ "search": "http client", "registry": "npm", "maxItems": 20 }

Look up PyPI packages by name:

{ "packages": ["requests", "numpy"], "registry": "pypi" }

Input

FieldTypeDescription
packagesarray of stringsPackage names to look up. Takes priority over search.
searchstringFull-text search term for npm. Used only when packages is empty. PyPI has no public search API, so this is ignored when registry is pypi.
registrystringnpm or pypi. Default npm.
maxItemsintegerHow many packages to return in search mode. Default 25, max 250.

Output

Each dataset item is one package:

{
"name": "express",
"registry": "npm",
"description": "Fast, unopinionated, minimalist web framework",
"version": "5.2.1",
"license": "MIT",
"homepage": "https://expressjs.com/",
"repository": "https://github.com/expressjs/express",
"downloadsLastDay": 13245678,
"downloadsLastWeek": 92345678,
"downloadsLastMonth": 453785456,
"dependencyCount": 28,
"lastPublished": "2025-12-01T20:49:43.268Z",
"url": "https://www.npmjs.com/package/express"
}

Run summary (OUTPUT)

The run's default key-value store record OUTPUT holds an aggregate for the whole run:

{
"registry": "npm",
"mode": "packages",
"requested": 2,
"packagesReturned": 2,
"mostDownloaded": "express",
"generatedFrom": "https://registry.npmjs.org"
}

How it works

For npm, the Actor reads package metadata from the public npm registry (registry.npmjs.org), pulls download counts from the npm downloads API, and, in search mode, resolves names first through the npm search API. For PyPI, it reads metadata from pypi.org and download counts from pypistats.org. License is read from the package metadata, falling back to a License :: classifier for PyPI packages that only declare license via classifiers. A missing or rate-limited download source leaves the download fields null instead of failing the whole package. Requests use a descriptive User-Agent and retry on rate limits and server errors with backoff; unknown package names are skipped with a warning rather than stopping the run.

Use cases

  • Dependency monitoring: track version bumps, license changes, and dependency count over time.
  • Developer marketing: size up adoption of a package or a competitor's package by download volume.
  • Due diligence: check license and repository before adding a dependency.
  • Discovery: search npm for packages in a given space and compare their traction.