{"openapi":"3.1.0","info":{"title":"Bernoulli Flow API","version":"1.0.0","description":"Bernoulli and incompressible-flow maths as an API, computed locally and deterministically. The bernoulli endpoint applies Bernoulli's principle, P + ½ρv² + ρgh = constant along a streamline, taking the pressure, velocity and height at one point and solving the unknown pressure or velocity at a second point, and reporting the total head pressure. The dynamic-pressure endpoint computes the dynamic pressure q = ½ρv² from a velocity, or — the pitot-tube relation — the airspeed v = √(2q/ρ) from a measured dynamic pressure, plus the stagnation (total) pressure when a static pressure is supplied. The venturi endpoint computes the flow rate and inlet and throat velocities of a venturi or contraction from the inlet and throat areas and the pressure drop, Q = Cd·A₂·√(2ΔP/(ρ(1−(A₂/A₁)²))), combining continuity with Bernoulli, with an optional discharge coefficient. Density is taken from a value or a named fluid (air, water, seawater, oil). Everything is computed locally and deterministically, so it is instant and private. Ideal for aerospace, HVAC, plumbing, process and hydraulics app developers, airspeed and flow-meter tools, and fluid-mechanics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is Bernoulli/streamline flow; for pipe friction head loss use a Darcy API and for orifice metering an orifice API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/bernoulli-api","description":"oanor gateway"}],"tags":[{"name":"Bernoulli"},{"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/bernoulli":{"get":{"operationId":"get_v1_bernoulli","tags":["Bernoulli"],"summary":"Bernoulli streamline","description":"","parameters":[{"name":"p1","in":"query","required":true,"description":"Pressure at point 1 (Pa)","schema":{"type":"string"},"example":"101325"},{"name":"v1","in":"query","required":true,"description":"Velocity at point 1 (m/s)","schema":{"type":"string"},"example":"10"},{"name":"h1","in":"query","required":false,"description":"Height at point 1 (m)","schema":{"type":"string"},"example":"0"},{"name":"v2","in":"query","required":false,"description":"Velocity at point 2 (to solve p2)","schema":{"type":"string"},"example":"20"},{"name":"p2","in":"query","required":false,"description":"Or pressure at point 2 (to solve v2)","schema":{"type":"string"}},{"name":"h2","in":"query","required":false,"description":"Height at point 2 (m)","schema":{"type":"string"},"example":"0"},{"name":"fluid","in":"query","required":false,"description":"Fluid (air, water, seawater, oil)","schema":{"type":"string"},"example":"air"},{"name":"density","in":"query","required":false,"description":"Or density (kg/m³)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"h2_m":0,"note":"Bernoulli (incompressible, frictionless): P + ½ρv² + ρgh is constant along a streamline.","p2_pa":101141.25,"v2_ms":20,"inputs":{"point1":{"h1":0,"p1":101325,"v1":10},"density_kg_m3":1.225,"density_source":"air"},"solved_for":"p2","total_pressure_pa":101386.25},"meta":{"timestamp":"2026-06-04T18:38:06.183Z","request_id":"7a4748f0-d09c-4b05-9e1e-ae560a0f8894"},"status":"ok","message":"Bernoulli","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/dynamic-pressure":{"get":{"operationId":"get_v1_dynamic_pressure","tags":["Bernoulli"],"summary":"Dynamic & pitot","description":"","parameters":[{"name":"velocity","in":"query","required":false,"description":"Velocity (m/s)","schema":{"type":"string"},"example":"50"},{"name":"dynamic_pressure","in":"query","required":false,"description":"Or dynamic pressure (Pa) for airspeed","schema":{"type":"string"}},{"name":"static_pressure","in":"query","required":false,"description":"Static pressure (Pa) for stagnation","schema":{"type":"string"}},{"name":"fluid","in":"query","required":false,"description":"Fluid (air, water, ...)","schema":{"type":"string"},"example":"air"},{"name":"density","in":"query","required":false,"description":"Or density (kg/m³)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Dynamic pressure q = ½ρv²; airspeed v = √(2q/ρ). Stagnation (total) pressure = static + dynamic.","inputs":{"density_kg_m3":1.225,"density_source":"air"},"velocity_ms":50,"velocity_kmh":180,"dynamic_pressure_pa":1531.25},"meta":{"timestamp":"2026-06-04T18:38:06.310Z","request_id":"129bf1b7-21ae-4b04-aa06-1d08b829311c"},"status":"ok","message":"Dynamic pressure","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/venturi":{"get":{"operationId":"get_v1_venturi","tags":["Bernoulli"],"summary":"Venturi flow","description":"","parameters":[{"name":"area1","in":"query","required":true,"description":"Inlet area (m²)","schema":{"type":"string"},"example":"0.01"},{"name":"area2","in":"query","required":true,"description":"Throat area (m²)","schema":{"type":"string"},"example":"0.005"},{"name":"pressure_drop","in":"query","required":true,"description":"Pressure drop (Pa)","schema":{"type":"string"},"example":"1000"},{"name":"discharge_coefficient","in":"query","required":false,"description":"Discharge coefficient Cd","schema":{"type":"string"},"example":"0.98"},{"name":"fluid","in":"query","required":false,"description":"Fluid (water, air, ...)","schema":{"type":"string"},"example":"water"},{"name":"density","in":"query","required":false,"description":"Or density (kg/m³)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Venturi: Q = Cd·A₂·√(2ΔP/(ρ(1−(A₂/A₁)²))) from continuity and Bernoulli. Cd defaults to 1 (ideal).","inputs":{"area1_m2":0.01,"area2_m2":0.005,"density_kg_m3":1000,"density_source":"water","pressure_drop_pa":1000,"discharge_coefficient":0.98},"area_ratio":0.5,"mass_flow_kgs":8.001666,"inlet_velocity_ms":0.800167,"throat_velocity_ms":1.632993,"volumetric_flow_lpm":480.09999,"volumetric_flow_m3s":0.008001666},"meta":{"timestamp":"2026-06-04T18:38:06.406Z","request_id":"3f806ff3-3df7-496c-9746-442ce4d74112"},"status":"ok","message":"Venturi flow","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":{"notes":"SI units: pressure Pa, velocity m/s, height m, area m². Density via 'density' (kg/m³) or 'fluid' (air, water, seawater, oil); defaults to water. Incompressible, frictionless.","service":"bernoulli-api","formulae":{"pitot":"v = √(2q/ρ)","venturi":"Q = Cd·A₂·√(2ΔP/(ρ(1−(A₂/A₁)²)))","bernoulli":"P + ½ρv² + ρgh = constant","dynamic_pressure":"q = ½ρv²"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/venturi":"Venturi/contraction flow rate and velocities from areas and a pressure drop.","GET /v1/bernoulli":"Solve the unknown pressure or velocity at a second point on a streamline.","GET /v1/dynamic-pressure":"Dynamic pressure from velocity, or pitot airspeed from dynamic pressure."},"description":"Bernoulli and incompressible-flow calculator: solve pressure/velocity/height along a streamline, dynamic and stagnation pressure (pitot airspeed), and venturi flow rate from a pressure drop."},"meta":{"timestamp":"2026-06-04T18:38:06.498Z","request_id":"c3063ffc-da68-470c-8741-f7a3cff12c1f"},"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":2500,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":900,"monthly_call_quota":40000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":250000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7400,"monthly_call_quota":1500000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/bernoulli-api"}