npm Package Scraper — Downloads, Maintainers & Metadata avatar

npm Package Scraper — Downloads, Maintainers & Metadata

Pricing

from $2.30 / 1,000 results

Go to Apify Store
npm Package Scraper — Downloads, Maintainers & Metadata

npm Package Scraper — Downloads, Maintainers & Metadata

Scrape npm packages: name, version, description, keywords, license, repository, homepage, dependencies, version count, created/updated dates, monthly downloads, quality/popularity scores and maintainers with emails. Search by keyword or pass package names. For dev market research and lead gen.

Pricing

from $2.30 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

22 days ago

Last modified

Share

Scrape npm packages at scale: name, version, description, keywords, license, repository, dependencies, version history, created/updated dates, download counts, quality/popularity scores and maintainers with emails. Search by keyword or pass exact package names. Clean JSON/CSV/Excel in seconds. Built for JavaScript ecosystem research, dependency intelligence and developer lead generation.


What This Actor Does

Search the npm registry or pass package names and get one clean record per package:

  • Identity — name, latest version, description, keywords, license
  • Popularity — download count (day/week/month) and npm's quality, popularity and maintenance scores
  • Code — repository, homepage, bugs/issues URL, dependency & dev-dependency counts, published version count
  • Timeline — first-published and last-updated dates
  • People — last publisher and maintainers with emails — a built-in developer lead layer

Why Use This

  • Measure adoption. Download counts and scores for any package or search — rank the ecosystem.
  • Dependency & supply-chain intelligence. Licenses, dependencies, versions and update cadence at a glance.
  • Developer lead generation. Maintainer emails and publishers for outreach, hiring and partnerships.
  • Open and free. Reads the public npm registry and downloads API — no key, no login, no anti-bot.

Quick Start

Run it in the console (no code)

  1. Add search terms (e.g. react, csv parser) and/or exact package names.
  2. Keep downloads and registry details on for popularity and maintainer data.
  3. Set Max packages, click Start, export as JSON, CSV, Excel or HTML.

Rank packages by downloads (Python)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("YOUR_USERNAME/npm-package-scraper").call(run_input={
"searchTerms": ["orm"], "downloadPeriod": "last-month", "maxItems": 500,
})
for p in sorted(client.dataset(run["defaultDatasetId"]).list_items().items, key=lambda x: x.get("downloads") or 0, reverse=True):
print(p["downloads"], "·", p["name"], "·", p["version"], "·", p["maintainerEmails"])

Audit specific packages (Python)

run = client.actor("YOUR_USERNAME/npm-package-scraper").call(run_input={
"packageNames": ["express", "@babel/core", "lodash"],
})

Input Parameters

FieldTypeDescription
searchTermsarrayKeywords to search npm (supports qualifiers like keywords:cli, author:x).
packageNamesarrayExact package names (e.g. express, @babel/core).
includeDetailsbooleanFetch registry data: maintainer emails, repository, dependencies, versions, dates.
includeDownloadsbooleanFetch download counts.
downloadPeriodstringlast-day, last-week or last-month.
maxItemsintegerMax packages across all searches. 0 = no limit.
maxPagesPerSearchintegerPagination cap per search (250 per page).
proxyConfigurationobjectApify Proxy. Datacenter is enough (public API).

Output

{
"name": "express", "version": "5.2.1",
"description": "Fast, unopinionated, minimalist web framework",
"keywords": ["express", "framework", "web"], "license": "MIT",
"downloads": 561397501, "downloadPeriod": "last-month",
"homepage": "https://expressjs.com/",
"repository": "https://github.com/expressjs/express",
"npmUrl": "https://www.npmjs.com/package/express",
"dependenciesCount": 28, "versionCount": 289,
"createdAt": "2010-12-29T...", "modifiedAt": "2026-10-01T...",
"maintainers": [{"name": "wesleytodd", "email": "wes@wesleytodd.com"}],
"maintainerEmails": "wes@wesleytodd.com; npm@jonchurch.com",
"popularityScore": 0.95, "qualityScore": 0.9, "maintenanceScore": 0.9
}

Use Cases

  1. Ecosystem & adoption research — rank packages by downloads and scores for any niche.
  2. Dependency & supply-chain intelligence — licenses, dependencies and update cadence.
  3. Developer lead generation — maintainer emails and publishers for outreach and hiring.
  4. Competitive & trend analysis — track versions, downloads and maintenance over time.

Tips

  • downloadPeriod switches the download window (day/week/month).
  • maintainerEmails is a flat, ready-to-use lead field; maintainers has the structured list.
  • popularityScore / qualityScore / maintenanceScore are npm's own 0–1 signals for ranking.
  • Search qualifiers work in searchTerms (e.g. keywords:cli, author:sindresorhus).
  • Schedule it with Apify Schedules to track adoption over time.

Frequently Asked Questions

Do I need an account or key? No. The npm registry and downloads API are public and free — no login, key or anti-bot.

Are maintainer emails included? Yes — the registry exposes maintainer names and public emails, returned both as a structured list and a flat maintainerEmails field.

Can I get download counts for a custom range? This Actor supports day, week and month windows via downloadPeriod.

Does it support scoped packages? Yes — pass names like @babel/core.

What export formats are supported? JSON, CSV, Excel, HTML, or via API — plus Google Sheets, webhooks, Make and Zapier.


This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by npm, Inc. or GitHub. It reads only public registry data. Maintainer emails are published by the registry — use them responsibly and in line with applicable terms and data-protection laws.