Apify

npm & PyPI Package Data API: Versions, License, Downloads

Page updated

Price: $0.20 per 1,000 packages, flat on every Apify plan, no start fee. Free-plan cap: up to 100 packages per run on the Apify Free plan. Prices checked on 2026-10-19.

The npm & PyPI Package Data API looks up each package in the official public registry JSON APIs and returns one row per package, with its latest version, license, links, publish dates, version and dependency counts and, for npm, weekly and monthly downloads.

Author and maintainer contact details are dropped, so the output holds package facts only.

Who it is for

Developers, security and compliance teams, and analysts who track open-source packages in bulk.

  • Check the latest version and license of every package in a dependency list.
  • Find deprecated or long-unmaintained packages by publish date.
  • Compare npm download counts across alternative libraries.
  • Collect repository and issue links for a list of packages.

Inputs

Field Type Required Description
packages array of strings Yes Package names, one per line. Prefix with npm: or pypi: (e.g. pypi:requests). Scoped npm names like @types/node work.
ecosystem string No Registry for names without a prefix: npm (default), pypi or both.
includeDownloads boolean No Adds npm last-week and last-month downloads. Default on. PyPI publishes no download counts.
maxItems integer No Default 100, up to 5,000 package rows.

Example input

{
  "packages": [
    "npm:lodash",
    "pypi:requests"
  ]
}

Example output

Sample records for shape only. They are not a live response.

[
  {
    "type": "package",
    "ecosystem": "npm",
    "name": "lodash",
    "latestVersion": "4.18.1",
    "description": "Lodash modular utilities.",
    "license": "MIT",
    "keywords": [
      "modules",
      "stdlib",
      "util"
    ],
    "homepage": "https://lodash.com/",
    "repositoryUrl": "https://github.com/lodash/lodash",
    "bugsUrl": "https://github.com/lodash/lodash/issues",
    "versionsCount": 117,
    "dependenciesCount": 0,
    "requiresPython": null,
    "nodeEngine": null,
    "deprecated": false,
    "createdAt": "2012-04-23T16:37:11.912Z",
    "latestPublishedAt": "2026-04-01T21:01:20.458Z",
    "modifiedAt": "2026-10-19T00:58:37.346Z",
    "downloadsLastWeek": 94515109,
    "downloadsLastMonth": 690732705,
    "packageUrl": "https://www.npmjs.com/package/lodash"
  }
]

Price

$0.20 per 1,000 packages

Free-plan cap: Up to 100 packages per run on the Apify Free plan

Billing happens on Apify, not on this website.

Limits

  • Up to 100 packages per run on the Apify Free plan.
  • Up to 5,000 package rows per run.
  • About one request per second, with back-off on errors.

What it does not do

  • It does not return author or maintainer names or email addresses.
  • It does not scrape npmjs.com or pypi.org web pages. It reads the official registry JSON APIs only.
  • It does not return download counts for PyPI packages.

FAQ

What counts as a result?

One package row returned from npm or PyPI.

Do I pay for packages that don't exist or for errors?

No. No-results, invalid-input, error and limit rows are free.

Where does the data come from?

From the public npm registry and downloads APIs and the PyPI JSON API. Lepidata is not affiliated with npm, Inc., GitHub, the Python Software Foundation or PyPI.

Is there a start fee?

No. You pay only the flat price per result.

Run it on Apify