ParseForge Scrapers

JSR JavaScript Packages Scraper

parseforge/jsr-packages-scraper

Developer toolsOther

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.

Run this scraper See the API call
Total users
1
Monthly active
1
Total runs
45
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

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 it What they scrape JSR for
JavaScript developers Audit which packages exist under a scope before adding a dependency.
DevTool builders Populate an internal catalog with up-to-date JSR package names and descriptions.
Open-source researchers Measure the growth of the JSR ecosystem over time.
Security engineers Review 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 schema Every package is one row with its scope, name, description, version, and GitHub stars.
No auth Reads the public JSR API directly. No token, no registration.
Large runs Collect up to 1,000,000 packages in a single run.
Multiple formats Download 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 Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When JSR changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst 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 collected Approximate 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

Question Answer
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.

Related actors

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.

Input

FieldTypeWhat it doesDefault
query string Optional. Search packages by keyword (for example react, oak, zod). Leave empty to list all packages. Ignored when a Scope is set. not set
scope string Optional. List only packages under a single scope, for example std or luca (with or without the leading @). Overrides the search query. not set
maxItems integer How many packages to collect per run. 10

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~jsr-packages-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run JSR JavaScript Packages Scraper on Apify All scrapers