BYTETOOLS

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.

No API key requiredCORS enabledHTTPSFree tier

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
curl 'https://formulae.brew.sh/api/formula/wget.json'
JavaScript (fetch)
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);
Python (requests)
import requests

res = requests.get("https://formulae.brew.sh/api/formula/wget.json", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "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": "aa19cf5de262d5b67631af8288cce233a075c251c68050a1e73699314a911e

Parameters

ParameterTypeRequiredDescription
formula/<name>.jsonpathOptionalOne formula by name. formula/wget.json
cask/<name>.jsonpathOptionalOne cask (GUI app) by name. cask/firefox.json
formula.jsonpathOptionalEvery formula in one file — very large. formula.json
analytics/install/365d.jsonpathOptionalInstall 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

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.