Homebrew Formulae and Casks Scraper
Pricing
from $6.11 / 1,000 results
Homebrew Formulae and Casks Scraper
Pull Homebrew formulae and casks from formulae.brew.sh in one run. Each record carries the package name, description, license, homepage, stable and head versions, dependencies, bottle download URLs, and install counts. Handy for registry mirrors, dependency audits, and package dashboards.
Pricing
from $6.11 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share

🍺 Homebrew Formulae and Casks Scraper
🚀 Export the Homebrew package catalog in one run. Pull formulae and casks straight from the official formulae.brew.sh API, with versions, dependencies, bottle URLs, and real install counts.
🕒 Last updated: 2026-06-08 · 📊 Up to 24 fields per record · 2 catalogs (formulae + casks) · live data from formulae.brew.sh
Turn the Homebrew package index into clean, structured records you can drop into a registry mirror, a dependency dashboard, or an internal package catalog. Pick formulae (command line tools and libraries) or casks (macOS desktop apps), name the exact packages you want, and get one tidy record per package with versions, dependencies, license, homepage, and install analytics.
Coverage is the complete public Homebrew catalog as formulae.brew.sh publishes it. Roughly 7,700 casks and a comparable set of formulae, each with its current stable version, dependency graph, download URLs, and 30, 90, and 365 day install counts. Leave the names list empty to walk the full catalog from the top, or pass exact tokens like wget, node, and git to fetch only what you need.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Platform and DevOps engineers | Mirror or audit the package registry |
| Security and compliance teams | Track licenses and dependency trees |
| Data engineers and analysts | Build package popularity dashboards |
| Tool and IDE developers | Seed a package search index |
📋 What the Homebrew Formulae and Casks Scraper does
This Actor calls the public formulae.brew.sh API and returns one clean record per package for the catalog you choose:
- Formulae — name, description, license, homepage, stable and head versions, runtime and build dependencies, conflicts, source URL, bottle download links per platform, and install counts.
- Casks — token, app name, description, homepage, version, installer URL and checksum, bundled app names, cask conflicts, auto update flag, and install counts.
You pick the package type, list the exact tokens you want (or leave it empty to take packages from the top of the catalog), and set how many records come back. Every record carries a scrapedAt timestamp.
🎬 Full Demo (🚧 Coming soon)
⚙️ Input
| Field | Type | Description |
|---|---|---|
type | select | Which catalog to read. One of formula or cask. Defaults to formula. |
names | array | Exact formula or cask tokens to fetch, for example wget, node, git. Leave empty to take packages from the top of the full catalog. |
maxItems | integer | How many records to return. Free plan is capped at 10. |
Example 1 — specific formulae
{"type": "formula","names": ["wget", "node", "git", "ffmpeg"],"maxItems": 10}
Example 2 — a sample of casks from the top of the catalog
{"type": "cask","names": [],"maxItems": 50}
⚠️ Good to Know: Tokens are case sensitive lowercase, exactly as Homebrew lists them (
openssl@3,python@3.12,google-chrome). When thenameslist is empty the Actor reads the full catalog file (a large list) and takes the first packages in alphabetical order, so it leads with tokens likea2psanda52dec. Provide explicit names when you want particular packages.
📊 Output
Each record for the formula type looks like this:
| Field | Description |
|---|---|
📦 name | Formula token |
🏷 type | Always formula for this catalog |
🪪 fullName | Fully qualified name including tap |
🚰 tap | Source tap, usually homebrew/core |
📝 description | Short package description |
⚖️ license | SPDX license string |
🔗 homepage | Project homepage URL |
🔢 stableVersion | Current stable version |
🧪 headVersion | Head version label if available |
🔁 revision | Homebrew revision number |
🍾 hasBottle | Whether a prebuilt bottle exists |
🔒 kegOnly | Whether the formula is keg only |
⚠️ deprecated | Deprecation flag |
🚫 disabled | Disabled flag |
🧩 dependencies | Runtime dependency tokens |
🛠 buildDependencies | Build only dependency tokens |
⚔️ conflictsWith | Conflicting formula tokens |
📥 stableUrl | Source tarball URL for the stable version |
📈 installs30d | Installs in the last 30 days |
📈 installs90d | Installs in the last 90 days |
📈 installs365d | Installs in the last 365 days |
🗂 bottles | Per platform bottle download URLs and checksums |
🕒 scrapedAt | Collection timestamp |
❌ error | Null on success |
Real sample — formula
{"name": "wget","type": "formula","fullName": "wget","tap": "homebrew/core","description": "Internet file retriever","license": "GPL-3.0-or-later","homepage": "https://www.gnu.org/software/wget/","stableVersion": "1.25.0","headVersion": "HEAD","revision": 0,"hasBottle": true,"kegOnly": false,"deprecated": false,"disabled": false,"dependencies": ["libidn2", "openssl@3", "gettext", "libunistring"],"buildDependencies": ["pkgconf"],"conflictsWith": [],"stableUrl": "https://ftpmirror.gnu.org/gnu/wget/wget-1.25.0.tar.gz","installs30d": 22849,"installs90d": 75787,"installs365d": 388965,"bottles": [{"platform": "arm64_tahoe","url": "https://ghcr.io/v2/homebrew/core/wget/blobs/sha256:03be72d23a113a3273245b3e071667b611ea5d81dab6f52e995a84420d0ed734","sha256": "03be72d23a113a3273245b3e071667b611ea5d81dab6f52e995a84420d0ed734"}],"scrapedAt": "2026-06-08T17:52:08.529Z","error": null}
Real sample — formula (node)
{"name": "node","type": "formula","fullName": "node","tap": "homebrew/core","description": "Open-source, cross-platform JavaScript runtime environment","license": "MIT","homepage": "https://nodejs.org/","stableVersion": "26.0.0","headVersion": "HEAD","revision": 0,"hasBottle": true,"kegOnly": false,"deprecated": false,"disabled": false,"dependencies": ["ada-url", "brotli", "c-ares", "icu4c@78", "libuv", "openssl@3", "sqlite", "zstd"],"buildDependencies": ["pkgconf", "python@3.14"],"conflictsWith": [],"stableUrl": "https://nodejs.org/dist/v26.0.0/node-v26.0.0.tar.xz","installs30d": 219091,"installs90d": 874576,"installs365d": 3056699,"scrapedAt": "2026-06-08T17:52:08.530Z","error": null}
Real sample — cask (firefox)
{"name": "firefox","type": "cask","fullName": "firefox","tap": "homebrew/cask","title": "Mozilla Firefox","names": ["Mozilla Firefox"],"description": "Web browser","homepage": "https://www.mozilla.org/firefox/","stableVersion": "151.0.3","autoUpdates": true,"deprecated": false,"disabled": false,"url": "https://download-installer.cdn.mozilla.net/pub/firefox/releases/151.0.3/mac/en-US/Firefox%20151.0.3.dmg","sha256": "60d5cb29412b161c76ecc58f3f8a960cd0048081cf84c6fe91579f1957564277","appNames": ["Firefox.app"],"conflictsWithCasks": ["firefox@beta", "firefox@cn", "firefox@esr"],"installs30d": 17327,"installs90d": 51674,"installs365d": 206054,"scrapedAt": "2026-06-08T17:37:28.372Z","error": null}
✨ Why choose this Actor
- One clean record per package, with consistent field names for both formulae and casks.
- Dependency and build dependency lists come fully expanded as token arrays, not bare strings.
- Bottle download URLs and checksums for every platform Homebrew ships.
- Real 30, 90, and 365 day install counts straight from the official analytics.
- No Homebrew install, no key, and no login required.
📈 How it compares to alternatives
| Approach | Effort | Structured fields | Install analytics | Maintenance |
|---|---|---|---|---|
| This Actor | One run | Yes | Yes | None on your side |
Parsing brew info output by hand | Hours | Inconsistent | Manual | Constant |
| Writing your own API client | Days | Depends | Manual | You own the upkeep |
🚀 How to use
- Create a free Apify account using this sign-up link.
- Open the Homebrew Formulae and Casks Scraper.
- Choose a
type(formula or cask). - Add the package tokens you want under
names, or leave it empty to read from the top of the catalog, then setmaxItems. - Click Start and grab your results when the run finishes.
💼 Business use cases
Platform and DevOps
| Goal | How this helps |
|---|---|
| Mirror the package registry | Pull versions, source URLs, and bottle links |
| Pin reproducible toolchains | Snapshot exact stable versions and revisions |
Security and compliance
| Goal | How this helps |
|---|---|
| Audit open source licenses | Read the license field across packages |
| Map dependency trees | Use dependencies and buildDependencies |
Analytics and research
| Goal | How this helps |
|---|---|
| Track package popularity | Compare installs30d, installs90d, installs365d |
| Study ecosystem trends | Snapshot the catalog on a schedule |
Tooling and developer experience
| Goal | How this helps |
|---|---|
| Power a package search index | Seed it with names, descriptions, and homepages |
| Surface deprecations | Filter on the deprecated and disabled flags |
🔌 Automating Homebrew Formulae and Casks 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 catalog snapshots.
- Google Drive to archive each run's output.
🌟 Beyond business use cases
- Research: study how an open source package ecosystem grows over time.
- Personal: build a personal cheat sheet of the tools you install.
- Non-profit: keep a community package mirror current.
- Experimentation: prototype a package explorer without writing a client.
🤖 Ask an AI assistant
Paste your results into ChatGPT, Claude, Perplexity, or Microsoft Copilot and ask it to rank packages by installs, group formulae by license, or flag deprecated dependencies.
❓ Frequently Asked Questions
Do I need Homebrew installed? No. The Actor reads the public formulae.brew.sh API, which needs no local install.
Do I need an API key? No key is required. The Actor sends a descriptive User-Agent, as the API asks clients to do.
What is the difference between formulae and casks? Formulae are command line tools and libraries built from source or bottles. Casks are macOS desktop applications distributed as prebuilt installers.
How do I fetch specific packages?
Set type, then list exact tokens under names, for example wget, openssl@3, or google-chrome. Tokens are lowercase and case sensitive.
What happens if I leave names empty?
The Actor reads the full catalog file and takes packages from the top, in alphabetical order, up to your maxItems.
Are install counts real?
Yes. They come from the analytics.install data the API publishes, covering 30, 90, and 365 day windows.
Are dependencies included?
Yes. Formulae return runtime dependencies and buildDependencies as token arrays, plus any conflictsWith entries.
Can I get bottle download links?
Yes. Each formula includes a bottles array with a per platform URL and sha256 checksum.
What if a token does not exist?
That package gets a record with an error message instead of data, and the run continues with the rest.
How fresh is the data? Each run pulls live from formulae.brew.sh, so it reflects the catalog at run time.
🔌 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.
🔗 Recommended Actors
- Have I Been Pwned Breaches Catalog Scraper
- Brawlify Brawl Stars Database Scraper
- More developer and reference data Actors in the ParseForge collection
💡 Pro Tip: browse the complete ParseForge collection.
🆘 Need Help? Open our contact form
⚠️ Disclaimer: independent tool, not affiliated with Homebrew. Only publicly available data is collected.