๐Ÿ“ฆ npm Package Scraper - Downloads & Dependencies avatar

๐Ÿ“ฆ npm Package Scraper - Downloads & Dependencies

Pricing

from $1.60 / 1,000 results

Go to Apify Store
๐Ÿ“ฆ npm Package Scraper - Downloads & Dependencies

๐Ÿ“ฆ npm Package Scraper - Downloads & Dependencies

Extract npm package data with download stats, dependencies, maintainers, and quality scores. Search by keyword, author, or get popular packages. Perfect for JavaScript ecosystem research, competitor tracking, and dependency analysis. Fast API-based extraction, pay-per-result.

Pricing

from $1.60 / 1,000 results

Rating

0.0

(0)

Developer

Ben

Ben

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

6 days ago

Last modified

Share

๐Ÿ“ฆ npm Package Scraper โ€” Downloads, Dependencies & Quality Scores

Extract structured data from the npm registry โ€” download counts, dependencies, maintainers, license info and npm quality scores โ€” for any JavaScript or TypeScript package. Pull the most popular packages, search by term, filter by keyword or maintainer, or look up exact packages by name. It's the npm ecosystem data you'd otherwise have to stitch together from three separate APIs, returned as one clean row per package. Export to JSON/CSV/Excel, run on a schedule, call via API, or connect to Make, Zapier or n8n.

๐ŸŸข What is the npm Package Scraper?

It turns any npm search, keyword, author or package list into a structured dataset. Pick a mode โ€” popular packages, a search query, a keyword/tag, an author/maintainer, or a list of exact package names โ€” and it returns each matching package with its metadata, weekly and monthly download counts, dependency tree, maintainers and npm's quality/popularity/maintenance scores. Built directly on npm's public registry, downloads and search APIs, so the data is live on every run.

What data does it extract?

  • Package name, version & description
  • Weekly and monthly download counts (downloads_weekly, downloads_monthly)
  • Dependencies and dev dependencies (dependencies, dev_dependencies)
  • Dependents count (how many packages depend on it, in details mode)
  • Maintainers, author name & email, publisher
  • License, homepage, repository URL and bugs URL
  • Keywords/tags and TypeScript types flag (has_types)
  • npm scores โ€” final, quality, popularity and maintenance (0โ€“1)
  • Created & modified dates, required Node version and the npm package URL

โฌ‡๏ธ Input

Run it five ways โ€” most popular, search, by keyword, by author, or exact lookups:

FieldDescription
scrapeModepopular, search, keyword, author, or details
searchQuerySearch term (required for search mode), e.g. react, express
keywordPackage keyword/tag (required for keyword mode), e.g. cli, framework
authorAuthor or maintainer username (required for author mode), e.g. sindresorhus
packageNamesList of exact package names (required for details mode)
sortBypopularity, quality, maintenance or optimal
maxResultsCap the run (1โ€“1000)

Example input

{
"scrapeMode": "search",
"searchQuery": "graphql",
"sortBy": "popularity",
"maxResults": 50
}

โฌ†๏ธ Output

Every package is one clean row (view as a table, or export JSON / CSV / Excel):

{
"name": "express",
"version": "4.19.2",
"description": "Fast, unopinionated, minimalist web framework",
"keywords": ["express", "framework", "web", "rest", "api"],
"author_name": "TJ Holowaychuk",
"author_email": "tj@vision-media.ca",
"publisher_name": "wesleytodd",
"maintainers": ["dougwilson", "wesleytodd"],
"license": "MIT",
"homepage": "http://expressjs.com/",
"repository_url": "https://github.com/expressjs/express",
"bugs_url": "https://github.com/expressjs/express/issues",
"npm_url": "https://www.npmjs.com/package/express",
"downloads_weekly": 32500000,
"downloads_monthly": 140000000,
"dependents_count": 78342,
"dependencies": ["accepts", "body-parser", "cookie", "debug"],
"dev_dependencies": ["eslint", "mocha", "supertest"],
"created_at": "2010-12-29T19:38:25.450Z",
"modified_at": "2024-03-25T18:00:00.000Z",
"has_types": false,
"node_version": ">= 0.10.0",
"score_final": 0.91,
"score_quality": 0.94,
"score_popularity": 0.95,
"score_maintenance": 0.83,
"scraped_at": "2026-06-26T15:30:00.000Z"
}

๐Ÿ’ก Use cases

  • ๐Ÿ” Dependency auditing: review a package's dependency and dev-dependency tree, license and maintenance score before adding it to your stack.
  • ๐Ÿ“ˆ Ecosystem research: track download trends and maintenance health across competing packages in a category.
  • ๐Ÿ› ๏ธ Developer tooling: enrich dashboards, package explorers or internal catalogs with live npm metrics.
  • ๐Ÿข Competitive intel: monitor a maintainer's or company's published packages and their adoption.

โ“ FAQ

How do I scrape npm package data? Pick a scrapeMode (popular, search, keyword, author or details), add the matching field (e.g. searchQuery or packageNames), then Run. You get structured packages with downloads, dependencies, maintainers and quality scores.

Do I need an API key? No. It reads npm's public registry, downloads and search APIs โ€” no login or token required.

How do I get the full dependency list and dependents count? Use scrapeMode: details with packageNames. That mode reads the full registry record, so it returns the complete dependency and dev-dependency lists plus an approximate dependents count. Search-based modes return lighter metadata for speed.

What are the score fields? score_quality, score_popularity, score_maintenance and score_final are npm's own 0โ€“1 scores from its search API โ€” useful for ranking and comparing packages.

Can I find every package by a maintainer? Yes โ€” set scrapeMode: author and the maintainer's npm username to list their published packages, sorted by popularity.

Does it cover scoped packages (e.g. @types/...)? Yes โ€” pass scoped names in packageNames, and @types/* packages are automatically flagged with has_types: true.

Why is the popular mode built from broad searches? npm's search API requires a query, so popular mode runs several broad searches, merges the unique packages and re-sorts them by weekly downloads โ€” giving you a clean list of high-traffic packages without supplying a term yourself.

How many packages can it return? Up to your maxResults cap (1โ€“1000); search and keyword modes paginate automatically.

Can I run it on a schedule or via API? Yes โ€” schedule recurring runs in Apify, call it via the API/SDK, or connect it to Make, Zapier or n8n.

Is scraping npm legal? It extracts publicly available registry data only. Use it responsibly for research and tooling, and follow applicable laws and npm's terms.

๐Ÿ”— You might also like


Keywords: npm scraper, npm package scraper, npm registry API, npm download stats, package dependencies, dependency analysis, JavaScript ecosystem data, npm quality score, package metadata, maintainer lookup, TypeScript types, dev dependencies, npm API, software supply chain, package research.