BYTETOOLS

Open Brewery DB API

Free brewery directory API with no key: search breweries by name, city, state, country and type, with addresses and coordinates. Tested curl example.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 19 Aug 2026

What is the Open Brewery DB API?

Open Brewery DB is a free, key-free API listing breweries worldwide with names, types, full addresses, phone numbers, websites and coordinates, searchable by location and brewery type.

Open Brewery DB is a genuine open dataset of real businesses rather than generated placeholder data, which makes it unusually useful for practising location-based features — mapping, distance sorting, radius search — with data that behaves like production data.

It also has realistic messiness worth building against: some records lack coordinates, phone numbers or websites. Handling those gaps gracefully is exactly the skill that synthetic datasets never teach.

Quick facts

Base URL
https://api.openbrewerydb.org/v1
Authentication
No key required.
Rate limit
No published hard limit; fair use expected.
Pricing
Free open data.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the Open Brewery DB API

Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. List breweries from the directory

GET https://api.openbrewerydb.org/v1/breweries?per_page=1

curl
curl 'https://api.openbrewerydb.org/v1/breweries?per_page=1'
JavaScript (fetch)
const res = await fetch("https://api.openbrewerydb.org/v1/breweries?per_page=1");
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://api.openbrewerydb.org/v1/breweries?per_page=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
[
  {
    "id": "ae7b3174-8be8-4d53-a3a5-9b8240970eea",
    "name": "'s",
    "brewery_type": "brewpub",
    "address_1": "Friesener Straße 1",
    "address_2": null,
    "address_3": null,
    "city": "Kronach",
    "state_province": "Bayern",
    "postal_code": "96317",
    "country": "Germany",
    "longitude": 11.327765,
    "latitude": 50.241246,
    "phone": "+49 9261 628000",
    "website_url": "http://www.antla.de",
    "state": "Bayern",
    "street": "Friesener Straße 1"
  }
]

Parameters

ParameterTypeRequiredDescription
by_citystringOptionalFilter by city name. san_diego
by_statestringOptionalFilter by state or province. california
by_countrystringOptionalFilter by country. united_states
by_typestringOptionalmicro, nano, regional, brewpub, large, planning, contract or closed. micro
per_pageintegerOptionalResults per page, up to 200. 20
by_diststringOptionalSort by distance from lat,lng coordinates. 32.88,-117.16

Response fields

id / namestring
Brewery identifier and name.
brewery_typestring
Category such as micro, brewpub or regional.
address_1 / city / state / postal_codestring
Full address components.
latitude / longitudestring|null
Coordinates as strings; null for some records.
phone / website_urlstring|null
Contact details, frequently null.

What you can build with the Open Brewery DB API

  • Build a brewery finder with map and distance sorting
  • Practise location-based search with real, imperfect data
  • Add a local business directory to a travel or food site
  • Teach defensive handling of nullable fields

Common errors and how to fix them

Empty array

No breweries matched the filters.

Fix: City and state values use underscores for spaces, e.g. `san_diego`.

Null coordinates

Not every brewery has been geocoded.

Fix: Filter out records without latitude and longitude before plotting on a map.

Open Brewery DB API — frequently asked questions

Is Open Brewery DB free?

Yes, completely free open data with no API key or registration required.

How do I search breweries near a location?

Use `by_dist` with `latitude,longitude` to sort results by distance from that point, then combine with `per_page` to limit how many you render.

Why are some fields null?

It is a real-world open dataset, so coverage is uneven — phone numbers, websites and coordinates are missing for some breweries. Handle nulls rather than assuming every field is present.

How do I format multi-word city names?

Replace spaces with underscores, so San Diego becomes `san_diego`. The same applies to state and country filters.

Tools that pair with this API

Alternatives to Open Brewery DB API

If Open Brewery DB does not fit, these utility apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
AgifyFree API that estimates age from a first name using public name data. No key for 100 requests/day. Tested curl example, live response and accuracy caveats.No keyYes19 Aug 2026
GenderizeFree API estimating the gender statistically associated with a first name, with a probability score. 100 requests/day, no key. Tested example and caveats.No keyYes19 Aug 2026
NationalizeFree API predicting likely nationality from a first name, returning ranked countries with probabilities. 100 requests/day, no key. Tested curl example.No keyYes19 Aug 2026
Random User GeneratorFree random user generator API with no key: names, addresses, emails, photos and logins in multiple nationalities. Seeded and reproducible. Tested example.No keyYes19 Aug 2026
PostalPincode.inFree Indian pincode API with no key: look up every post office for a PIN code, or find PIN codes by post office name, with district, division and state. Tested example included.No keyYes21 Aug 2026
Random Word APIFree random word API with no key: generate one or many random English words, filtered by length. Minimal payload, useful for games and test data. Tested.No keyYes20 Aug 2026
All Utility APIs

Open Brewery DB is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.