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.
Endpoint tested and returned HTTP 200 on 2026-08-19
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 2026-08-19, 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 'https://api.openbrewerydb.org/v1/breweries?per_page=1'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);import requests
res = requests.get("https://api.openbrewerydb.org/v1/breweries?per_page=1", timeout=20)
res.raise_for_status()
print(res.json())[
{
"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
| Parameter | Type | Required | Description |
|---|---|---|---|
by_city | string | Optional | Filter by city name. san_diego |
by_state | string | Optional | Filter by state or province. california |
by_country | string | Optional | Filter by country. united_states |
by_type | string | Optional | micro, nano, regional, brewpub, large, planning, contract or closed. micro |
per_page | integer | Optional | Results per page, up to 200. 20 |
by_dist | string | Optional | Sort 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
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.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Open Brewery DB is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.