Alpine Linux Packages Scraper avatar

Alpine Linux Packages Scraper

Pricing

from $19.00 / 1,000 results

Go to Apify Store
Alpine Linux Packages Scraper

Alpine Linux Packages Scraper

Pull the Alpine Linux package index by name, branch, repository, and architecture from pkgs.alpinelinux.org. Each record carries version, license, maintainer, project link, build date, commit hash, and full dependency lists. Handy for SBOM tracking, security audits, and mirror tooling.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

ParseForge Banner

๐Ÿ”๏ธ Alpine Linux Packages Scraper

๐Ÿš€ Turn the Alpine Linux package index into clean, structured records. Query pkgs.alpinelinux.org by name, branch, repository, and architecture and get version, license, maintainer, and dependency data per package.

๐Ÿ•’ Last updated: 2026-07-14 ยท ๐Ÿ“Š Up to 21 fields per record ยท 10 branches ยท 9 architectures ยท main, community, and testing repos

Pull the official Alpine Linux package database straight from pkgs.alpinelinux.org and drop it into a spreadsheet, a database, or your own tooling. Filter with a glob on the package name, pick a release branch, narrow to a repository and architecture, and get one clean record per package with the metadata that matters: version, license, maintainer, project link, and build date.

Coverage is the live Alpine package index as the site publishes it: the rolling edge branch plus the stable v3.x releases, across main, community, and testing repositories and every supported CPU architecture. Turn on dependency enrichment and each package also carries its description, install size, origin, commit hash, build time, and full depends, provides, and sub package lists.

๐ŸŽฏ Target Audience๐Ÿ’ก Primary Use Cases
Security and DevSecOps teamsAudit versions and licenses, track CVEs
Platform and container engineersPin base image packages, build SBOMs
Distro maintainers and packagersWatch versions across branches
Mirror and tooling operatorsSnapshot the index for offline use

๐Ÿ“‹ What the Alpine Linux Packages Scraper does

This Actor reads the public Alpine Linux package index at pkgs.alpinelinux.org and returns one clean record per package:

  • Listing fields (always) โ€” name, version, branch, repository, architecture, description, license, project URL, maintainer, build date, and the package page URL.
  • Dependency enrichment (optional) โ€” turn on includeDependencies and each package is enriched from its detail page with install size, origin, commit hash, commit URL, build time, and full depends, provides, and subPackages lists.

You control the package name glob, the branch, the repository, the architecture, and how many records come back. Every record carries a scrapedAt timestamp.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

โš™๏ธ Input

FieldTypeDescription
namestringGlob filter for the package name. Use * and ? as wildcards, for example apk*, python3*, or *ssl*. Use * alone to match every package.
branchselectAlpine release branch. edge (rolling) or a stable v3.x release.
reposelectRepository to query. All, main, community, or testing.
archselectCPU architecture. All, x86_64, aarch64, and seven more.
includeDependenciesbooleanEnrich each package from its detail page with commit, build time, and dependency lists. Slower.
maxItemsintegerHow many records to return. Free plan is capped at 10.

Example 1 โ€” apk packages on edge with full dependency data

{
"name": "apk*",
"branch": "edge",
"repo": "main",
"arch": "x86_64",
"includeDependencies": true,
"maxItems": 50
}

Example 2 โ€” every Python package on a stable branch, listing only

{
"name": "python3*",
"branch": "v3.21",
"repo": "",
"arch": "x86_64",
"includeDependencies": false,
"maxItems": 200
}

โš ๏ธ Good to Know: the edge branch is the rolling development tree and changes often, while v3.x branches are stable. Turning on includeDependencies visits one extra page per package, so large runs take noticeably longer. Leave it off when you only need version, license, and maintainer data.

๐Ÿ“Š Output

Each enriched record looks like this:

