JSR Registry Scraper
Pricing
from $3.00 / 1,000 results
JSR Registry Scraper
Search and scrape JSR (jsr.io) - the JavaScript Registry - for package metadata, quality scores, GitHub links, runtime compatibility, scopes, and dependents. Pure public API, no auth.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
Search and scrape JSR — the JavaScript Registry (Deno's modern package registry for JavaScript and TypeScript) — for package metadata, quality scores, GitHub links, runtime compatibility, scopes, and dependents. Pure public API, no auth, no proxy.
What this actor does
- Seven modes:
search,byPackages,byScope,dependents,dependencies,versions,trending - Rich metadata: quality score, GitHub repo link, runtime compatibility (Deno/Node/Browser/Cloudflare Workers/Bun), version/dependency/dependent counts
- Optional enrichment: license, provenance, and score-breakdown details per package (mode=byPackages, trending)
- Filters: min quality score, runtime compatibility, exclude archived, require GitHub link
- Empty fields are omitted — every field in the output is real, populated data
Output fields
package records (mode=search, byPackages, byScope, trending)
packageId(@scope/name),scope,name,descriptiongithubOwner,githubRepo,githubUrlcompatibleRuntimes[]— subset ofdeno/node/browser/workerd/bunversionCount,dependencyCount,dependentCount,score(0-100)latestVersion,updatedAt,createdAt,whenFeatured,isArchived,readmeSourcepackageUrl,latestVersionUrl- With
enrichDetails=true(mode=byPackages, trending):hasReadme,hasReadmeExamples,allEntrypointsDocs,allFastCheck,hasProvenance,hasDescription,atLeastOneRuntimeCompatible,multipleRuntimesCompatible,percentageDocumentedSymbols,scoreTotal,license,latestVersionYanked,usesNpm,hasProvenanceLog - mode=trending only:
statsCategory(newest/updated/featured),statsVersion(forupdatedcategory) recordType: "package",scrapedAt
scope record (mode=byScope, emitted once per scope)
scope,description,createdAt,updatedAt,scopeUrlrecordType: "scope",scrapedAt
dependent records (mode=dependents)
packageId,scope,name,dependentVersions[],dependentTotalVersions,packageUrl,dependencyOfrecordType: "dependent",scrapedAt
dependency records (mode=dependencies, of the package's latest version)
kind(jsrornpm),name,constraint(semver range),path(sub-path export, if any),dependencyUrldependencyOf(@scope/name),dependencyOfVersionrecordType: "dependency",scrapedAt
version records (mode=versions, full publish history of a package)
packageId,scope,name,version,versionUrlpublishedByName,publishedByGithubId,publishedByAvatarUrlyanked,usesNpm,hasProvenanceLog,readmePath,publishedAtrecordType: "version",scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byPackages / byScope / dependents / dependencies / versions / trending |
searchQuery | string | – | Free-text query (mode=search) |
packages | array | – | Package specifiers, e.g. @std/testing (mode=byPackages, dependents, dependencies, versions) |
scope | string | – | Scope name without @, e.g. std (mode=byScope) |
statsCategory | string | all | all / featured / newest / updated (mode=trending) |
minScore | int | – | Drop packages below this quality score (0-100) |
runtime | string | – | Only keep packages compatible with this runtime |
excludeArchived | bool | false | Drop archived packages |
requireGithub | bool | false | Only keep packages with a linked GitHub repo |
enrichDetails | bool | true | Fetch score-breakdown + license per package (mode=byPackages, trending) |
maxItems | int | 50 | Hard cap (1–1000) |
Example: search for well-maintained Deno-compatible testing packages
{"mode": "search","searchQuery": "testing","runtime": "deno","minScore": 70,"excludeArchived": true,"maxItems": 50}
Example: lookup specific packages with full enrichment
{"mode": "byPackages","packages": ["@std/testing", "@oak/oak", "@hono/hono"],"enrichDetails": true}
Example: browse an entire scope
{"mode": "byScope","scope": "std","maxItems": 100}
Example: find what depends on a package
{"mode": "dependents","packages": ["@std/testing"],"maxItems": 100}
Example: list what a package depends on
{"mode": "dependencies","packages": ["@oak/oak"]}
Example: full version/publish history of a package
{"mode": "versions","packages": ["@std/testing"],"maxItems": 100}
Example: trending / newest / featured packages
{"mode": "trending","statsCategory": "featured","enrichDetails": true}
Use cases
- Dependency research — audit quality scores, licenses, and runtime compatibility before adopting a package
- Ecosystem analysis — map dependents of a popular package to gauge its influence
- Security / supply-chain review — check for GitHub provenance, archived status, and npm interop
- Package discovery — find packages by keyword filtered to your target runtime (e.g. Cloudflare Workers)
- Registry monitoring — track new/updated packages within a scope over time
FAQ
Do I need a login or API key? No — this uses JSR's own public api.jsr.io REST API, which requires no authentication.
What is JSR? jsr.io is a modern package registry for JavaScript/TypeScript built by the Deno team, designed to work across Deno, Node.js, Bun, browsers, and Cloudflare Workers, with first-class TypeScript support and automatic API documentation.
What's the difference between score and the enrichDetails breakdown fields? score (0-100) is a single quality metric always included. The breakdown fields (hasReadme, allFastCheck, percentageDocumentedSymbols, etc.) explain what contributes to that score — only fetched in byPackages mode with enrichDetails=true.
Why do some packages have no score or latestVersion? JSR scopes can be reserved before any version is published — such packages have versionCount: 0 and legitimately lack a score, license, or GitHub link. These fields are omitted rather than filled with placeholders.
How fresh is the data? Real-time — every run queries JSR's live API directly.
Why does dependencyUrl sometimes point to npmjs.com and sometimes to jsr.io? JSR packages can depend on either other JSR packages or npm packages directly (mode=dependencies). kind: "jsr" deps link to jsr.io; kind: "npm" deps link to npmjs.com. Note npmjs.com serves a bot-challenge page to non-browser HTTP clients (curl), but the URL itself is correct and opens normally in a browser.