npm Package Scraper
Pricing
from $2.50 / 1,000 results
npm Package Scraper
Scrape npm packages from search terms or npmjs.com search, package, user and organization URLs: versions, descriptions, licenses, repositories, maintainers, dependencies, release dates, weekly and monthly downloads, dependents and deprecation status. No login, no API key.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Anyx Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share

npm Package Scraper
Search npm or list any user's or organization's packages, and get each package's metadata, dependencies, release history and download counts as clean JSON.
npm is the registry behind almost every JavaScript and TypeScript project, with millions of
packages. This Actor scrapes npm packages from search terms or npmjs.com search, package, user and
organization URLs and returns each package's version, description, license, repository,
maintainers, dependencies, release dates, weekly and monthly downloads, dependents and deprecation
status. Search the way you would on npmjs.com, qualifiers such as keywords:, author:,
maintainer: and not:deprecated included, or paste the pages you already have. There is no
login, no API key, and no proxy to configure. Built for developer-tool market research,
open-source due diligence, dependency and license audits, lead generation among package
maintainers, and ecosystem trend tracking.
⚡ Quick start
{"searchTerms": ["web scraping"],"startUrls": [{ "url": "https://www.npmjs.com/org/apify" }],"maxItems": 5}
🧩 Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerms | array | no | — | Searches to run on npm, one per line, for example web scraping or keywords:scraper not:deprecated. Qualifiers work: keywords:, author:, maintainer: and not:deprecated. |
startUrls | array | no | — | npmjs.com pages: a search (/search?q=…), a package (/package/cheerio, /package/@apify/log), a user (/~sindresorhus) or an organization (/org/apify). |
maxItems | integer | no | — | Maximum number of packages per search term or start URL. The input form starts at 5; leave it empty to get everything (a search returns at most 5,250 packages). |
includeDownloads | boolean | no | true | Include download counts: add weekly and monthly downloads to packages from package, user and organization URLs. Search results always carry them. |
proxyConfiguration | object | no | { "useApifyProxy": false } | Proxy configuration. The npm registry needs no proxy. |
Add search terms, URLs, or both. Searches come back in npm's relevance order. A user page returns
the packages that user maintains, most relevant first; an organization page returns every package
the organization owns, scoped and unscoped. A package URL that names a version (/v/1.0.0)
returns the latest version.
📤 Output
Each package is one dataset row, describing its latest version.
Fields
| Field | Type | Description |
|---|---|---|
name | string | Package name, with its scope when it has one. |
scope | string | The scope, such as @apify; null for unscoped packages. |
version | string | Latest version. |
description | string | Package description. |
keywords | array | Keywords the author tagged the package with. |
license | string | License, usually an SPDX identifier such as MIT. |
homepage | string | Project homepage. |
repositoryUrl | string | Source repository, as a browsable https:// URL. |
bugsUrl | string | Issue tracker. |
author | object | Author as declared in the package: name, email and url, each null when not given. |
publisher | string | npm user who published the latest version. |
maintainers | array | npm usernames of the current maintainers. |
dependenciesCount | number | Number of runtime dependencies of the latest version. |
dependencies | object | Runtime dependencies and their version ranges. |
createdAt | string | When the package was first published (ISO 8601). |
updatedAt | string | When the package last changed on npm (ISO 8601). |
lastPublishedAt | string | When the latest version was published (ISO 8601). |
versionsCount | number | Number of published versions. |
unpackedSize | number | Size of the latest version once installed, in bytes. |
weeklyDownloads | number | Downloads over the last 7 days. |
monthlyDownloads | number | Downloads over the last 30 days. |
dependentsCount | number | Packages that depend on this one. Search results only; null otherwise. |
searchScore | number | npm's relevance score for the search. Search results only; null otherwise. |
deprecated | boolean | Whether the latest version is deprecated. |
deprecationMessage | string | The deprecation notice, when there is one. |
searchQuery | string | The search that found the package; null for package, user-fallback and organization URLs. |
url | string | The package's page on npmjs.com. |
💡 Use cases
- Developer-tool market research — size a category by downloads and dependents, and see who leads it.
- Open-source due diligence — check how actively a package is maintained, by whom, and whether it is deprecated.
- Dependency and license audits — collect licenses, dependencies and deprecation notices across the packages you rely on.
- Ecosystem tracking — watch an organization's or a maintainer's packages, release dates and download trends over time.
- Lead generation — find the companies and maintainers behind the packages in your niche.
❓ FAQ
- Do I need an npm account or an API key? No. The Actor reads the same public package data anyone can see.
- Do I need a proxy? No. It runs without one by default.
- Which search qualifiers work?
keywords:<word>,author:<user>,maintainer:<user>andnot:deprecatedwork in search terms and in npmjs.com search URLs, combined with free text. - How many packages can one search return? Up to 5,250, in relevance order. Split a broad search into narrower ones (for example by keyword) to go further.
- Why are
dependentsCountandsearchScoreempty for some rows? They come with search results only. Packages from package, user-fallback and organization URLs have them asnull. - Are download counts exact? They are npm's own counts. Search results carry npm's latest weekly and monthly totals; other packages get the last 7 and 30 full days.
- Why did an organization URL return fewer packages than expected? It returns the packages the organization owns; packages its members publish under their own accounts belong to those users' pages. Open an issue if something looks off.
🔗 More scrapers by Anyx
🤝 Anyx Solutions
We build custom scrapers and data-extraction pipelines.
- Email: tantosthor@gmail.com
🖼 Image credit
Image credit: npmjs.com