Linux Package Repository Extractor — APT & RPM/YUM index parser avatar

Linux Package Repository Extractor — APT & RPM/YUM index parser

Pricing

from $0.35 / 1,000 package records

Go to Apify Store
Linux Package Repository Extractor — APT & RPM/YUM index parser

Linux Package Repository Extractor — APT & RPM/YUM index parser

Point at any apt (Debian Packages) or yum/dnf (repomd/primary.xml) repository and extract every binary package's metadata — name, version, deps, checksums, size, license. Generic repo-index parser for SBOM, supply-chain audit, and mirror monitoring.

Pricing

from $0.35 / 1,000 package records

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

23 days ago

Last modified

Share

What does Linux Package Repository Extractor do?

It reads the package index of any public APT repository (Debian/Ubuntu Packages[.gz|.xz]) or RPM/yum/dnf repository (repodata/repomd.xml → primary.xml.gz) and returns one row per binary package: name, version, architecture, dependencies, checksums, size, license, homepage and description. It reads index metadata only. It never downloads, installs or runs a package.

Typical uses: SBOM and supply-chain audits, mirror monitoring, tracking which versions a vendor repository ships.

Quick start

The Store sample reads the Grafana APT repository:

{
"repoUrl": "https://apt.grafana.com/dists/stable",
"repoType": "apt",
"maxRecords": 200,
"component": "main",
"arch": "amd64"
}

For an RPM repository, point repoUrl at the repo base, for example https://rpm.releases.hashicorp.com/RHEL/9/x86_64/stable. With repoType: "auto" it tries RPM first, then APT.

Input

FieldMeaning
repoUrlAPT dists/<suite> base, a full …/binary-<arch>/Packages[.gz] URL, or an RPM repo base
repoTypeauto, apt or rpm
component, arch, suiteAPT only (defaults main, amd64)
maxRecordsMaximum rows to return (default 5000)
bearer, extraHeadersOptional. Only for repositories you are authorized to read; never logged

Output

Every row has the same shape. APT-only fields (section, priority, maintainer, depends, md5sum) are null on RPM rows. RPM-only fields (epoch, release, summary, packager, license, location, checksum) are null on APT rows. _type, _repoUrl and _source record where each row came from. You can download the dataset as JSON, CSV, Excel or HTML.

Pricing and your maximum charge

You pay per package record, one record event per row. Live tier prices run from $0.0005 per record on FREE down to $0.00025 on DIAMOND. On FREE, the 200-record sample costs $0.10 at most.

The Actor bills each record in the same step that writes it, so your Max total charge limits both the rows you get and the bill. If your limit can't cover even one record, the Actor sends no request to the repository and returns no rows. If the limit is reached partway through an index, it stops, keeps the records you paid for, and logs "Max total charge reached". If billing fails, the run stops with an error rather than handing out unbilled rows. If Apify restarts the run, it picks up where it left off without writing or billing any record twice. If it can't prove that, it stops.

Limits

  • Public repositories only, or ones you are authorized to access. A 401/403 or HTML reply is reported as an error.
  • If an index can't be reached or parsed, or has zero packages, the run fails with exit code 91. It never reports an empty result as success.
  • If the index fails after some records were delivered, you keep the paid records, the run exits with code 91, and the log shows a "Partial result" line.
  • GPG signatures (InRelease, repomd.xml.asc) are not verified.