npm Search Scraper: Downloads, License & Repo
Search the npm registry by keyword and compare each package's version, license, source repo, and monthly downloads side by side. Great for JS library research.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
registry,searchQuery,packageNames(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Pricing
$0.002 per package = $2 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Package returned | Charged per package returned. | $0.002 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-13, and they are what you are actually charged.
Inputs
| Field | What it does | Type |
|---|---|---|
registry | Which package registry to use. npm supports both keyword search and exact-name lookup; PyPI supports exact-name lookup only (it has no clean public search API). | string |
searchQuery | Keywords to search the npm registry for (e.g. "react state management"). npm only — ignored for PyPI. Leave empty if you are looking up exact package names instead. | string |
packageNames | Exact package names to look up directly. Works for BOTH registries. For PyPI this is the only supported mode (e.g. ["requests", "fastapi"]). For npm, scoped names like "@types/node" are supported. | array |
includeDownloads | Fetch last-month download counts for each npm package via the npm downloads API. npm only — PyPI does not expose a public download-count endpoint. Adds one request per package. Note: monthlyDownloads is null when this is off, for PyPI packages, or if the downloads API call fails for a given package (a warning is logged in that case). | boolean |
maxItems | Maximum number of packages to return from an npm search query. Only applies to npm search; ignored for exact-name lookups. | integer |
notionConnector | Optional. Write each package as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, then pick it here. Leave empty to skip (default) — results are always saved to the dataset regardless. | string |
notionParentId | Optional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your workspace instead. | string |
What you get
A structured dataset — each result includes fields like:
authordescriptionhomepagekeywordslicensemonthlyDownloadsnameregistryrepositoryscoreurlversionExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
More use cases for Package Registry Scraper (npm + PyPI)
npm License Audit: Map package.json Deps
Feed your package.json dependencies and return the license and source repository for each npm package - a fast OSS compliance check for engineering teams.
Built on Package Registry Scraper (npm + PyPI) — see every input, output field and price on the tool page.
Where this tool sits
- Categories
- Developer & Research Tools
- Platforms
- Academic & Research