npm Package Scraper avatar

npm Package Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
npm Package Scraper

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

Anyx Solutions

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

banner

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

FieldTypeRequiredDefaultDescription
searchTermsarrayno—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.
startUrlsarrayno—npmjs.com pages: a search (/search?q=…), a package (/package/cheerio, /package/@apify/log), a user (/~sindresorhus) or an organization (/org/apify).
maxItemsintegerno—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).
includeDownloadsbooleannotrueInclude download counts: add weekly and monthly downloads to packages from package, user and organization URLs. Search results always carry them.
proxyConfigurationobjectno{ "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

FieldTypeDescription
namestringPackage name, with its scope when it has one.
scopestringThe scope, such as @apify; null for unscoped packages.
versionstringLatest version.
descriptionstringPackage description.
keywordsarrayKeywords the author tagged the package with.
licensestringLicense, usually an SPDX identifier such as MIT.
homepagestringProject homepage.
repositoryUrlstringSource repository, as a browsable https:// URL.
bugsUrlstringIssue tracker.
authorobjectAuthor as declared in the package: name, email and url, each null when not given.
publisherstringnpm user who published the latest version.
maintainersarraynpm usernames of the current maintainers.
dependenciesCountnumberNumber of runtime dependencies of the latest version.
dependenciesobjectRuntime dependencies and their version ranges.
createdAtstringWhen the package was first published (ISO 8601).
updatedAtstringWhen the package last changed on npm (ISO 8601).
lastPublishedAtstringWhen the latest version was published (ISO 8601).
versionsCountnumberNumber of published versions.
unpackedSizenumberSize of the latest version once installed, in bytes.
weeklyDownloadsnumberDownloads over the last 7 days.
monthlyDownloadsnumberDownloads over the last 30 days.
dependentsCountnumberPackages that depend on this one. Search results only; null otherwise.
searchScorenumbernpm's relevance score for the search. Search results only; null otherwise.
deprecatedbooleanWhether the latest version is deprecated.
deprecationMessagestringThe deprecation notice, when there is one.
searchQuerystringThe search that found the package; null for package, user-fallback and organization URLs.
urlstringThe 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> and not:deprecated work 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 dependentsCount and searchScore empty for some rows? They come with search results only. Packages from package, user-fallback and organization URLs have them as null.
  • 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.

🖼 Image credit

Image credit: npmjs.com