{"openapi":"3.1.0","info":{"title":"Plumbing & Pipe Flow Calc","version":"1.0.0","description":"Pipe volume, flow velocity, Hazen-Williams pressure loss, pipe sizing by velocity, thermal expansion, drain slope, tank fill time and bucket flow tests. One call, one computed answer, no accounts or API keys. Machine-payable over x402.","x-guidance":"Plumbing & Pipe Flow Calc: Pipe volume, flow velocity, Hazen-Williams pressure loss, pipe sizing by velocity, thermal expansion, drain slope, tank fill time and bucket flow tests. Use /pipe-volume for water held in a pipe run, /flow-velocity for velocity or flow, /pressure-loss for Hazen-Williams friction loss, /pipe-size to pick a size by velocity, /thermal-expansion for length change, /drain-slope for fall per run, /tank-fill-time for filling or draining and /bucket-test to measure flow. 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://plumbing-calc.x402tookit.com"}],"paths":{"/bucket-test":{"get":{"operationId":"bucket_test","summary":"Flow rate in gpm and litres per minute from a bucket test: container volume and seconds to fill, with a daily-use estimate.","description":"Flow rate in gpm and litres per minute from a bucket test: container volume and seconds to fill, with a daily-use estimate.","tags":["plumbing","flow-rate","bucket-test","well"],"parameters":[{"name":"volume","in":"query","required":true,"description":"Container volume you filled","schema":{"type":"number"}},{"name":"unit","in":"query","required":false,"description":"gal (default) or l","schema":{"type":"string"}},{"name":"seconds","in":"query","required":true,"description":"Seconds it took to fill","schema":{"type":"number"}},{"name":"pressurePsi","in":"query","required":false,"description":"Pressure at the tap if known, for a rough note","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"}},"flowGpm":{"type":["null","number"]},"flowLitersPerMinute":{"type":["null","number"]},"flowCubicFeetPerMinute":{"type":["null","number"]},"gallonsPerHour":{"type":["null","number"]},"gallonsPerDay":{"type":["null","number"]},"secondsPerGallon":{"type":["null","number"]},"pressurePsi":{},"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":"5 gal in 30 s is 10 gpm (37.9 L/min).","reasons":["6 to 12 gpm is typical for a household supply."],"flowGpm":10,"flowLitersPerMinute":37.85,"flowCubicFeetPerMinute":1.3368,"gallonsPerHour":600,"gallonsPerDay":14400,"secondsPerGallon":6,"pressurePsi":null,"degraded":false,"notChecked":["flow under real use, where several taps share the supply and pressure drops","a well's recovery rate over hours (a short test does not show it)","…1 more"],"source":"computed locally (volume / time)","asOf":"2026-10-12T01:57:24.466Z","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://plumbing-calc.x402tookit.com/bucket-test"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/bucket-test"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/bucket-test"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/bucket-test"}}]}}},"/drain-slope":{"get":{"operationId":"drain_slope","summary":"Fall needed for a drain run at a given slope in inches per foot, or the slope of a measured fall, with typical code minimums.","description":"Fall needed for a drain run at a given slope in inches per foot, or the slope of a measured fall, with typical code minimums.","tags":["plumbing","drain","slope","fall"],"parameters":[{"name":"runFeet","in":"query","required":true,"description":"Horizontal run in feet","schema":{"type":"number"}},{"name":"inchesPerFoot","in":"query","required":false,"description":"Slope in inches of fall per foot (for example 0.25); default 0.25","schema":{"type":"number"}},{"name":"fallInches","in":"query","required":false,"description":"A measured fall in inches, to get the slope instead","schema":{"type":"number"}},{"name":"pipeDiameterInches","in":"query","required":false,"description":"Drain diameter in inches, to compare with the usual minimum slope","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"}},"runFeet":{"type":["null","number"]},"slopeInchesPerFoot":{"type":["null","number"]},"fallInches":{"type":["null","number"]},"fallCm":{"type":["null","number"]},"slopePercent":{"type":["null","number"]},"slopeRatioOneIn":{"type":["null","number"]},"slopeDegrees":{"type":["null","number"]},"typicalMinimumInchesPerFoot":{"type":["null","number"]},"meetsTypicalMinimum":{"type":["boolean","null"]},"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":"MEETS_TYPICAL_MINIMUM","summary":"20 ft at 0.25 in per ft needs 5 in (12.7 cm) of fall; the slope is 2.083%. Typical minimum for a 2 in drain is 0.25 in per ft.","reasons":["Fall = run x slope; 1/4 inch per foot is a 2.083% slope."],"runFeet":20,"slopeInchesPerFoot":0.25,"fallInches":5,"fallCm":12.7,"slopePercent":2.0833,"slopeRatioOneIn":48,"slopeDegrees":1.193,"typicalMinimumInchesPerFoot":0.25,"meetsTypicalMinimum":true,"degraded":false,"notChecked":["your local plumbing code, which sets the required minimum and maximum slope","venting, trap arms and fixture connections","…1 more"],"source":"computed locally (fall = run x slope); typical code minimums 1/4 in per ft up to 2.5 in pipe and 1/8 in per ft for 3 to 6 in","asOf":"2026-10-12T01:57:24.728Z","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://plumbing-calc.x402tookit.com/drain-slope"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/drain-slope"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/drain-slope"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/drain-slope"}}]}}},"/flow-velocity":{"get":{"operationId":"flow_velocity","summary":"Water velocity in feet per second from flow in gpm and pipe size, or the flow a pipe carries at a chosen velocity.","description":"Water velocity in feet per second from flow in gpm and pipe size, or the flow a pipe carries at a chosen velocity.","tags":["plumbing","velocity","gpm","pipe-flow"],"parameters":[{"name":"nominalSize","in":"query","required":false,"description":"Nominal size such as 3/4 (with material), or insideDiameterInches","schema":{"type":"string"}},{"name":"material","in":"query","required":false,"description":"copper-l or pvc-40 (default copper-l)","schema":{"type":"string"}},{"name":"insideDiameterInches","in":"query","required":false,"description":"Inside diameter in inches","schema":{"type":"number"}},{"name":"flowGpm","in":"query","required":false,"description":"Flow in US gallons per minute (use flowGpm or velocityFps)","schema":{"type":"number"}},{"name":"velocityFps","in":"query","required":false,"description":"Velocity in feet per second, to get the flow","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"}},"pipe":{"type":["null","string"]},"insideDiameterInches":{"type":["null","number"]},"flowGpm":{"type":["null","number"]},"flowLitersPerMinute":{"type":["null","number"]},"velocityFeetPerSecond":{"type":["null","number"]},"velocityMetersPerSecond":{"type":["null","number"]},"flowAreaSquareFeet":{"type":["null","number"]},"flowCubicFeetPerSecond":{"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":"WITHIN_RANGE","summary":"3/4 in pvc-40: 5 gpm moves at 3.01 ft/s (0.92 m/s).","reasons":["Within the common 2 to 5 ft/s design range.","Velocity = flow / cross-section area."],"pipe":"3/4 in pvc-40","insideDiameterInches":0.824,"flowGpm":5,"flowLitersPerMinute":18.93,"velocityFeetPerSecond":3.008,"velocityMetersPerSecond":0.917,"flowAreaSquareFeet":0.003703,"flowCubicFeetPerSecond":0.01114,"degraded":false,"notChecked":["pressure drop (see /pressure-loss)","noise and erosion limits of your material and fittings","…1 more"],"source":"computed locally (v = Q / A)","asOf":"2026-10-12T01:57:24.990Z","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://plumbing-calc.x402tookit.com/flow-velocity"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/flow-velocity"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/flow-velocity"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/flow-velocity"}}]}}},"/pipe-size":{"get":{"operationId":"pipe_size","summary":"Smallest standard copper Type L or PVC Schedule 40 pipe that keeps water under a maximum velocity at your flow rate.","description":"Smallest standard copper Type L or PVC Schedule 40 pipe that keeps water under a maximum velocity at your flow rate.","tags":["plumbing","pipe-sizing","velocity","gpm"],"parameters":[{"name":"flowGpm","in":"query","required":true,"description":"Flow in US gallons per minute","schema":{"type":"number"}},{"name":"material","in":"query","required":false,"description":"copper-l or pvc-40 (default copper-l)","schema":{"type":"string"}},{"name":"maxVelocityFps","in":"query","required":false,"description":"Maximum velocity in feet per second (default 5; 8 is a common upper limit)","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"}},"flowGpm":{"type":["null","number"]},"material":{"type":["null","string"]},"maxVelocityFps":{"type":["null","number"]},"recommendedNominalSize":{"type":["null","string"]},"recommendedVelocityFps":{"type":["null","number"]},"allSizes":{"type":["array","null"],"items":{"type":"object","properties":{"nominal":{"type":["null","string"]},"insideDiameterInches":{"type":["null","number"]},"velocityFps":{"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":"SIZE_FOUND","summary":"1 in copper-l (3.888 ft/s) is the smallest that stays under 5 ft/s at 10 gpm.","reasons":["Sizes are tried from smallest to largest using their real inside diameters."],"flowGpm":10,"material":"copper-l","maxVelocityFps":5,"recommendedNominalSize":"1","recommendedVelocityFps":3.888,"allSizes":[{"nominal":"1/2","insideDiameterInches":0.545,"velocityFps":13.753},{"nominal":"3/4","insideDiameterInches":0.785,"velocityFps":6.629}],"degraded":false,"notChecked":["pressure drop over the run (a bigger pipe may still be needed; see /pressure-loss)","fixture-unit demand and local code minimums","…1 more"],"source":"computed locally (v = Q / A against published inside diameters)","asOf":"2026-10-12T01:57:25.253Z","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://plumbing-calc.x402tookit.com/pipe-size"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pipe-size"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pipe-size"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pipe-size"}}]}}},"/pipe-volume":{"get":{"operationId":"pipe_volume","summary":"Water held in a run of pipe in gallons and litres per foot and in total, from nominal size or inside diameter.","description":"Water held in a run of pipe in gallons and litres per foot and in total, from nominal size or inside diameter.","tags":["plumbing","pipe","volume","gallons"],"parameters":[{"name":"nominalSize","in":"query","required":false,"description":"Nominal size such as 3/4 or 1-1/4 (with material), or send insideDiameterInches instead","schema":{"type":"string"}},{"name":"material","in":"query","required":false,"description":"copper-l or pvc-40 (default copper-l)","schema":{"type":"string"}},{"name":"insideDiameterInches","in":"query","required":false,"description":"Inside diameter in inches, instead of a nominal size","schema":{"type":"number"}},{"name":"lengthFeet","in":"query","required":true,"description":"Length of the pipe run in feet","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"}},"pipe":{"type":["null","string"]},"insideDiameterInches":{"type":["null","number"]},"flowAreaSquareInches":{"type":["null","number"]},"gallonsPerFoot":{"type":["null","number"]},"litersPerFoot":{"type":["null","number"]},"lengthFeet":{"type":["null","number"]},"totalGallons":{"type":["null","number"]},"totalLiters":{"type":["null","number"]},"totalCubicInches":{"type":["null","number"]},"seconds_to_purge_at_1_gpm":{"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/4 in copper-l (ID 0.785 in) holds 0.0251 gal per foot: 2.51 gal (9.5 L) in 100 ft.","reasons":["Volume = cross-section area x length; 231 cubic inches make a US gallon."],"pipe":"3/4 in copper-l","insideDiameterInches":0.785,"flowAreaSquareInches":0.48398,"gallonsPerFoot":0.02514,"litersPerFoot":0.0952,"lengthFeet":100,"totalGallons":2.514,"totalLiters":9.52,"totalCubicInches":580.8,"seconds_to_purge_at_1_gpm":151,"degraded":false,"notChecked":["fittings, valves and fixtures, which hold extra water","pipe expansion under pressure","…1 more"],"source":"computed locally (pi/4 x ID^2 x length; 231 cubic inches per US gallon)","asOf":"2026-10-12T01:57:25.515Z","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://plumbing-calc.x402tookit.com/pipe-volume"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pipe-volume"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pipe-volume"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pipe-volume"}}]}}},"/pressure-loss":{"get":{"operationId":"pressure_loss","summary":"Friction pressure loss in psi (and feet of head) over a pipe run by the Hazen-Williams formula, from flow, size and C factor.","description":"Friction pressure loss in psi (and feet of head) over a pipe run by the Hazen-Williams formula, from flow, size and C factor.","tags":["plumbing","pressure-drop","hazen-williams","head-loss"],"parameters":[{"name":"nominalSize","in":"query","required":false,"description":"Nominal size such as 3/4 (with material), or insideDiameterInches","schema":{"type":"string"}},{"name":"material","in":"query","required":false,"description":"copper-l or pvc-40 (default copper-l)","schema":{"type":"string"}},{"name":"insideDiameterInches","in":"query","required":false,"description":"Inside diameter in inches","schema":{"type":"number"}},{"name":"flowGpm","in":"query","required":true,"description":"Flow in US gallons per minute","schema":{"type":"number"}},{"name":"lengthFeet","in":"query","required":true,"description":"Pipe length in feet (add equivalent length of fittings if you know it)","schema":{"type":"number"}},{"name":"cFactor","in":"query","required":false,"description":"Hazen-Williams C: 140 copper, 150 PVC (defaults), 100 old steel","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"}},"pipe":{"type":["null","string"]},"insideDiameterInches":{"type":["null","number"]},"flowGpm":{"type":["null","number"]},"cFactor":{"type":["null","number"]},"psiPerFoot":{"type":["null","number"]},"psiPer100Feet":{"type":["null","number"]},"lengthFeet":{"type":["null","number"]},"totalPsiLoss":{"type":["null","number"]},"feetOfHeadLoss":{"type":["null","number"]},"kilopascalsLoss":{"type":["null","number"]},"lossIfFlowDoubled":{"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/4 in copper-l at 10 gpm over 100 ft loses 11.07 psi (11.07 psi per 100 ft).","reasons":["Hazen-Williams suits water at ordinary temperatures in pipes above 2 inches; it is a conventional estimate for smaller pipes.","Doubling the flow multiplies the loss by about 3.6."],"pipe":"3/4 in copper-l","insideDiameterInches":0.785,"flowGpm":10,"cFactor":140,"psiPerFoot":0.11067,"psiPer100Feet":11.067,"lengthFeet":100,"totalPsiLoss":11.067,"feetOfHeadLoss":25.56,"kilopascalsLoss":76.3,"lossIfFlowDoubled":39.951,"degraded":false,"notChecked":["fittings, valves, meters and elevation change (add 1 psi per 2.31 ft of rise)","water temperature and very high or low velocities where the formula is less accurate","…1 more"],"source":"computed locally (Hazen-Williams: psi/ft = 4.52 Q^1.852 / (C^1.852 d^4.8655))","asOf":"2026-10-12T01:57:25.778Z","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://plumbing-calc.x402tookit.com/pressure-loss"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pressure-loss"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pressure-loss"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/pressure-loss"}}]}}},"/tank-fill-time":{"get":{"operationId":"tank_fill_time","summary":"Time to fill or drain a tank from its volume or round tank size and flow in gpm, with an optional outflow.","description":"Time to fill or drain a tank from its volume or round tank size and flow in gpm, with an optional outflow.","tags":["plumbing","tank","fill-time","flow"],"parameters":[{"name":"volumeGallons","in":"query","required":false,"description":"Volume to move in US gallons (use this, volumeLiters, or a round tank)","schema":{"type":"number"}},{"name":"volumeLiters","in":"query","required":false,"description":"Volume in litres","schema":{"type":"number"}},{"name":"tankDiameterInches","in":"query","required":false,"description":"Round tank diameter in inches (with waterDepthInches)","schema":{"type":"number"}},{"name":"waterDepthInches","in":"query","required":false,"description":"Water depth to fill, in inches","schema":{"type":"number"}},{"name":"inflowGpm","in":"query","required":true,"description":"Flow in US gallons per minute (litres: divide by 3.785)","schema":{"type":"number"}},{"name":"outflowGpm","in":"query","required":false,"description":"Outflow while filling, in gpm (default 0); the net rate is inflow minus outflow","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"}},"volumeGallons":{"type":["null","number"]},"volumeLiters":{"type":["null","number"]},"netFlowGpm":{"type":["null","number"]},"minutes":{"type":["null","number"]},"hours":{"type":["null","number"]},"clock":{"type":["null","string"]},"litersPerMinuteNet":{"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":"50 gal at 5 gpm takes 10 minutes (0 h 10 min 0 s).","reasons":["Time = volume / flow."],"volumeGallons":50,"volumeLiters":189.27,"netFlowGpm":5,"minutes":10,"hours":0.1667,"clock":"0 h 10 min 0 s","litersPerMinuteNet":18.93,"degraded":false,"notChecked":["flow that changes as the tank fills (pressure falls, pumps slow)","overflow, float switches and shut-off timing","…1 more"],"source":"computed locally (time = volume / net flow; cylinder volume = pi/4 d^2 h / 231)","asOf":"2026-10-12T01:57:26.041Z","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://plumbing-calc.x402tookit.com/tank-fill-time"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/tank-fill-time"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/tank-fill-time"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/tank-fill-time"}}]}}},"/thermal-expansion":{"get":{"operationId":"thermal_expansion","summary":"How much a pipe run lengthens or shortens with temperature for copper, steel, PVC, CPVC, PEX or ABS, in inches and mm.","description":"How much a pipe run lengthens or shortens with temperature for copper, steel, PVC, CPVC, PEX or ABS, in inches and mm.","tags":["plumbing","expansion","thermal","pipe"],"parameters":[{"name":"material","in":"query","required":true,"description":"copper, steel, pvc, cpvc, pex, abs or custom","schema":{"type":"string"}},{"name":"lengthFeet","in":"query","required":true,"description":"Pipe run length in feet","schema":{"type":"number"}},{"name":"fromF","in":"query","required":true,"description":"Starting temperature in degrees F","schema":{"type":"number"}},{"name":"toF","in":"query","required":true,"description":"Final temperature in degrees F","schema":{"type":"number"}},{"name":"coefficientPerF","in":"query","required":false,"description":"Linear expansion coefficient per degree F, for material custom","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"}},"material":{"type":["null","string"]},"coefficientPerF":{"type":["null","number"]},"lengthFeet":{"type":["null","number"]},"temperatureChangeF":{"type":["null","number"]},"changeInches":{"type":["null","number"]},"changeMm":{"type":["null","number"]},"finalLengthFeet":{"type":["null","number"]},"inchesPer100FeetPer10F":{"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":"100 ft of copper grows 0.79 in (20.1 mm) between 50 and 120 F.","reasons":["Small movement, but still allow hangers that let the pipe slide."],"material":"copper","coefficientPerF":0.0000094,"lengthFeet":100,"temperatureChangeF":70,"changeInches":0.7896,"changeMm":20.06,"finalLengthFeet":100.0658,"inchesPer100FeetPer10F":0.113,"degraded":false,"notChecked":["the exact coefficient of your product (plastics vary by formulation: check the maker's figure)","restraint by hangers and walls, which turns expansion into stress or bowing","…1 more"],"source":"computed locally (change in length = alpha x length x change in temperature; typical published coefficients)","asOf":"2026-10-12T01:57:26.304Z","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://plumbing-calc.x402tookit.com/thermal-expansion"}},{"x402":{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/thermal-expansion"}},{"x402":{"network":"eip155:137","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/thermal-expansion"}},{"x402":{"network":"eip155:42161","scheme":"exact","currency":"USDC","endpoint":"https://plumbing-calc.x402tookit.com/thermal-expansion"}}]}}}}}