FieldDescription
๐Ÿ“ฆ namePackage name
๐Ÿท versionPackage version and release
๐ŸŒฟ branchAlpine branch (edge or v3.x)
๐Ÿ—‚ repoRepository (main, community, testing)
๐Ÿ–ฅ archCPU architecture
๐Ÿ“ descriptionShort package description
โš–๏ธ licenseSPDX license identifier
๐ŸŒ projectUrlUpstream project link
๐Ÿ‘ค maintainerPackage maintainer
๐Ÿ“… buildDateBuild date from the index
๐Ÿ”— urlAlpine package page URL
๐Ÿ“ฆ sizeDownload size
๐Ÿ’พ installedSizeInstalled size
๐ŸŒฑ originOrigin (source) package
๐Ÿ”‘ commitaports commit hash
๐Ÿ”— commitUrlLink to the commit
๐Ÿ›  buildTimeExact build timestamp
๐Ÿ”ข dependsList of runtime dependencies
๐ŸŽ providesList of provided names
๐Ÿงฉ subPackagesList of related sub packages
๐Ÿ•’ scrapedAtCollection timestamp
โŒ errorNull on success

The size, installedSize, origin, commit, commitUrl, buildTime, depends, provides, and subPackages fields are only present when includeDependencies is enabled.

Real sample โ€” enriched package

{
"name": "apkbuild-cpan",
"version": "3.17.0-r0",
"branch": "edge",
"repo": "main",
"arch": "x86_64",
"description": "Script to generate perl APKBUILD from CPAN",
"license": "GPL-2.0-only",
"projectUrl": "https://gitlab.alpinelinux.org/alpine/abuild/",
"maintainer": "Natanael Copa",
"buildDate": "2026-06-05 11:57:06",
"url": "https://pkgs.alpinelinux.org/package/edge/main/x86_64/apkbuild-cpan",
"size": "8.0KiB",
"installedSize": "24.3KiB",
"origin": "abuild",
"commit": "c34e25a150fccc32194346cb335ed746d6878031",
"commitUrl": "https://gitlab.alpinelinux.org/alpine/aports/-/commit/c34e25a150fccc32194346cb335ed746d6878031",
"buildTime": "2026-06-05 11:57:06",
"depends": ["perl", "perl-libwww", "perl-json", "perl-module-build", "perl-module-build-tiny", "perl-lwp-protocol-https"],
"provides": ["cmd:apkbuild-cpan"],
"subPackages": ["abuild-doc", "abuild-rootbld", "abuild-sudo", "apkbuild-cpan", "apkbuild-gem-resolver", "apkbuild-pypi"],
"scrapedAt": "2026-06-08T18:03:11.403Z",
"error": null
}

Real sample โ€” apk-tools

{
"name": "apk-tools",
"version": "3.0.6-r0",
"branch": "edge",
"repo": "main",
"arch": "x86_64",
"description": "Alpine Package Keeper - package manager for alpine",
"license": "GPL-2.0-only",
"projectUrl": "https://gitlab.alpinelinux.org/alpine/apk-tools",
"maintainer": "Natanael Copa",
"buildDate": "2026-04-13 09:23:00",
"url": "https://pkgs.alpinelinux.org/package/edge/main/x86_64/apk-tools",
"size": "53.4KiB",
"installedSize": "112.4KiB",
"origin": "apk-tools",
"commit": "1403ea7a8ae3fb8e5a11207ddb1ff536eb8de912",
"commitUrl": "https://gitlab.alpinelinux.org/alpine/aports/-/commit/1403ea7a8ae3fb8e5a11207ddb1ff536eb8de912",
"buildTime": "2026-04-13 09:23:00",
"depends": ["musl", "libcrypto3", "libapk", "ca-certificates-bundle", "so:libapk.so.3.0.0", "so:libc.musl-x86_64.so.1", "so:libz.so.1"],
"provides": ["apk-tools3", "cmd:apk"],
"subPackages": ["apk-tools-bash-completion", "apk-tools-dbg", "apk-tools-dev", "apk-tools-doc", "apk-tools-static", "apk-tools-zsh-completion", "libapk", "lua5.5-apk", "py3-apk"],
"scrapedAt": "2026-06-08T18:03:14.000Z",
"error": null
}

Real sample โ€” listing only

{
"name": "python3",
"version": "3.14.3-r0",
"branch": "edge",
"repo": "main",
"arch": "x86_64",
"description": "High-level scripting language",
"license": "PSF-2.0",
"projectUrl": "https://www.python.org/",
"maintainer": "Natanael Copa",
"buildDate": "2026-03-27 19:39:08",
"url": "https://pkgs.alpinelinux.org/package/edge/main/x86_64/python3",
"scrapedAt": "2026-06-08T18:01:33.970Z",
"error": null
}

