JSR JavaScript Packages Scraper avatar

JSR JavaScript Packages Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
JSR JavaScript Packages Scraper

JSR JavaScript Packages Scraper

Scrapes JSR package metadata by keyword, scope, or the full registry. Returns each package as a flat row with its scope, name, description, version, and GitHub stars.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

14 days ago

Last modified

Share

ParseForge

JSR JavaScript Packages Scraper

Scrape JavaScript and TypeScript package metadata from the JSR registry, up to a million per run. Every package row includes its scope, version, description, and GitHub stars. No API key required. Export to CSV, JSON, Excel, or XML.

The JSR registry is growing fast, but browsing it manually or through its web UI makes bulk analysis slow. This Actor reads the public package listing directly, letting you pull metadata for packages by keyword, scope, or the entire registry. You get a clean, flat dataset ready for spreadsheets or your own tooling.

Who uses itWhat they scrape JSR for
JavaScript developersAudit which packages exist under a scope before adding a dependency.
DevTool buildersPopulate an internal catalog with up-to-date JSR package names and descriptions.
Open-source researchersMeasure the growth of the JSR ecosystem over time.
Security engineersReview all packages matching a keyword for supply-chain risk assessments.

What it does

This Actor collects JSR package metadata by keyword, scope, or full registry listing and returns each package as a flat row.

  • ๐Ÿ” Keyword search: Find packages by name or term, like react, oak, or zod.
  • ๐Ÿ“ฆ Scope listing: Pull every package under a single scope, such as std or luca.
  • ๐ŸŒ Full registry: Leave the inputs empty to list all available packages.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with JSR data

๐Ÿ“‹ Audit a scope before adopting a package.

A team lead lists all packages under a company or community scope to check maintenance levels and descriptions before standardizing on a library.

๐Ÿ”Ž Discover alternatives for a popular npm package.

A developer searches JSR for a keyword like 'validation' to find modern TypeScript-first alternatives and compares their descriptions and stars.

๐Ÿ“Š Track JSR ecosystem growth.

A researcher scrapes the full registry weekly, counting new packages and tracking total GitHub stars to report on ecosystem momentum.

๐Ÿ›ก๏ธ Screen packages for supply-chain risks.

A security engineer pulls all packages matching a suspicious keyword and reviews the list for typosquatting or abandoned entries.

Why choose this scraper

What you get
Flat schemaEvery package is one row with its scope, name, description, version, and GitHub stars.
No authReads the public JSR API directly. No token, no registration.
Large runsCollect up to 1,000,000 packages in a single run.
Multiple formatsDownload your dataset as CSV, JSON, Excel, or XML.

How it compares

No other Store actor targets JSR the same way, so the honest comparison is with the alternatives teams actually weigh.

JSR JavaScript Packages ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When JSR changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst hours

Configure the run

Drive the Actor from a keyword search, a scope name, or leave both empty to list the whole registry. The maximum packages limit stops the run once you have enough rows. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10
}

A larger pull:

{
"maxItems": 200
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$2.10
1,000 results$21.00
10,000 results$210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the JSR JavaScript Packages Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to JSR through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/jsr-packages-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your keyword spelling or scope name. If you set both a query and a scope, the scope overrides the query. Try leaving the scope empty and using only the keyword.

The run stopped before reaching my maximum packages limit.

The registry likely has fewer packages matching your input than the limit you set. Try broadening your keyword or removing the scope to list more packages.

I see duplicate packages in my dataset.

The Actor reads pages sequentially and should not produce duplicates. If you suspect an issue, deduplicate on the package name and scope columns in your export.

The run is taking a long time.

Listing tens of thousands of packages requires many API requests. Lower the maximum packages limit or narrow your search with a keyword or scope to speed it up.

Some packages are missing their GitHub stars.

Not every JSR package links to a GitHub repository. When no repository is associated, the star count field will be empty.

FAQ

QuestionAnswer
Do I need a JSR account or API key?No. The Actor reads the same public listing the JSR website uses. No registration or token is required.
Can I scrape a single package's details?This Actor lists packages and their summary metadata. It does not fetch the full README, source code, or individual version manifests. Use a keyword or scope search to narrow down to the package you need.
What does the scope input expect?Enter the scope name with or without the leading @ symbol. Both 'std' and '@std' work and will return the same packages.
How do I get all packages on JSR?Leave both the keyword query and the scope input empty, and set the maximum packages to a high number. The Actor will list packages from the full registry.
What data fields does each row contain?Each row includes the package scope, name, description, latest version, and GitHub star count. The exact field list is shown in the sample output on the Actor's page.
Can I filter by GitHub stars or version?The Actor collects all matching packages up to your limit. Filtering by stars or version is best done after the run in your spreadsheet or script.
Is this faster than the JSR website search?For bulk collection, yes. The Actor fetches pages of results sequentially and writes them to a structured dataset you can export immediately.
What happens if I set a very high maximum packages limit?The Actor will keep fetching pages until it reaches your limit or the registry has no more packages. Large runs may take longer and consume more compute units.
Can I schedule this to run daily?Yes. Use Apify's scheduler to run the Actor on a cron expression and track new packages or changes over time.
Does this scrape private packages?No. The Actor only reads the public JSR registry listing. Private or unlisted packages are not included.

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Deno Land Inc. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.