CPAN Module Metadata Scraper avatar

CPAN Module Metadata Scraper

Pricing

Pay per usage

Go to Apify Store
CPAN Module Metadata Scraper

CPAN Module Metadata Scraper

Extract metadata, dependencies, and reverse-dependency counts for Perl modules from CPAN via the MetaCPAN API.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Pierrick McD0nald

Pierrick McD0nald

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

CPAN Module Metadata Scraper — Extract Perl Package Metadata, Dependencies & Reverse Dependencies

The CPAN Module Metadata Scraper extracts structured metadata for Perl distributions from the Comprehensive Perl Archive Network (CPAN) via the public MetaCPAN API. It is built for developers, security researchers, and DevOps teams who need to inventory Perl dependencies, track release history, or monitor the open-source Perl ecosystem.

This Actor accepts a list of CPAN distribution names (e.g., Moose, JSON, DBI, Dancer2) and returns a clean dataset with version, author, license, release date, dependency counts, reverse-dependency counts, and source links. You can also supply a search query to discover related distributions through MetaCPAN autocomplete before extraction.

Use Cases

  • Dependency inventory — Audit all Perl modules used across your organization and export them to a spreadsheet or SIEM.
  • Supply-chain monitoring — Track new releases, deprecation flags, and license changes for critical CPAN distributions.
  • Competitive research — Compare reverse-dependency counts to identify the most widely used libraries in the Perl ecosystem.
  • Security triage — Identify deprecated modules and outdated versions that may need upgrading or replacement.
  • Dataset creation — Build a structured corpus of Perl package metadata for research, search, or internal tooling.

Input

FieldTypeRequiredDescription
moduleNamesArrayYesCPAN distribution names to scrape, e.g., ["Moose", "JSON", "DBI"]
searchQueryStringNoMetaCPAN autocomplete query used to discover additional distributions
maxItemsNumberNoMaximum results to output (default: 100)
includeReverseDependenciesBooleanNoFetch reverse-dependency counts for each distribution (default: true)
proxyConfigurationObjectNoApify proxy configuration (recommended for production runs)

Output

The Actor outputs a dataset with one row per CPAN distribution:

{
"distribution": "Moose",
"moduleName": "Moose",
"version": "2.4000",
"author": "ETHER",
"abstract": "A postmodern object system for Perl 5",
"license": "perl_5",
"releaseDate": "2025-07-04T21:24:15",
"downloadUrl": "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Moose-2.4000.tar.gz",
"homepageUrl": "http://moose.perl.org/",
"repositoryUrl": "https://github.com/moose/Moose",
"bugtrackerUrl": "https://rt.cpan.org/Dist/Display.html?Name=Moose",
"dependencyCount": 42,
"dependencyNames": "Carp, Class::Load, Data::OptList, ...",
"reverseDependencyCount": 3122,
"deprecated": false,
"maturity": "released",
"url": "https://metacpan.org/release/ETHER/Moose-2.4000"
}

Pricing

Pay per event: $0.001 per module extracted. The Actor charges only after successfully extracting metadata, so you never pay for failed or empty requests.

Limitations

  • The Actor relies on the public MetaCPAN API. Availability and rate limits are governed by MetaCPAN.
  • Distribution names are treated as distribution names, not full module paths (e.g., Moose works, Moose::Role should be mapped to its parent distribution).
  • Very large dependency lists are truncated to a comma-separated string in the output.
  • Reverse-dependency counts require an additional API call per distribution.

FAQ

Q: Do I need a CPAN or MetaCPAN account? A: No. The public MetaCPAN API does not require authentication.

Q: Can I scrape all CPAN distributions at once? A: The Actor is designed for targeted lists or autocomplete queries. Use maxItems to cap output and respect API limits.

Q: Why are some fields empty? A: CPAN maintainers provide metadata voluntarily. If a field such as homepageUrl or repositoryUrl is missing from the upstream release, the output will be blank.

Changelog

  • v1.0.0 — Initial release: distribution metadata, dependency counts, reverse-dependency counts, and source links.