Homebrew Formulae API
Free Homebrew formulae API with no key: package versions, dependencies, install counts, licences and caveats for every macOS and Linux formula. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the Homebrew Formulae API?
The Homebrew formulae API is a free, key-free JSON API providing metadata for every Homebrew package — current version, dependencies, licence, install analytics and post-install caveats.
Homebrew publishes its entire formula catalogue as static JSON, which means the API is fast, has no rate limit and cannot go down under load. Every formula, cask and its full dependency tree is queryable.
The install analytics are the unusual part: each formula includes install counts for the last 30, 90 and 365 days, which is a genuinely useful popularity signal when choosing between competing tools.
Quick facts
- Base URL
https://formulae.brew.sh/api- Authentication
- No API key required — these are static JSON files.
- Rate limit
- None; served as static files from a CDN.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Homebrew Formulae API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Fetch metadata for a Homebrew formula
GET https://formulae.brew.sh/api/formula/wget.json
curl 'https://formulae.brew.sh/api/formula/wget.json'const res = await fetch("https://formulae.brew.sh/api/formula/wget.json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://formulae.brew.sh/api/formula/wget.json", timeout=20)
res.raise_for_status()
print(res.json()){
"name": "wget",
"full_name": "wget",
"tap": "homebrew/core",
"oldnames": [],
"aliases": [],
"versioned_formulae": [],
"desc": "Internet file retriever",
"license": "GPL-3.0-or-later",
"homepage": "https://www.gnu.org/software/wget/",
"versions": {
"stable": "1.25.0",
"head": "HEAD",
"bottle": true
},
"urls": {
"stable": {
"url": "https://ftpmirror.gnu.org/gnu/wget/wget-1.25.0.tar.gz",
"tag": null,
"revision": null,
"using": null,
"checksum": "766e48423e79359ea31e41db9e5c289675947a7fcf2efdcedb726ac9d0da3784"
},
"head": {
"url": "https://git.savannah.gnu.org/git/wget.git",
"branch": "master",
"using": null
}
},
"patches": [],
"revision": 0,
"version_scheme": 0,
"compatibility_version": 1,
"autobump": true,
"no_autobump_message": null,
"skip_livecheck": false,
"bottle": {
"stable": {
"rebuild": 2,
"root_url": "https://ghcr.io/v2/homebrew/core",
"files": {
"arm64_tahoe": {
"cellar": "/opt/homebrew/Cellar",
"url": "https://ghcr.io/v2/homebrew/core/wget/blobs/sha256:27e15ca14afaaa7c2016bba7a098452cf66d1d8a74330ed6195a0b6ae7a4dada",
"sha256": "27e15ca14afaaa7c2016bba7a098452cf66d1d8a74330ed6195a0b6ae7a4dada"
},
"arm64_sequoia": {
"cellar": "/opt/homebrew/Cellar",
"url": "https://ghcr.io/v2/homebrew/core/wget/blobs/sha256:aa19cf5de262d5b67631af8288cce233a075c251c68050a1e73699314a911e7b",
"sha256": "aa19cf5de262d5b67631af8288cce233a075c251c68050a1e73699314a911eParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
formula/<name>.json | path | Optional | One formula by name. formula/wget.json |
cask/<name>.json | path | Optional | One cask (GUI app) by name. cask/firefox.json |
formula.json | path | Optional | Every formula in one file — very large. formula.json |
analytics/install/365d.json | path | Optional | Install counts across all formulae. analytics/install/365d.json |
Response fields
name / full_namestring- Formula name.
descstring- Short description.
licensestring- SPDX licence identifier.
versions.stablestring- Current stable version.
dependencies / build_dependenciesarray- Runtime and build-time dependencies.
analytics.installobject- Install counts over 30, 90 and 365 days.
caveatsstring- Post-install notes shown by brew, often null.
deprecated / disabledboolean- Whether the formula is on its way out.
What you can build with the Homebrew Formulae API
- Check whether a Homebrew package has a newer version
- Compare tool popularity using install analytics
- Audit licences across your development toolchain
- Build a package browser or search interface
Common errors and how to fix them
404
Formula name not found, or it is a cask rather than a formula.
Fix: Casks live under /cask/<name>.json — GUI applications are not formulae.
Enormous response
You requested formula.json, which contains every package.
Fix: Request the individual formula unless you genuinely need the whole catalogue.
deprecated: true
The formula is scheduled for removal.
Fix: Check `deprecated` and `disabled` before recommending a package.
Homebrew Formulae API — frequently asked questions
Is the Homebrew API free?
Yes, completely free with no API key. It is served as static JSON from a CDN, so there is no rate limit.
What is the difference between a formula and a cask?
Formulae are command-line packages built from source or bottles; casks are pre-built GUI applications. They live at different API paths.
Can I see how popular a package is?
Yes, each formula includes install analytics for the last 30, 90 and 365 days — a useful signal when choosing between alternatives.
How do I know if a package is being retired?
Check the `deprecated` and `disabled` booleans, plus `deprecation_reason`, before depending on a formula.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
JSON Validator
Free online JSON validator: validate JSON and find syntax errors with the exact line and column. See root type, key counts and depth — instant and 100% private.
Homebrew Formulae is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.