{"openapi":"3.1.0","info":{"title":"Pet Care Calc","version":"1.0.0","description":"Pet energy needs, food portions, dog age conversions, aquarium volume and weight, water changes and feeding schedules. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"Pet Care Calc: Pet energy needs, food portions, dog age conversions, aquarium volume and weight, water changes and feeding schedules. Use /resting-energy and /daily-energy for calorie needs, /food-portion to turn calories into cups or grams, /dog-age for human-year conversions, /aquarium-volume for gallons, litres and weight, /water-change for partial water change effects and /feeding-schedule to split a daily ration. Each paid GET returns a computed verdict with the reasons, the source and what was NOT checked. A verdict of UNVERIFIED means a lookup failed: treat it as unknown. No account or key: pay per call in USDC over x402."},"servers":[{"url":"https://pet-calc.x402tookit.com"}],"paths":{"/aquarium-volume":{"get":{"operationId":"aquarium_volume","summary":"Aquarium volume in US gallons and litres from inside dimensions, usable water after substrate, and the water's weight.","description":"Aquarium volume in US gallons and litres from inside dimensions, usable water after substrate, and the water's weight.","tags":["aquarium","fish","volume","tank"],"parameters":[{"name":"length","in":"query","required":true,"description":"Inside length","schema":{"type":"number"}},{"name":"width","in":"query","required":true,"description":"Inside width (front to back)","schema":{"type":"number"}},{"name":"height","in":"query","required":true,"description":"Inside height up to the water line you will keep","schema":{"type":"number"}},{"name":"unit","in":"query","required":false,"description":"in (default) or cm","schema":{"type":"string"}},{"name":"usablePercent","in":"query","required":false,"description":"Share of the volume that is water after substrate and decor, 50 to 100 (default 90)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"cubicInches":{"type":["null","number"]},"grossGallonsUS":{"type":["null","number"]},"grossLiters":{"type":["null","number"]},"usableGallonsUS":{"type":["null","number"]},"usableLiters":{"type":["null","number"]},"waterWeightLb":{"type":["null","number"]},"waterWeightKg":{"type":["null","number"]},"grossWaterWeightLb":{"type":["null","number"]},"usablePercent":{"type":["null","number"]},"ukGallons":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"18.7 US gallons (70.8 L) gross; about 16.8 gal of water at 90% usable, weighing 140 lb.","reasons":["US gallon = 231 cubic inches; fresh water weighs about 8.34 lb per gallon (1 kg per litre).","A full tank's weight on its stand is much more than the water alone."],"cubicInches":4320,"grossGallonsUS":18.7,"grossLiters":70.79,"usableGallonsUS":16.83,"usableLiters":63.71,"waterWeightLb":140.4,"waterWeightKg":63.7,"grossWaterWeightLb":156,"usablePercent":90,"ukGallons":15.57,"degraded":false,"notChecked":["the real water line (tanks are filled below the rim)","weight of the glass or acrylic, stand, substrate, rock and equipment","…1 more"],"source":"computed locally (231 cubic inches per US gallon)","asOf":"2026-10-12T01:16:19.106Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/aquarium-volume"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/aquarium-volume"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/aquarium-volume"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/aquarium-volume"}}]}}},"/daily-energy":{"get":{"operationId":"daily_energy","summary":"Daily calories for a dog or cat from weight, species and life stage (neutered adult, weight loss, working, young).","description":"Daily calories for a dog or cat from weight, species and life stage (neutered adult, weight loss, working, young).","tags":["pets","der","calories","dog","cat"],"parameters":[{"name":"species","in":"query","required":true,"description":"dog or cat","schema":{"type":"string"}},{"name":"lifeStage","in":"query","required":false,"description":"neutered-adult (default), intact-adult, weight-loss, inactive, light-work, puppy-kitten-young (under 4 months) or puppy-kitten-older","schema":{"type":"string"}},{"name":"weight","in":"query","required":true,"description":"Body weight (the ideal or target weight for weight loss)","schema":{"type":"number"}},{"name":"unit","in":"query","required":false,"description":"kg (default) or lb","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"species":{"type":["null","string"]},"lifeStage":{"type":["null","string"]},"weightKg":{"type":["null","number"]},"rerKcalPerDay":{"type":["null","number"]},"factor":{"type":["null","number"]},"derKcalPerDay":{"type":["null","number"]},"plusMinus20PercentRange":{"type":["array","null"],"items":{"type":"number"}},"treatAllowanceKcal":{"type":["null","number"]},"mealKcalAfterTreats":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"A neutered adult dog of 10 kg needs about 630 kcal/day (RER 394 x 1.6).","reasons":["Factors are typical mid-range figures; individual animals differ widely, so watch weight and body condition and adjust.","Treats should stay under about 10% of daily calories."],"species":"dog","lifeStage":"neutered-adult","weightKg":10,"rerKcalPerDay":393.6,"factor":1.6,"derKcalPerDay":629.8,"plusMinus20PercentRange":[504,756],"treatAllowanceKcal":63,"mealKcalAfterTreats":567,"degraded":false,"notChecked":["individual metabolism, breed and temperature (real needs vary by 20% or more either way)","illness or medication","…1 more"],"source":"computed locally (DER = RER x life-stage factor)","asOf":"2026-10-12T01:16:19.365Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/daily-energy"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/daily-energy"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/daily-energy"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/daily-energy"}}]}}},"/dog-age":{"get":{"operationId":"dog_age","summary":"Human-equivalent age of a dog by the AVMA 15-9-5 rule and the 2020 epigenetic-clock formula 16 ln(age) + 31.","description":"Human-equivalent age of a dog by the AVMA 15-9-5 rule and the 2020 epigenetic-clock formula 16 ln(age) + 31.","tags":["dog","age","human-years","pets"],"parameters":[{"name":"dogYears","in":"query","required":true,"description":"The dog's age in calendar years (for example 7 or 2.5)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"dogYears":{"type":["null","number"]},"humanYearsAvma":{"type":["null","number"]},"humanYearsEpigenetic":{"type":["null","number"]},"epigeneticReliable":{"type":["boolean","null"]},"differenceYears":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"A 7-year-old dog is about 49 in the AVMA rule and 62.1 by the epigenetic formula.","reasons":["AVMA rule: 15 human years for the first dog year, 9 for the second, 5 for each after that.","Epigenetic formula: human age = 16 x ln(dog age) + 31, from DNA-methylation clocks."],"dogYears":7,"humanYearsAvma":49,"humanYearsEpigenetic":62.13,"epigeneticReliable":true,"differenceYears":-13.13,"degraded":false,"notChecked":["breed and size, which change how fast dogs age (large breeds age faster)","individual health","…1 more"],"source":"computed locally (AVMA convention; Wang et al. 2020 epigenetic formula)","asOf":"2026-10-12T01:16:19.630Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/dog-age"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/dog-age"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/dog-age"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/dog-age"}}]}}},"/feeding-schedule":{"get":{"operationId":"feeding_schedule","summary":"Split a daily food amount into evenly spaced meals between a first and last feeding time, with 12-hour clock times.","description":"Split a daily food amount into evenly spaced meals between a first and last feeding time, with 12-hour clock times.","tags":["pets","feeding","schedule","meals"],"parameters":[{"name":"dailyAmount","in":"query","required":true,"description":"Total food per day in any unit (grams, cups, kcal)","schema":{"type":"number"}},{"name":"meals","in":"query","required":true,"description":"Meals per day, 1 to 8","schema":{"type":"integer"}},{"name":"firstMealHour","in":"query","required":false,"description":"Hour of the first meal on a 24-hour clock, 0 to 23.5 (default 7)","schema":{"type":"number"}},{"name":"lastMealHour","in":"query","required":false,"description":"Hour of the last meal on a 24-hour clock (default 19)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"dailyAmount":{"type":["null","number"]},"meals":{"type":["null","number"]},"perMeal":{"type":["null","number"]},"times":{"type":["array","null"],"items":{"type":"string"}},"hoursBetweenMeals":{"type":["null","number"]},"overnightFastHours":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"3 meal(s) of 58.33 each at 7:00 AM, 1:00 PM, 7:00 PM.","reasons":["Meals are 6 hours apart."],"dailyAmount":175,"meals":3,"perMeal":58.333,"times":["7:00 AM","1:00 PM","…1 more"],"hoursBetweenMeals":6,"overnightFastHours":12,"degraded":false,"notChecked":["your pet's medical feeding needs (diabetic and some other pets need set times)","puppies and kittens, who eat more often","…1 more"],"source":"computed locally (even spacing)","asOf":"2026-10-12T01:16:19.895Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/feeding-schedule"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/feeding-schedule"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/feeding-schedule"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/feeding-schedule"}}]}}},"/food-portion":{"get":{"operationId":"food_portion","summary":"Grams, cups and per-meal portions of pet food from daily kcal and the food's kcal per kg or per cup, with a treat allowance.","description":"Grams, cups and per-meal portions of pet food from daily kcal and the food's kcal per kg or per cup, with a treat allowance.","tags":["pets","feeding","portion","kibble"],"parameters":[{"name":"dailyKcal","in":"query","required":true,"description":"Calories per day the pet needs (see /daily-energy)","schema":{"type":"number"}},{"name":"kcalPerKg","in":"query","required":false,"description":"Food energy per kilogram from the label (use this or kcalPerCup)","schema":{"type":"number"}},{"name":"kcalPerCup","in":"query","required":false,"description":"Food energy per cup from the label","schema":{"type":"number"}},{"name":"gramsPerCup","in":"query","required":false,"description":"Grams in one cup of this food, to show both units (optional)","schema":{"type":"number"}},{"name":"meals","in":"query","required":false,"description":"Meals per day, 1 to 8 (default 2)","schema":{"type":"integer"}},{"name":"treatPercent","in":"query","required":false,"description":"Share of calories kept for treats, 0 to 30 percent (default 10)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"dailyKcal":{"type":["null","number"]},"treatPercent":{"type":["null","number"]},"treatKcal":{"type":["null","number"]},"foodKcal":{"type":["null","number"]},"gramsPerDay":{"type":["null","number"]},"cupsPerDay":{"type":["null","number"]},"meals":{"type":["null","number"]},"gramsPerMeal":{"type":["null","number"]},"cupsPerMeal":{"type":["null","number"]},"ouncesPerDay":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"567 kcal of food a day is 158 g (1.5 cups), 2 meal(s) of 78.75 g; 63 kcal left for treats.","reasons":["Weigh your pet every 2 to 4 weeks and adjust by about 10% if the trend is wrong.","Kibble volume varies by measuring cup; weighing in grams is more accurate."],"dailyKcal":630,"treatPercent":10,"treatKcal":63,"foodKcal":567,"gramsPerDay":157.5,"cupsPerDay":1.5,"meals":2,"gramsPerMeal":78.75,"cupsPerMeal":0.75,"ouncesPerDay":5.56,"degraded":false,"notChecked":["the real kcal content of your food (check the label's kcal ME per kg or cup)","wet and dry mixes (add each part separately)","…1 more"],"source":"computed locally (kcal / energy density)","asOf":"2026-10-12T01:16:20.160Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/food-portion"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/food-portion"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/food-portion"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/food-portion"}}]}}},"/ideal-weight-bcs":{"get":{"operationId":"ideal_weight_bcs","summary":"Estimate a dog's or cat's ideal weight from current weight and a 1-9 body condition score (10% per point above 5).","description":"Estimate a dog's or cat's ideal weight from current weight and a 1-9 body condition score (10% per point above 5).","tags":["pets","body-condition","ideal-weight","obesity"],"parameters":[{"name":"weight","in":"query","required":true,"description":"Current body weight","schema":{"type":"number"}},{"name":"unit","in":"query","required":false,"description":"kg (default) or lb","schema":{"type":"string"}},{"name":"bodyConditionScore","in":"query","required":true,"description":"9-point body condition score from your vet or a BCS chart: 1 emaciated, 4 to 5 ideal, 9 obese","schema":{"type":"integer"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"currentKg":{"type":["null","number"]},"currentLb":{"type":["null","number"]},"bodyConditionScore":{"type":["null","number"]},"estimatedPercentOverIdeal":{"type":["null","number"]},"idealKg":{"type":["null","number"]},"idealLb":{"type":["null","number"]},"kgToLose":{"type":["null","number"]},"weeksAtOnePercentPerWeek":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"OVERWEIGHT","summary":"Score 7/9 (overweight): estimated ideal weight 20.83 kg (45.9 lb), 4.17 kg above now.","reasons":["Each point above 5 is roughly 10% over ideal weight, each point below roughly 10% under; scores 4 and 5 are treated as ideal.","Plan the calories for the TARGET weight with your vet, losing about 1 to 2% of body weight a week at most."],"currentKg":25,"currentLb":55.12,"bodyConditionScore":7,"estimatedPercentOverIdeal":20,"idealKg":20.833,"idealLb":45.93,"kgToLose":4.167,"weeksAtOnePercentPerWeek":19,"degraded":false,"notChecked":["the accuracy of your score (a vet's hands-on assessment is better)","muscle loss, fluid, pregnancy or tumours","…2 more"],"source":"computed locally (Laflamme 9-point scale: about 10% body fat/weight per point above 5)","asOf":"2026-10-12T01:16:20.423Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/ideal-weight-bcs"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/ideal-weight-bcs"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/ideal-weight-bcs"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/ideal-weight-bcs"}}]}}},"/resting-energy":{"get":{"operationId":"resting_energy","summary":"Resting energy requirement (RER) in kcal/day for a dog or cat from body weight, using 70 x kg^0.75 and the linear shortcut.","description":"Resting energy requirement (RER) in kcal/day for a dog or cat from body weight, using 70 x kg^0.75 and the linear shortcut.","tags":["pets","rer","calories","veterinary-nutrition"],"parameters":[{"name":"weight","in":"query","required":true,"description":"Body weight (ideal or target weight for an overweight pet)","schema":{"type":"number"}},{"name":"unit","in":"query","required":false,"description":"kg (default) or lb","schema":{"type":"string"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"weightKg":{"type":["null","number"]},"weightLb":{"type":["null","number"]},"rerKcalPerDay":{"type":["null","number"]},"linearShortcutKcalPerDay":{"type":["null","number"]},"linearShortcutValid":{"type":["boolean","null"]},"rerKjPerDay":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"RER for 10 kg (22 lb) is about 394 kcal/day (linear shortcut 370).","reasons":["RER is the energy a resting animal needs; actual daily needs multiply it by a life-stage factor (see /daily-energy).","The linear shortcut is valid from 2 to 45 kg."],"weightKg":10,"weightLb":22.05,"rerKcalPerDay":393.6,"linearShortcutKcalPerDay":370,"linearShortcutValid":true,"rerKjPerDay":1647,"degraded":false,"notChecked":["illness, pregnancy, lactation or growth, which change needs a lot","body condition (use the ideal weight for overweight animals)","…1 more"],"source":"computed locally (RER = 70 x kg^0.75; linear 30 x kg + 70 for 2 to 45 kg)","asOf":"2026-10-12T01:16:20.688Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/resting-energy"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/resting-energy"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/resting-energy"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/resting-energy"}}]}}},"/water-change":{"get":{"operationId":"water_change","summary":"Nitrate left after partial water changes, changes needed to reach a target, and the litres or gallons per change.","description":"Nitrate left after partial water changes, changes needed to reach a target, and the litres or gallons per change.","tags":["aquarium","water-change","nitrate","dilution"],"parameters":[{"name":"tankVolume","in":"query","required":true,"description":"Tank water volume (gallons or litres; the answer uses the same unit)","schema":{"type":"number"}},{"name":"changePercent","in":"query","required":true,"description":"Share of the water replaced per change, 1 to 90 percent","schema":{"type":"number"}},{"name":"startPpm","in":"query","required":true,"description":"Starting concentration, for example nitrate in ppm (mg/L)","schema":{"type":"number"}},{"name":"targetPpm","in":"query","required":false,"description":"A target concentration, to count the changes needed","schema":{"type":"number"}},{"name":"changes","in":"query","required":false,"description":"A number of changes to project (default 1)","schema":{"type":"integer"}},{"name":"tapPpm","in":"query","required":false,"description":"Concentration in the replacement water (default 0; tap water can carry nitrate)","schema":{"type":"number"}}],"responses":{"200":{"description":"The answer.","content":{"application/json":{"schema":{"type":"object","properties":{"verdict":{"type":["null","string"]},"summary":{"type":["null","string"]},"reasons":{"type":["array","null"],"items":{"type":"string"}},"volumeChangedPerWaterChange":{"type":["null","number"]},"fractionKept":{"type":["null","number"]},"afterChanges":{"type":["null","number"]},"concentrationAfter":{"type":["null","number"]},"percentReduction":{"type":["null","number"]},"changesNeededForTarget":{"type":["null","number"]},"projection":{"type":["array","null"],"items":{"type":"object","properties":{"change":{"type":["null","number"]},"ppm":{"type":["null","number"]}}}},"tapPpm":{"type":["null","number"]},"degraded":{"type":["boolean","null"]},"notChecked":{"type":["array","null"],"items":{"type":"string"}},"source":{"type":["null","string"]},"asOf":{"type":["null","string"]},"disclaimer":{"type":["null","string"]}}},"example":{"verdict":"COMPUTED","summary":"After 1 change(s) of 25%: 30 ppm (from 40); 3 change(s) reach 20 ppm.","reasons":["Each change keeps (1 - fraction) of the old concentration: after n changes c = tap + (start - tap) x (1 - f)^n."],"volumeChangedPerWaterChange":5,"fractionKept":0.75,"afterChanges":1,"concentrationAfter":30,"percentReduction":25,"changesNeededForTarget":3,"projection":[{"change":1,"ppm":30}],"tapPpm":0,"degraded":false,"notChecked":["ongoing waste production between changes (the real level rebounds)","stock levels, filtration and plants, which change nitrate","…2 more"],"source":"computed locally (exponential dilution)","asOf":"2026-10-12T01:16:20.953Z","disclaimer":"Screening signal computed from the named public source. Not financial, legal or investment advice; provided as is. Verify at the source before acting."}}}},"400":{"description":"A parameter was missing or out of range."},"402":{"description":"Payment Required"},"502":{"description":"The upstream source failed or timed out."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0200"},"protocols":[{"x402":{"network":"eip155:8453","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/water-change"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/water-change"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/water-change"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://pet-calc.x402tookit.com/water-change"}}]}}}}}