npm Scraper - Packages, Downloads & Maintainer Leads avatar

npm Scraper - Packages, Downloads & Maintainer Leads

Pricing

from $3.00 / 1,000 package results

Go to Apify Store
npm Scraper - Packages, Downloads & Maintainer Leads

npm Scraper - Packages, Downloads & Maintainer Leads

Scrape the npm registry by keyword or package name. Get version, description, keywords, license, GitHub repo, homepage, weekly/monthly downloads, quality/popularity scores, dependencies and maintainer contact emails as B2B developer leads. No key, no login. Export JSON, CSV, Excel.

Pricing

from $3.00 / 1,000 package results

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

npm Scraper — Packages, Downloads & Maintainer Leads

Search the npm registry by keyword or package name and get a rich, structured record for every package — version, description, keywords, license, GitHub repo, homepage, weekly/monthly downloads, dependent counts, dependencies, and the part other scrapers miss: maintainer contact emails and company domains as ready-to-use B2B developer leads.

No API key, no login, no browser — fast JSON extraction straight from the public npm registry with high reliability.

Why this npm scraper?

The npm registry is the largest software registry in the world, and every package carries publicly published maintainer metadata. This actor merges the search API, the registry detail API, and the downloads API into one clean record — and turns a keyword into a scored lead list of the developers and companies behind the packages.

DataTypical scrapersThis actor
Name, version, description, keywords
GitHub repository + homepagepartial
Weekly & monthly downloads
npm search relevance score
Maintainer emails
Company domains (from email addresses)
License
Dependent count (packages depending on it)
Created & last-published dates✅ opt-in
Dependency list + version count✅ opt-in
Deprecation status✅ opt-in
Lead score (0–100)
Monitor mode — only new / updated packages

Use cases

  • Developer & maintainer lead generation — sell a dev tool, SDK, API, or DevRel service? Search a niche (stripe, kubernetes, web scraping) and reach package maintainers at their published email, filtered to real company domains.
  • Developer-tool market research — map every package in a category with downloads, dependent counts, and last-publish dates to size and track a market.
  • Supply-chain & dependency intelligence — pull packages, their dependency lists, maintainers, and maintenance health for security and risk analysis.
  • Open-source recruiting & partnerships — find the active maintainers behind popular packages by language, topic, or company.
  • Package monitoring — schedule recurring runs to watch a keyword for new and freshly-published packages.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the npm Scraper, enter search queries (or package names), and click Start.
  3. Watch packages stream into the dataset table.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"searchQueries": ["web scraping", "keywords:cli"],
"packageNames": ["express", "@angular/core"],
"maxResults": 100,
"includeDownloads": true,
"includeDetails": true,
"includeDependencies": false,
"onlyWithEmail": false,
"minMonthlyDownloads": 1000,
"monitorMode": false
}
  • searchQueries — keywords; supports npm qualifiers like keywords:cli, author:sindresorhus, scope:angular.
  • packageNames — exact package names to fetch directly (always fully detailed).
  • maxResults (default 100) — total packages to scrape across all queries.
  • includeDownloads (default true) — add last-week and last-month download counts.
  • includeDetails (default false) — fetch full registry metadata: created date, version count, deprecation, named maintainers, dependency count. (License, download counts and dependent counts ship with every search result — you do not need this switch for those.)
  • includeDependencies (default false) — when details are on, output the dependency name list too.
  • onlyWithEmail / onlyWithRepository — keep only contactable / source-linked packages.
  • minMonthlyDownloads (default 0) — keep only packages above a popularity threshold.
  • monitorMode (default false) — output only packages that are new or newly-versioned since the last run.

Output

One record per package (type: "package"):

{
"type": "package",
"name": "got-scraping",
"version": "4.2.1",
"description": "HTTP client made for scraping based on got.",
"keywords": ["scraping", "http", "got", "crawlee"],
"npmUrl": "https://www.npmjs.com/package/got-scraping",
"homepage": "https://github.com/apify/got-scraping#readme",
"repositoryUrl": "https://github.com/apify/got-scraping",
"githubRepo": "apify/got-scraping",
"bugsUrl": "https://github.com/apify/got-scraping/issues",
"author": { "name": "Apify", "email": "support@apify.com" },
"publisher": { "username": "apify-release", "email": "apify-release@apify.com" },
"maintainers": [{ "username": "mtrunkat", "email": "marek@apify.com" }],
"maintainerEmails": ["support@apify.com", "marek@apify.com"],
"maintainerCount": 4,
"companyDomains": ["apify.com"],
"license": "ISC",
"createdAt": "2021-03-18T12:00:00.000Z",
"lastPublishedAt": "2026-05-30T09:14:00.000Z",
"versionCount": 73,
"isDeprecated": false,
"dependenciesCount": 7,
"weeklyDownloads": 412044,
"monthlyDownloads": 1820551,
"dependentsCount": 1284,
"finalScore": 1802,
"emailFound": true,
"leadScore": 88,
"searchQuery": "web scraping",
"scrapedAt": "2026-06-27T12:00:00.000Z"
}

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

  • Apify API — start runs, fetch datasets, and manage schedules over REST.
  • apify-client for JavaScript and apify-client for Python — official SDKs.
  • Schedules — run it daily/weekly with monitorMode to watch a keyword for new and updated packages, collecting only what changed.
  • Webhooks — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/npm-scraper').call({
searchQueries: ['react components'],
maxResults: 200,
includeDownloads: true,
onlyWithEmail: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} packages & maintainer leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new maintainer leads straight into your CRM.
  • Slack — get notified when a monitored keyword gains a new package.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find popular web-scraping npm packages with a maintainer email and over 100k monthly downloads" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete developer & open-source intelligence stack:

Tips

  • Best lead quality: turn on onlyWithEmail and set minMonthlyDownloads to focus on active, popular packages run by reachable maintainers — then filter the companyDomains column for B2B targets.
  • Search smart: npm qualifiers narrow fast — keywords:react, author:<username>, scope:<org>, or not:deprecated.
  • Cheap vs deep: search results already include maintainer emails, license, weekly/monthly downloads and dependent counts, so you get full-fat leads without includeDetails. Add details only when you need created dates, dependencies, version count, or deprecation.
  • Recurring monitoring: pair Schedules with monitorMode to track new and updated packages in a niche without re-paying for unchanged rows.

FAQ

Do I need an npm account or token? No. The actor reads the public npm registry and downloads APIs — no key, account, or login required.

Where do the maintainer emails come from? They are the contact emails npm package authors publish in their own package metadata (maintainers, author, publisher). The actor surfaces and de-duplicates them, and extracts the non-personal company domains from them. Automated/no-reply addresses are filtered out.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

How do I monitor a keyword for new packages? Turn on monitorMode and create a Schedule. Each run outputs only packages that are new or have a new version since the previous run.

A field is null — why? Search results don't include created dates, dependencies, version count, or deprecation — turn on includeDetails for those. Some packages simply don't link a repository or homepage, have no keywords, or expose no maintainer email. qualityScore / popularityScore / maintenanceScore are always null: npm retired its per-package quality scoring and the API now returns a constant placeholder for all three, so this actor emits an honest null rather than a fabricated number — use monthlyDownloads and dependentsCount for popularity, and lastPublishedAt + isDeprecated for maintenance. Fields are null only when npm doesn't publish them.

Is scraping npm legal? This actor collects publicly available registry data only. You are responsible for using the data in compliance with applicable laws (GDPR/CCPA for personal data) and npm's terms.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.