npm Package Insights & Downloads Scraper
Pricing
from $0.01 / 1,000 results
npm Package Insights & Downloads Scraper
Turn any list of npm package names into clean, structured JSON — latest version, license, repository, keywords, author, dependency counts, engine constraints and weekly/monthly download totals. Straight from the public npm registry: no API key, no login, no proxy.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
Assia Fadli
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
npm Package Insights
Turn a list of npm package names into clean, structured JSON — metadata and download momentum — straight from the public npm registry. No API key, no login, and no proxy required.
Why use it
- One tidy row per package. Every result is a flat JSON object, ready to drop into a spreadsheet, database or dashboard.
- Popularity built in. Alongside the metadata you get weekly and monthly download totals from the npm downloads API.
- Scoped packages welcome.
@babel/core,@types/nodeand friends all work. - Resilient. Popular packages that hide their README in the aggregated document are backfilled from the latest version, and a single bad name never fails the whole run.
- Zero setup. Both npm APIs are free and public, so there is nothing to configure.
Input
| Field | Type | Default | Description |
|---|---|---|---|
packages | array | required | npm package names to look up, e.g. ["react", "express", "apify"]. Scoped packages are supported. |
maxResults | integer | all provided | Maximum number of packages to fetch from the list. |
Example input
{"packages": ["react", "express", "apify"]}
Output
Each dataset record looks like this:
{"name": "express","description": "Fast, unopinionated, minimalist web framework","latestVersion": "4.19.2","license": "MIT","homepage": "http://expressjs.com/","repository": "git+https://github.com/expressjs/express.git","keywords": ["express", "framework", "web", "middleware"],"author": "TJ Holowaychuk","maintainersCount": 2,"dependenciesCount": 31,"devDependenciesCount": 26,"engines": { "node": ">= 0.10.0" },"weeklyDownloads": 34000000,"monthlyDownloads": 145000000,"created": "2010-12-29T19:38:25.450Z","lastPublish": "2024-03-25T18:00:00.000Z","readme": "# Express …","npmUrl": "https://www.npmjs.com/package/express"}
| Field | Description |
|---|---|
name | Package name. |
description | Short package description. |
latestVersion | The latest dist-tag version. |
license | SPDX license identifier. |
homepage | Project homepage URL. |
repository | Source repository URL. |
keywords | Array of keywords. |
author | Author name. |
maintainersCount | Number of maintainers. |
dependenciesCount | Runtime dependency count for the latest version. |
devDependenciesCount | Dev dependency count for the latest version. |
engines | Declared engine constraints (e.g. Node version), if any. |
weeklyDownloads | Downloads in the last week. |
monthlyDownloads | Downloads in the last month. |
created | When the package was first published (ISO 8601). |
lastPublish | When the latest version was published (ISO 8601). |
readme | Package README, truncated to ~2000 characters. |
npmUrl | Link to the package page on npmjs.com. |
If a package can't be fetched (for example it doesn't exist), the row is { "name": "<name>", "error": "<message>" } instead.
Pricing
This actor uses Apify's pay-per-event model. You are charged once per package-scraped event — a single charge for every package successfully delivered to the dataset. Packages that fail to fetch (the error rows) are never charged.
Data source
This actor uses the public npm APIs:
- Metadata:
https://registry.npmjs.org/<package>(scoped packages URL-encode the/as%2F). - Downloads:
https://api.npmjs.org/downloads/point/last-week/<package>and.../last-month/<package>.
Both are free and require no authentication.
Author
Built and maintained by Assia Fadli. Licensed under MIT.