Ventana de seguridad de las sobras refrigeradas: calculadora
Quien cocina en casa termina tarde o temprano ante la misma pregunta frente al refrigerador: ¿este recipiente de chili sigue siendo seguro?
Ejecutar — gratis
Las guías generales de inocuidad alimentaria, como las recomendaciones de conservación en frío del USDA, asignan a cada categoría de sobras una vida útil corta en el refrigerador medida en días, y esta herramienta convierte esa guía en fechas concretas de calendario. Indique la categoría del alimento y la fecha en que entró al refrigerador a cuarenta grados Fahrenheit o menos, y la calculadora devuelve la ventana de consumo recomendada como rango de días y como fechas absolutas, calculada con aritmética entera de días julianos y sin reloj del sistema. Añada una fecha de referencia opcional para saber cuántos días lleva almacenado el alimento, cuántos quedan antes del final de la ventana segura y si aún está dentro de ella o ya la superó. Las categorías desconocidas y las fechas imposibles se rechazan con un error de validación claro en lugar de una suposición. El widget gratuito del navegador y la API de pago comparten una única función isomórfica determinista, de modo que una consulta rápida en casa y una tubería automatizada de cocina siempre coinciden.
Cómo usarla
Ingrese sus datos en el formulario de arriba. La herramienta los revisa antes de calcular y muestra el resultado en la misma página.
Revise sus datos
Use las etiquetas y unidades indicadas en cada campo. Si falta algo o un valor está fuera del rango permitido, la página señala qué debe corregir.
Repita el cálculo o automatícelo
Use la herramienta web para comprobaciones individuales y la API cuando necesite integrar la misma capacidad en un flujo automatizado.
Qué puede hacer con ella
Obtenga una respuesta ahora
Ingrese un conjunto de valores y vea el resultado sin preparar una hoja de cálculo ni un script.
Compare escenarios
Cambie un valor a la vez y repita el cálculo para entender qué modifica el resultado.
Automatice el trabajo repetido
Use la API cuando necesite ejecutar el mismo cálculo dentro de su producto o flujo.
Preguntas frecuentes
¿De dónde provienen los rangos de días?
Siguen la orientación general de conservación en frío estilo USDA para refrigeradores a 4 °C (40 °F) o menos: la mayoría de las sobras cocidas se conservan de tres a cuatro días, algunas categorías algo más o menos. Son pautas generales, no una medición de su recipiente concreto.
¿Por qué no hay un 'días restantes' automático sin el campo today?
La capacidad es determinista y nunca lee el reloj del sistema. Proporcione el parámetro opcional today como fecha ISO y la respuesta incluirá los días almacenados, los días restantes y un status within_window o past_window.
¿Qué ocurre si envío una categoría que la herramienta no conoce?
La solicitud falla con un error tipado invalid_input que enumera las categorías aceptadas, y no se cobra. Los nombres de categoría son snake_case en minúsculas, como cooked_meat o deli_meat.
¿Qué formato de fecha requieren los campos?
ISO estricto YYYY-MM-DD con año de cuatro dígitos y mes y día de dos dígitos. Las fechas imposibles como 2025-02-29 se rechazan con una explicación en lugar de corregirse silenciosamente.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta localmente con la misma función que la API. Las solicitudes API exitosas usan saldo prepagado de KIT a $0.002 por elemento; las entradas inválidas nunca se cobran.
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/life/leftover-food-safety-window \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"category":"cooked_meat","refrigerated_date":"2026-07-20"}'const res = await fetch("https://api.kit.forhosting.com/life/leftover-food-safety-window", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"category": "cooked_meat",
"refrigerated_date": "2026-07-20"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/leftover-food-safety-window",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"category": "cooked_meat",
"refrigerated_date": "2026-07-20"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/leftover-food-safety-window", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"category":"cooked_meat","refrigerated_date":"2026-07-20"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"category":"cooked_meat","refrigerated_date":"2026-07-20"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/leftover-food-safety-window", 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
{
"category": "cooked_meat",
"refrigerated_date": "2026-07-20"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.leftover_food_safety_window",
"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.
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. |