{"openapi":"3.1.0","info":{"title":"Particle Settling API","version":"1.0.0","description":"Particle settling-velocity maths as an API, computed locally and deterministically. The stokes endpoint computes the terminal settling velocity of a small spherical particle by Stokes' law, vt = (ρp − ρf)·g·d²/(18·μ), from the particle diameter and density, the fluid density and the dynamic viscosity, and checks the particle Reynolds number to tell you whether the creeping-flow assumption (Re < 1) still holds — a negative velocity means a buoyant particle that rises. The terminal endpoint computes the drag-based terminal velocity for larger, faster particles, vt = √(4·g·d·(ρp − ρf)/(3·Cd·ρf)), from a drag coefficient (≈0.44 in the turbulent Newton regime). The time endpoint computes the time for a particle to settle through a given depth, t = height/vt, taking the velocity directly or deriving it from the particle properties via Stokes. Everything is computed locally and deterministically, so it is instant and private. Ideal for water- and wastewater-treatment, mineral-processing and environmental-engineering tools, clarifier and settling-tank design, sediment and aerosol analysis, and engineering education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is particle sedimentation; for pipe-flow Reynolds/Froude/Mach numbers use a Reynolds API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/settling-api","description":"oanor gateway"}],"tags":[{"name":"Settling"},{"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/stokes":{"get":{"operationId":"get_v1_stokes","tags":["Settling"],"summary":"Stokes settling velocity","description":"","parameters":[{"name":"particle_diameter","in":"query","required":true,"description":"Particle diameter d (m)","schema":{"type":"string"},"example":"0.0001"},{"name":"particle_density","in":"query","required":true,"description":"Particle density ρp (kg/m³)","schema":{"type":"string"},"example":"2650"},{"name":"fluid_density","in":"query","required":false,"description":"Fluid density ρf (kg/m³, default 1000)","schema":{"type":"string"},"example":"1000"},{"name":"dynamic_viscosity","in":"query","required":false,"description":"Dynamic viscosity μ (Pa·s, default 0.001)","schema":{"type":"string"},"example":"0.001"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"vt = (ρp − ρf)·g·d²/(18·μ). Valid for creeping flow Re < 1; above that use the drag-based terminal velocity. A negative vt means the particle rises.","inputs":{"fluid_density":1000,"particle_density":2650,"dynamic_viscosity":0.001,"particle_diameter":0.0001},"stokes_valid":true,"terminal_velocity_m_s":0.0089925,"terminal_velocity_mm_s":8.9925,"particle_reynolds_number":0.89925},"meta":{"timestamp":"2026-06-04T18:38:23.349Z","request_id":"6b222f3b-9798-4c25-981f-13be383be2f3"},"status":"ok","message":"Stokes settling 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/terminal":{"get":{"operationId":"get_v1_terminal","tags":["Settling"],"summary":"Drag-based terminal velocity","description":"","parameters":[{"name":"particle_diameter","in":"query","required":true,"description":"Particle diameter d (m)","schema":{"type":"string"},"example":"0.002"},{"name":"particle_density","in":"query","required":true,"description":"Particle density ρp (kg/m³)","schema":{"type":"string"},"example":"2650"},{"name":"fluid_density","in":"query","required":false,"description":"Fluid density ρf (kg/m³, default 1000)","schema":{"type":"string"},"example":"1000"},{"name":"drag_coefficient","in":"query","required":false,"description":"Drag coefficient Cd (default 0.44)","schema":{"type":"string"},"example":"0.44"},{"name":"dynamic_viscosity","in":"query","required":false,"description":"Viscosity μ (Pa·s) for the Reynolds number","schema":{"type":"string"},"example":"0.001"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"vt = √(4·g·d·(ρp − ρf)/(3·Cd·ρf)). Cd ≈ 0.44 in the Newton (turbulent) regime; supply μ for the Reynolds number.","inputs":{"fluid_density":1000,"drag_coefficient":0.44,"particle_density":2650,"particle_diameter":0.002},"terminal_velocity_m_s":0.313209195,"terminal_velocity_mm_s":313.209195,"particle_reynolds_number":626.418391},"meta":{"timestamp":"2026-06-04T18:38:23.445Z","request_id":"dd1ffd88-6799-4e77-af5e-5b9159957a29"},"status":"ok","message":"Terminal 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/time":{"get":{"operationId":"get_v1_time","tags":["Settling"],"summary":"Settling time","description":"","parameters":[{"name":"height","in":"query","required":true,"description":"Settling depth (m)","schema":{"type":"string"},"example":"2"},{"name":"settling_velocity","in":"query","required":false,"description":"Settling velocity (m/s)","schema":{"type":"string"}},{"name":"particle_diameter","in":"query","required":false,"description":"Or particle diameter d (m) for Stokes","schema":{"type":"string"},"example":"0.0001"},{"name":"particle_density","in":"query","required":false,"description":"and particle density ρp (kg/m³)","schema":{"type":"string"},"example":"2650"},{"name":"fluid_density","in":"query","required":false,"description":"Fluid density (kg/m³, default 1000)","schema":{"type":"string"},"example":"1000"},{"name":"dynamic_viscosity","in":"query","required":false,"description":"Viscosity (Pa·s, default 0.001)","schema":{"type":"string"},"example":"0.001"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"t = height/vt. With particle properties the velocity is taken from Stokes' law first.","inputs":{"height":2,"settling_velocity":0.0089925,"velocity_from_stokes":true},"settling_time_h":0.06178,"settling_time_s":222.4076,"settling_time_min":3.70679},"meta":{"timestamp":"2026-06-04T18:38:23.540Z","request_id":"a8c17129-56f1-485c-bb83-acb4c1f9f271"},"status":"ok","message":"Settling 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/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Diameter in m, density in kg/m³, viscosity in Pa·s. Water defaults: ρf = 1000, μ = 0.001. Stokes assumes spherical particles in creeping flow (Re < 1).","service":"settling-api","formulae":{"time":"t = height/vt","stokes":"vt = (ρp − ρf)·g·d²/(18·μ)","terminal":"vt = √(4·g·d·(ρp − ρf)/(3·Cd·ρf))"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/time":"Settling time over a depth, from a velocity or from particle properties.","GET /v1/stokes":"Stokes' law terminal velocity vt = (ρp−ρf)·g·d²/(18·μ), with a Reynolds validity check.","GET /v1/terminal":"Drag-based terminal velocity vt = √(4·g·d·(ρp−ρf)/(3·Cd·ρf)) for higher Reynolds numbers."},"description":"Particle settling-velocity calculator: Stokes' law terminal velocity, drag-based terminal velocity and settling time for sedimentation and separation."},"meta":{"timestamp":"2026-06-04T18:38:23.615Z","request_id":"ca9b013f-fa50-4875-90d1-d03e78d09ab5"},"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":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":1501000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/settling-api"}