{"openapi":"3.1.0","info":{"title":"Torricelli Efflux API","version":"1.0.0","description":"Torricelli efflux and orifice-discharge maths as an API, computed locally and deterministically. The velocity endpoint applies Torricelli's law, v = √(2·g·h) — the speed at which fluid jets from an orifice under a head h equals that of a body that has fallen the same height — and returns the ideal and the actual jet velocity (corrected by a coefficient of velocity), and, if you give the orifice diameter or area, the ideal and actual volumetric discharge Q = Cd·A·√(2gh) in litres per second and minute, cubic metres per hour and US gallons per minute. The drain-time endpoint computes how long a vertical cylindrical tank takes to empty through an orifice, t = (2·A_tank)/(Cd·A_orifice·√(2g))·(√h0 − √h1), from the tank and orifice sizes, the starting head and an optional final head, with the initial flow rate. The range endpoint gives the horizontal distance a jet from a side orifice travels before it lands, x = 2·Cv·√(h·y), from the head above the orifice and the orifice's height above the ground, with the jet velocity and time of flight. The discharge and velocity coefficients default to 0.62 and 0.97 and can be overridden, as can gravity. Everything is computed locally and deterministically, so it is instant and private. Ideal for fluid-mechanics and hydraulics tools, tank-drainage, irrigation and process-engineering apps, and physics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is orifice efflux and tank drainage; for pipe continuity Q = A·v use a flow-rate API and for tank volume and fill level use a tank API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/torricelli-api","description":"oanor gateway"}],"tags":[{"name":"Torricelli"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/drain-time":{"get":{"operationId":"get_v1_drain_time","tags":["Torricelli"],"summary":"Tank drain time through an orifice","description":"","parameters":[{"name":"tank_diameter","in":"query","required":true,"description":"Vertical-cylinder tank diameter (m)","schema":{"type":"string"},"example":"1.13"},{"name":"orifice_diameter","in":"query","required":true,"description":"Orifice diameter (m)","schema":{"type":"string"},"example":"0.05"},{"name":"initial_head","in":"query","required":true,"description":"Initial fluid height (m)","schema":{"type":"string"},"example":"2"},{"name":"final_head","in":"query","required":false,"description":"Final height (default 0)","schema":{"type":"string"}},{"name":"discharge_coefficient","in":"query","required":false,"description":"Cd (default 0.62)","schema":{"type":"string"}},{"name":"gravity","in":"query","required":false,"description":"Gravity (default 9.80665)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"formula":"t = (2·A_tank)/(Cd·A_orifice·√(2g)) · (√h0 − √h1).","gravity_ms2":9.80665,"final_head_m":0,"tank_area_m2":1.002874915,"initial_head_m":2,"orifice_area_m2":0.001963495,"drain_time_hours":0.14614782,"drain_time_minutes":8.768869,"drain_time_seconds":526.1322,"discharge_coefficient":0.62,"initial_flow_rate_l_s":7.62451},"meta":{"timestamp":"2026-06-04T10:18:52.932Z","request_id":"61c00971-e320-48eb-a769-b31fdcdc2a83"},"status":"ok","message":"Tank drain time","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/range":{"get":{"operationId":"get_v1_range","tags":["Torricelli"],"summary":"Horizontal range of a side-orifice jet","description":"","parameters":[{"name":"head","in":"query","required":true,"description":"Fluid height above the orifice (m)","schema":{"type":"string"},"example":"2"},{"name":"orifice_height","in":"query","required":true,"description":"Orifice height above the ground (m)","schema":{"type":"string"},"example":"1"},{"name":"velocity_coefficient","in":"query","required":false,"description":"Cv (default 1.0)","schema":{"type":"string"}},{"name":"gravity","in":"query","required":false,"description":"Gravity (default 9.80665)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"head_m":2,"formula":"x = Cv·√(2gh)·√(2y/g) = 2·Cv·√(h·y).","gravity_ms2":9.80665,"jet_velocity_ms":6.263114,"orifice_height_m":1,"time_of_flight_s":0.451601,"horizontal_range_m":2.828427,"velocity_coefficient":1},"meta":{"timestamp":"2026-06-04T10:18:53.053Z","request_id":"3b0d3a0e-277c-4b1b-9864-86c2a5f5008a"},"status":"ok","message":"Horizontal jet range","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/velocity":{"get":{"operationId":"get_v1_velocity","tags":["Torricelli"],"summary":"Torricelli efflux velocity & discharge","description":"","parameters":[{"name":"head","in":"query","required":true,"description":"Fluid height above the orifice (m)","schema":{"type":"string"},"example":"2"},{"name":"orifice_diameter","in":"query","required":false,"description":"Orifice diameter for discharge (m)","schema":{"type":"string"},"example":"0.05"},{"name":"discharge_coefficient","in":"query","required":false,"description":"Cd (default 0.62)","schema":{"type":"string"}},{"name":"velocity_coefficient","in":"query","required":false,"description":"Cv (default 0.97)","schema":{"type":"string"}},{"name":"gravity","in":"query","required":false,"description":"Gravity (default 9.80665)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"head_m":2,"formula":"v = √(2·g·h); actual jet velocity = Cv·v; discharge Q = Cd·A·√(2gh).","ideal_flow":{"flow_rate_gpm":194.920871,"flow_rate_l_s":12.297596,"flow_rate_m3_h":44.271346,"flow_rate_m3_s":0.012297596,"flow_rate_l_min":737.8558},"actual_flow":{"flow_rate_gpm":120.85094,"flow_rate_l_s":7.62451,"flow_rate_m3_h":27.448234,"flow_rate_m3_s":0.00762451,"flow_rate_l_min":457.4706},"gravity_ms2":9.80665,"orifice_area_m2":0.001963495,"ideal_velocity_ms":6.263114,"actual_velocity_ms":6.075221,"velocity_coefficient":0.97,"discharge_coefficient":0.62},"meta":{"timestamp":"2026-06-04T10:18:53.161Z","request_id":"71a4d7fc-70c7-4d53-b860-8579f643f4fc"},"status":"ok","message":"Torricelli efflux velocity","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"api":"torricelli","note":"Torricelli efflux / orifice-discharge maths — computed locally and deterministically, no key, no third-party service.","defaults":{"velocity_coefficient":0.97,"discharge_coefficient":0.62},"endpoints":["/v1/velocity","/v1/drain-time","/v1/range","/v1/meta"],"gravity_default_ms2":9.80665},"meta":{"timestamp":"2026-06-04T10:18:53.244Z","request_id":"0b649a33-4e34-4501-86ac-f4a2f277e0e3"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":900,"monthly_call_quota":25000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":150000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7500,"monthly_call_quota":1029000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/torricelli-api"}