# BeerMe > BeerMe cotiza recetas de cerveza casera en 3 tiendas online de Chile (Mundo Cervecero, Enter Insumos, La Tienda del Cervecero), con despacho incluido, y dice dónde sale más barato comprar todos los ingredientes. Sin cuentas ni datos personales. Precios referenciales en CLP con IVA, leídos una vez por semana; manda lo que diga la tienda al comprar. ## Cómo cotizar La receta va en la URL: una línea por ingrediente, con cantidad, unidad (kg, g, oz, lb, sobre) y nombre, separadas por ";" o por salto de línea (%0A). La comuna de despacho va como slug en minúsculas y sin tildes (providencia, vina-del-mar, puerto-montt). - Página legible sin JavaScript (HTML): https://beerme.royarzun.dev/cotizar?receta=5%20kg%20Pale%20Ale%20Weyermann;50%20g%20Willamette;1%20sobre%20SafAle%20S-04&comuna=providencia - Formato para máquinas (JSON): https://beerme.royarzun.dev/api/cotizacion?receta=5%20kg%20Pale%20Ale%20Weyermann;50%20g%20Willamette;1%20sobre%20SafAle%20S-04&comuna=providencia Parámetros (los dos endpoints usan los mismos): - receta: obligatorio. Ejemplo: receta=5 kg Pale Ale Weyermann;50 g Willamette;1 sobre SafAle S-04 - comuna: obligatorio en la API; en /cotizar, sin comuna se muestra el paso de revisión. - litros y escalar: volumen original y volumen al que escalar la receta (escalar vale hasta 10 veces litros). - molida: 1 para malta molida; por defecto 0 (entera). - retiro: tiendas donde se retira en persona, separadas por coma (mundo-cervecero, la-tienda-del-cervecero); el despacho de esa tienda queda en $0. - acepto: ids de sustitutos aceptados (equivalencias o grupos), separados por coma. Un sustituto nunca entra a la canasta sin aceptarlo. - interpretar: 1 para que BeerMe revise las líneas que sus reglas no reconocen (nombres en inglés, abreviaturas, marcas). La respuesta tarda hasta 7 s más. Esas líneas vuelven con via "interpretacion" y confianza "dudosa": revísalas antes de comprar. La respuesta trae "interpretacion": { "estado", "lineas" }. ## Qué devuelve la API { "cotizacion": { "fecha", "catalogo", "tiendas", "region", "lineas": [ { "indice", "texto", "cantidad", "emparejamientos": [ { "tienda", "producto", "confianza": "alta" | "dudosa" | "sin-match", "via", "sustituto", "url" } ] } ], "canastaUnaTienda", "canastaOptima": { "tiendas", "total", "pedidos": [ { "tienda", "lineas": [ { "producto", "etiqueta", "cantidad", "subtotal", "sobrante", "url", "carroUrl" } ], "subtotal", "despacho", "total" } ], "faltantes" }, "referencia", "diferencia", "ahorro" }, "patrocinado": [], "avisos": [] } - canastaOptima es la combinación de tiendas más barata con despacho. canastaUnaTienda es comprar todo en una sola tienda. referencia es el precio más bajo de cada ingrediente sin despacho (no es una canasta); su porTienda trae el precio de cada tienda que lo vende, de menor a mayor. - Montos enteros en CLP con IVA. Masas en gramos. Fechas ISO 8601. carroUrl agrega esa línea al carro de la tienda con la cantidad calculada. - Todo contenido pagado va fuera de "cotizacion", en "patrocinado", rotulado. Los links de afiliado llevan "afiliado": true. Nada pagado cambia el resultado. - Las líneas que nombran el mismo ingrediente se compran juntas: la línea trae la cantidad sumada y "adiciones" con el texto y la cantidad de cada línea original. - Errores: 400 con { "error": { "parametro", "mensaje" } } cuando falta receta o comuna o un parámetro es inválido. 429 con Retry-After si se supera el límite de tasa, que es el mismo para personas y agentes. Una línea que no se puede leer no bloquea las demás: aparece con "error" en "lineas". ## Reglas - Precios referenciales en CLP con IVA; la fecha de lectura de cada tienda viene en "tiendas". - Mismo trato y mismo límite de tasa para agentes y personas. No hay captchas. - Nada se guarda en el servidor: cada cotización se calcula al momento. ## Páginas públicas - Maltas: https://beerme.royarzun.dev/maltas - Lúpulos: https://beerme.royarzun.dev/lupulos - Levaduras: https://beerme.royarzun.dev/levaduras - Azúcares y adjuntos: https://beerme.royarzun.dev/azucares-adjuntos - Sales y químicos: https://beerme.royarzun.dev/sales-quimicos - Clarificantes y nutrientes: https://beerme.royarzun.dev/clarificantes-nutrientes - Especias: https://beerme.royarzun.dev/especias - Precio de un ingrediente en cada tienda, de más barata a más cara, con stock y fecha de lectura: una página por ingrediente, por ejemplo https://beerme.royarzun.dev/maltas/pale-ale/weyermann. Todas están en https://beerme.royarzun.dev/sitemap.xml. - Cómo funciona (cálculo, privacidad, afiliados): https://beerme.royarzun.dev/como-funciona - Quién es el lector de precios: https://beerme.royarzun.dev/bot - Todas estas páginas responden en Markdown si la solicitud lleva la cabecera Accept: text/markdown.