โœจ Why choose this Actor

  • One clean record per package, with stable field names that map onto a database schema.
  • Filter exactly the slice you need by name glob, branch, repository, and architecture.
  • Optional dependency enrichment expands depends, provides, and sub packages into ready arrays.
  • No account, no key, and no login required.
  • Pulls live from the official Alpine index, so versions reflect the catalog at run time.

๐Ÿ“ˆ How it compares to alternatives

ApproachEffortStructured fieldsDependenciesMaintenance
This ActorOne runYesOptional, expandedNone on your side
Parsing APKINDEX by handHoursManualManualConstant
Scraping the site yourselfDaysDependsYou build itYou own the upkeep

๐Ÿš€ How to use

  1. Create a free Apify account using this sign-up link.
  2. Open the Alpine Linux Packages Scraper.
  3. Set the name glob, then pick a branch, repo, and arch.
  4. Toggle includeDependencies if you want commit and dependency data, and set maxItems.
  5. Click Start and grab your results when the run finishes.

๐Ÿ’ผ Business use cases

Security and compliance

GoalHow this helps
Audit licenses across a branchPull license for every matching package
Track vulnerable versionsSnapshot version and commit over time

Platform and containers

GoalHow this helps
Pin base image packagesCapture exact versions per architecture
Build a software bill of materialsUse the expanded depends and provides lists

Packaging and maintenance

GoalHow this helps
Watch a package across branchesRe-run per branch and compare versions
Find who owns a packageRead the maintainer and origin fields

Mirrors and tooling

GoalHow this helps
Snapshot the indexExport the full listing for offline use
Feed an internal catalogLoad records into your own search tool

๐Ÿ”Œ Automating Alpine Linux Packages Scraper

Connect runs to the tools you already use:

  • Make and Zapier to trigger runs and route records into sheets or databases.
  • Slack to post a summary when a run finishes.
  • Airbyte to load results into a warehouse.
  • GitHub Actions to schedule periodic snapshots.
  • Google Drive to archive each run's output.

๐ŸŒŸ Beyond business use cases

  • Research: study how a distribution's package set evolves across releases.
  • Personal: keep a watchlist of the packages you depend on.
  • Non-profit: power a community mirror or documentation project.
  • Experimentation: prototype a package search app without writing a scraper.

๐Ÿค– Ask an AI assistant

Paste your results into ChatGPT, Claude, Perplexity, or Microsoft Copilot and ask it to diff versions between branches, group packages by license, or map a dependency tree.

โ“ Frequently Asked Questions

Do I need an Alpine Linux account or an API key? No. The Actor reads the public package index at pkgs.alpinelinux.org, which needs no login or key.

Which branches can I query? The rolling edge branch and the stable releases v3.23 down to v3.15.

Which repositories and architectures are supported? main, community, and testing repositories, and architectures including x86_64, aarch64, armhf, armv7, ppc64le, riscv64, s390x, x86, and loongarch64.

How does the name filter work? It is a glob. Use * and ? as wildcards, for example apk* matches everything starting with apk, and *ssl* matches anything containing ssl.

What is the difference with and without dependency enrichment? Without it you get the listing table fields. With includeDependencies on, each package also returns install size, origin, commit, build time, and the full depends, provides, and sub package lists, at the cost of one extra page visit per package.

Why are some detail fields missing on a record? The extra fields only appear when includeDependencies is enabled. With it off, records carry the listing fields only.

How current is the data? Each run pulls live from the Alpine index, so versions and build dates reflect the catalog at run time.

Can I get every package? Yes. Use * as the name with a high maxItems. The Actor pages through the full result set for your filters.

What does the origin field mean? It is the source package a binary package is built from. Several binary packages can share one origin.

Can I schedule this? Yes. Use Apify Schedules to snapshot the index on any cadence you like.

๐Ÿ”Œ Integrate with any app

Results are available through the Apify API, so you can pull them into any app, database, or workflow you already run.

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: independent tool, not affiliated with Alpine Linux. Only publicly available data is collected.