npm Package Insights & Downloads Scraper avatar

npm Package Insights & Downloads Scraper

Pricing

from $0.01 / 1,000 results

Go to Apify Store
npm Package Insights & Downloads Scraper

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

Assia Fadli

Maintained by Community

Actor 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/node and 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

FieldTypeDefaultDescription
packagesarrayrequirednpm package names to look up, e.g. ["react", "express", "apify"]. Scoped packages are supported.
maxResultsintegerall providedMaximum 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"
}
FieldDescription
namePackage name.
descriptionShort package description.
latestVersionThe latest dist-tag version.
licenseSPDX license identifier.
homepageProject homepage URL.
repositorySource repository URL.
keywordsArray of keywords.
authorAuthor name.
maintainersCountNumber of maintainers.
dependenciesCountRuntime dependency count for the latest version.
devDependenciesCountDev dependency count for the latest version.
enginesDeclared engine constraints (e.g. Node version), if any.
weeklyDownloadsDownloads in the last week.
monthlyDownloadsDownloads in the last month.
createdWhen the package was first published (ISO 8601).
lastPublishWhen the latest version was published (ISO 8601).
readmePackage README, truncated to ~2000 characters.
npmUrlLink 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.