For developers
Three ways in, no key needed: static files with everything, a live API for questions, and an MCP server for AI agents.
Static files
Every build writes the full data under /api/v1/: JSON (the database's fields, money in cents, unix times) and CSV (reais, local dates). Open CORS, cached for 5 minutes, free to fetch as often as you like. For bulk use, start here.
/api/v1/index.json | every file, per city, with counts |
|---|---|
/api/v1/cities.json · /api/v1/catalog.json | cities; brands, beers and formats |
/api/v1/salvador/deals.json (.csv) | published prices, with schedules |
/api/v1/salvador/venues.json (.csv) | bars with a price; venues-all for every bar |
/api/v1/salvador/price-index.json (.csv) | the monthly index |
/api/v1/salvador/neighbourhoods.geojson | bairro boundaries |
Open data page (downloads and citation)
Live API
For questions the files can't answer cheaply: at most 50 prices per answer, cached for 10–15 minutes. When the database runs low, the endpoints answer 503 with Retry-After and the static files' address.
curl "https://cervejabarata.com.br/api/v1/search?city=salvador&brand=brahma&limit=5"
curl "https://cervejabarata.com.br/api/v1/cheapest?city=salvador&lat=-13.0109&lng=-38.4915&radius_m=1500"
curl "https://cervejabarata.com.br/api/v1/venues/12?lang=en"OpenAPI document (/api/v1/openapi.json)
MCP server
For AI agents (Claude, ChatGPT and others that speak the Model Context Protocol): a remote server over streamable HTTP, stateless, no sign-in. Add this URL as a custom connector, or in a client configuration:
https://cervejabarata.com.br/mcp
{
"mcpServers": {
"cerveja-barata": {
"type": "http",
"url": "https://cervejabarata.com.br/mcp"
}
}
}Tools
price_per_litre: Convert a Brazilian beer price into reais per litre, the unit Cerveja Barata ranks by. Give the price paid in BRL, the volume of one unit in ml and how many units the price buys (e.g. 5 for a bucket of 5 long necks).search_deals: Beer prices in a city's bars, cheapest per litre first, each with the bar, the serving, the price, when it applies (happy hours) and when it was last checked. Filter by bairro, brand, format, kind or a maximum price per litre. Open bars only come with kind=open_bar, ranked by package price.cheapest_now: The cheapest beer prices on right now in the city's time zone, happy hours and timed promos included. Give lat and lng to keep bars within radius_m of a point (distance in metres comes back with each price).get_venue: A bar's details (kind, bairro, address, location, Instagram, opening hours, attributes) and every beer price it has, cheapest per litre first. The venue slug comes from search_deals or cheapest_now URLs.list_neighbourhoods: The city's bairros that have beer prices: how many bars and prices each has and its cheapest price per litre, most covered first. The slugs filter search_deals.price_index: The monthly Índice Cerveja Barata for a city: median, quartiles and minimum price per litre, for the whole city and by format, bairro and brand, with how many prices and bars each cell rests on. Latest month by default; final once the month is closed.catalog: The cities covered (with how many prices each has), the beer brands and the serving formats: the slugs the other tools take.
Fair use and licence
The data is open under the ODbL 1.0: credit “Cerveja Barata (cervejabarata.com.br)” and keep databases made from it open. Prefer the static files for anything in bulk, keep your own cache, and tell us what you build: contato@cervejabarata.com.br