Linux Package Repository Extractor — APT & RPM/YUM index parser
Pricing
from $0.35 / 1,000 package records
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
23 days ago
Last modified
Categories
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
| Field | Meaning |
|---|---|
repoUrl | APT dists/<suite> base, a full …/binary-<arch>/Packages[.gz] URL, or an RPM repo base |
repoType | auto, apt or rpm |
component, arch, suite | APT only (defaults main, amd64) |
maxRecords | Maximum rows to return (default 5000) |
bearer, extraHeaders | Optional. 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.