Package Registry Scraper (npm + PyPI)
Pricing
$2.00 / 1,000 package returneds
Package Registry Scraper (npm + PyPI)
Scrape package metadata from the npm and PyPI public registries. Search npm by keyword, or look up exact packages on either registry. Get name, version, author, license, repo, keywords and (npm) monthly downloads. No key, no anti-bot.
Pricing
$2.00 / 1,000 package returneds
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Pull clean, structured package metadata from the npm and PyPI public registries. No API key, no login, no anti-bot. Search npm by keyword, or look up exact packages by name on either registry — and get a single normalized shape back for both.
What you get per package
registry, name, version, description, author, homepage, repository (decoded to a browseable https URL), license, keywords, monthlyDownloads (npm), and url (the human-facing registry page).
Nullable fields. Registries don't always populate every field, so the following can be null: description, author, homepage, repository, license (and keywords may be an empty array). monthlyDownloads is null when includeDownloads is off, for PyPI packages (no public download endpoint), or if the npm downloads API call fails for a specific package — in which case a warning is logged so you know why.
Input
| Field | Notes |
|---|---|
registry | npm or pypi. Default npm. |
searchQuery | Keyword search — npm only (PyPI has no clean public search API). |
packageNames | Array of exact names — works for both registries (e.g. ["requests","fastapi"], or npm scoped ["@types/node"]). |
includeDownloads | Fetch last-month download counts for npm packages. On by default. npm only. |
maxItems | Cap on npm search results. Default 50. |
You must provide either a searchQuery (npm) or one or more packageNames.
Registries
- npm — keyword search via the registry search API, package detail via
registry.npmjs.org/{pkg}, and monthly downloads viaapi.npmjs.org. - PyPI — exact-name lookup via
pypi.org/pypi/{pkg}/json. PyPI has no clean public search API, so asearchQuerywithregistry=pypireturns a single diagnostic row telling you to usepackageNamesinstead.
Output
One dataset row per package, deduped by registry + name. Packages that can't be found, and empty searches, return a single diagnostic row (ok:false) and are not charged.
Pricing
Pay-per-result: you are charged once per successfully returned package row. Diagnostic rows (ok:false) — bad input, not-found packages, empty searches, network/registry errors — are never charged.
Proxy
These are public, no-auth registries with no anti-bot, so no proxy is needed — leave proxy off (the default). Only enable a proxy if you hit IP-based rate limits on very large runs.
Troubleshooting
- Empty/bad-input run returns a
BAD_INPUTdiagnostic row: provide asearchQuery(npm) or one or morepackageNames. monthlyDownloadsis null for some npm packages: the downloads API occasionally rate-limits or has no data for a package; the run logs a warning and continues withnullfor that field.- PyPI search isn't supported (PyPI has no clean public search API); use exact
packageNameswithregistry=pypi.
Examples
Search npm:
{ "registry": "npm", "searchQuery": "react state management", "maxItems": 25, "includeDownloads": true }
Look up Python packages:
{ "registry": "pypi", "packageNames": ["requests", "fastapi"] }