MetaCPAN Perl Module Scraper - CPAN Distributions & Deps
Pricing
from $0.50 / 1,000 results
MetaCPAN Perl Module Scraper - CPAN Distributions & Deps
$0.5/1K ๐ฅ MetaCPAN scraper! Perl distributions โ version, author, license & dependencies. No key. JSON, CSV, Excel or API in seconds. Audit Perl deps & discover modules โก
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
ninhothedev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
MetaCPAN Perl Module Scraper
Scrape Perl distributions and modules from MetaCPAN โ version, author, license, abstract, release date, repository, bug tracker, download URL and dependency data โ with no API key, no login and no proxy required.
This Actor talks directly to the public MetaCPAN API (fastapi.metacpan.org), the same backend that powers metacpan.org. It returns one clean, flat row per CPAN release, ready for CSV, JSON, Excel or your data warehouse.
What this Actor does
| Source | MetaCPAN public API (CPAN โ the Comprehensive Perl Archive Network) |
| API key | Not needed |
| Proxy | Not needed (datacenter-clean) |
| Output | One item per release (distribution at its latest version) |
| Speed | ~50 releases per request, paginated automatically |
| Cost | Roughly $0.5 per 1,000 releases |
Features
- Keyword search โ query CPAN like you would on metacpan.org and get the latest release of every matching distribution.
- Direct distribution lookup โ pass exact distribution names (
Mojolicious,DBI,Plack) and get their current release. - Dependency intelligence โ total dependency count plus the explicit list of
runtime/requiresmodules. - Licensing data โ the declared license list (
perl_5,artistic_2,mit, โฆ) for compliance and OSS audits. - Repository & issue links โ GitHub/GitLab repository, bug tracker and homepage, pulled from the distribution metadata.
- Only latest releases โ results are filtered to
status:latest, so you never get stale versions polluting your dataset. - Robust by design โ Chrome-impersonating HTTP client with a plain-
urllibfallback, retries with exponential backoff, and graceful handling of missing fields.
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | select | search | search (keyword queries) or distributions (exact names) |
queries | array | ["JSON", "Mojolicious"] | Keywords or module names to search, used in search mode |
distributions | array | โ | Exact distribution names, used in distributions mode (use dashes: List-Util) |
maxItems | integer | 100 | Maximum releases to push (max 1000) |
Example โ search mode
{"mode": "search","queries": ["JSON", "async", "web framework"],"maxItems": 300}
Example โ distributions mode
{"mode": "distributions","distributions": ["Mojolicious", "DBI", "Plack", "Moose"],"maxItems": 100}
Output
Every item is one CPAN release:
{"name": "Mojolicious-9.48","distribution": "Mojolicious","version": "9.48","author": "SRI","abstract": "Real-time web framework","license": ["artistic_2"],"date": "2026-07-14T12:53:44+00:00","status": "latest","maturity": "released","main_module": "Mojolicious","download_url": "https://cpan.metacpan.org/authors/id/S/SR/SRI/Mojolicious-9.48.tar.gz","repository": "https://github.com/mojolicious/mojo","bugtracker": "https://github.com/mojolicious/mojo/issues","homepage": "https://mojolicious.org","dependency_count": 5,"runtime_requires": ["IO::Socket::IP", "Pod::Simple"],"provides_count": 112,"url": "https://metacpan.org/dist/Mojolicious","source": "metacpan","scraped_at": "2026-07-28T12:00:00+00:00"}
Field reference
| Field | Description |
|---|---|
name | Full release name including version (JSON-4.11) |
distribution | Distribution name without version (JSON) |
version | Release version string |
author | PAUSE ID of the uploading author (ISHIGAKI) |
abstract | Short description, capped at 2,000 characters |
license | List of declared licenses |
date | Release timestamp, normalised to ISO 8601 UTC |
status | Release status (always latest in search mode) |
maturity | released or developer |
main_module | Primary module namespace (JSON::XS) |
download_url | Direct tarball URL on cpan.metacpan.org |
repository | Source repository web URL |
bugtracker | Issue tracker URL |
homepage | Project homepage |
dependency_count | Number of declared dependencies across all phases |
runtime_requires | Module names required at runtime |
provides_count | Number of modules the distribution provides |
url | Canonical metacpan.org page |
source | Always metacpan |
scraped_at | UTC timestamp of the scrape |
All fields are nullable โ missing metadata comes back as null rather than breaking your pipeline.
Use cases
- Perl dependency research โ map which distributions depend on which runtime modules, spot heavy dependency trees, and audit supply chains before adopting a library.
- Package discovery โ find every CPAN distribution matching a topic (
JSON,ORM,async) with authors, versions and activity dates in one table. - Open-source intelligence โ track license distribution across the Perl ecosystem, find abandoned distributions by release date, or identify the most prolific PAUSE authors.
- Developer tooling โ feed internal package registries, dashboards, dependency scanners, changelog bots or documentation portals with live CPAN metadata.
Pricing
Pay-per-event style economics: expect roughly $0.5 per 1,000 releases scraped. A typical 100-release run finishes in seconds on the 512 MB default memory setting.
Related Actors
If you're mapping package ecosystems beyond Perl, these pair well:
- Hex.pm Scraper โ Elixir & Erlang packages
- pkg.go.dev Scraper โ Go modules
- npms Search Scraper โ npm / JavaScript packages
- crates.io Scraper โ Rust crates
Notes & limitations
- Only the latest release of each distribution is returned; historical versions are out of scope.
- Search results come from MetaCPAN's ElasticSearch index and are ordered by relevance.
- MetaCPAN is a public, free service โ please keep run volumes reasonable.
- This Actor scrapes only publicly available, openly licensed package metadata. No personal data beyond public PAUSE author IDs is collected.
FAQ
Do I need a MetaCPAN account or API key? No. The MetaCPAN API is fully public and this Actor uses no credentials.
Can I look up a module instead of a distribution?
Use search mode with the module name (e.g. JSON::XS) โ the matching distribution will be returned. In distributions mode you must use the dashed distribution name (JSON-XS).
Why is runtime_requires empty for some distributions?
Some distributions declare no runtime requirements, or only declare build/configure/test phase dependencies. dependency_count still reflects the full declared set.