Escale una receta de cóctel para cualquier cantidad
Convierta una receta de cóctel para una copa en un lote práctico sin repetir cálculos para cada destilado, zumo, sirope o guarnición.
Ejecutar — gratis
Introduzca cada ingrediente con su cantidad individual y su unidad, y elija cuántas bebidas necesita. La calculadora aplica la misma proporción a todas las filas, conserva las unidades indicadas y devuelve las cantidades originales y escaladas para preparar un evento, un servicio de bar o un flujo automatizado.
Parta de una receta realmente individual
Use las cantidades que producen exactamente una bebida terminada. Añada una fila por cada componente medido, incluidos destilados, modificadores, cítricos, siropes, bitters, agua de dilución o guarniciones contables. Indique un nombre claro, una cantidad numérica no negativa y una unidad como onzas líquidas, mililitros, golpes, cucharaditas o piezas. La calculadora no convierte unidades, pues conservar la unidad original evita suposiciones sobre densidad, medidas regionales y técnica de bar. Mantenga la coherencia entre filas. Si la receta original ya corresponde a una jarra o a varias copas, divídala primero hasta obtener una sola bebida. Esa base individual permite que el número de porciones solicitado sea directamente el factor de escala. Se admite cero para un componente incluido de forma intencionada, pero se rechazan cantidades negativas, ausentes o no numéricas.
Elija el número de porciones y lea el resultado
Defina target_servings con el número de cócteles que desea preparar. Debe ser positivo y puede ser decimal si está probando una porción menor. Como la receta enviada representa una bebida, la herramienta multiplica cada cantidad por ese número. Una receta con 2 onzas de destilado y 0.75 onzas de zumo pasa a 16 y 6 onzas para ocho porciones. La respuesta muestra el objetivo, el factor y una fila por ingrediente. Cada fila conserva el nombre y la unidad, y presenta original_amount junto a scaled_amount para facilitar la revisión. El cálculo es determinista y usa precisión estable. Las unidades son etiquetas, no instrucciones de conversión: los mililitros siguen siendo mililitros. Si el resultado no encaja bien con su equipo, redondéelo solo después de decidir la tolerancia adecuada para ese ingrediente.
Planifique el lote sin perder el equilibrio
El escalado proporcional conserva la relación matemática de la receta, pero la preparación exige criterio práctico. Use el resultado como plan de ingredientes y trate aparte lo que no sea una cantidad ordinaria: el hielo aporta dilución, la acidez del cítrico varía, los componentes carbonatados suelen añadirse al servir y las guarniciones delicadas se preparan por separado. Compruebe el volumen del recipiente y deje espacio para mezclar y transportar. Para comprar, compare las cantidades escaladas con los formatos comerciales y redondee las compras hacia arriba sin alterar la proporción. Calcule por separado cada recipiente si necesita dividir el lote. La API cuesta $0.002 por solicitud y puede integrarse en software de eventos, inventario o preparación. Guarde la entrada junto al resultado para que el personal pueda rastrear cada cantidad hasta la receta individual.
Qué puede hacer con ella
Prepare cócteles para una fiesta
Convierta una receta para una copa en cantidades medidas para el número exacto de invitados.
Cree una hoja de preparación del bar
Genere cantidades coherentes que el personal pueda revisar antes del servicio.
Estime las compras de un evento
Escale primero los ingredientes y compárelos después con botellas, cajas y paquetes disponibles.
Preguntas frecuentes
¿Cuánto cuesta?
Cada solicitud a la API cuesta $0.002.
¿La receta original debe corresponder a una porción?
Sí. Cada cantidad enviada debe describir un cóctel; el número de porciones objetivo será el multiplicador.
¿Convierte onzas a mililitros?
No. Conserva exactamente cada unidad indicada y solo escala la cantidad numérica.
¿Puede ser decimal el número de porciones?
Sí, siempre que sea un número finito y positivo dentro del límite publicado.
¿Por qué se rechaza un objetivo nulo o negativo?
Un lote debe representar un número positivo de porciones; cero y los valores negativos no describen un lote utilizable.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/cook/cocktail-recipe-scale \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ingredients":[{"name":"Gin","amount":2,"unit":"fl oz"},{"name":"Lemon juice","amount":0.75,"unit":"fl oz"},{"name":"Simple syrup","amount":0.5,"unit":"fl oz"}],"target_servings":8}'const res = await fetch("https://api.kit.forhosting.com/cook/cocktail-recipe-scale", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ingredients": [
{
"name": "Gin",
"amount": 2,
"unit": "fl oz"
},
{
"name": "Lemon juice",
"amount": 0.75,
"unit": "fl oz"
},
{
"name": "Simple syrup",
"amount": 0.5,
"unit": "fl oz"
}
],
"target_servings": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/cook/cocktail-recipe-scale",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ingredients": [
{
"name": "Gin",
"amount": 2,
"unit": "fl oz"
},
{
"name": "Lemon juice",
"amount": 0.75,
"unit": "fl oz"
},
{
"name": "Simple syrup",
"amount": 0.5,
"unit": "fl oz"
}
],
"target_servings": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/cook/cocktail-recipe-scale", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ingredients":[{"name":"Gin","amount":2,"unit":"fl oz"},{"name":"Lemon juice","amount":0.75,"unit":"fl oz"},{"name":"Simple syrup","amount":0.5,"unit":"fl oz"}],"target_servings":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ingredients":[{"name":"Gin","amount":2,"unit":"fl oz"},{"name":"Lemon juice","amount":0.75,"unit":"fl oz"},{"name":"Simple syrup","amount":0.5,"unit":"fl oz"}],"target_servings":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/cook/cocktail-recipe-scale", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"ingredients": [
{
"name": "Gin",
"amount": 2,
"unit": "fl oz"
},
{
"name": "Lemon juice",
"amount": 0.75,
"unit": "fl oz"
},
{
"name": "Simple syrup",
"amount": 0.5,
"unit": "fl oz"
}
],
"target_servings": 8
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "cook.cocktail_recipe_scale",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_ingredients | 200 |
max_amount | 1000000000 |
max_servings | 1000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |