{"openapi":"3.1.0","info":{"title":"Buoyancy & Flotation API","version":"1.0.0","description":"Archimedes buoyancy and flotation maths as an API, computed locally and deterministically. The buoyancy endpoint computes the buoyant force on a submerged or floating body, Fb = ρ_fluid·g·V_displaced — the upthrust equals the weight of the displaced fluid — from a displaced volume and a fluid (water, seawater, oil, mercury and more, or a custom density), and also gives the mass of displaced fluid; it solves the volume from a known force too. The float endpoint decides whether an object floats, sinks or is neutrally buoyant by comparing its density (given directly, from a built-in material, or as mass divided by volume) with the fluid density, and for a floating object returns the fraction submerged f = ρ_object/ρ_fluid (so 90 % of an iceberg sits below the waterline), or for a sinking object its apparent (underwater) weight. The payload endpoint sizes flotation: the displaced volume needed to float a given load, V = W/(ρ_fluid·g), or the maximum extra payload a floating body of a given volume and density can carry before it submerges, Wmax = (ρ_fluid − ρ_body)·V·g. Everything is computed locally and deterministically, so it is instant and private. Ideal for naval-architecture and marine tools, diving, ROV and ballast apps, raft and pontoon design, and physics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is buoyancy and flotation; for pressure at depth and hydrostatic force on a wall use a hydrostatics API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/buoyancy-api","description":"oanor gateway"}],"tags":[{"name":"Buoyancy"},{"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/buoyancy":{"get":{"operationId":"get_v1_buoyancy","tags":["Buoyancy"],"summary":"Buoyant force","description":"","parameters":[{"name":"fluid","in":"query","required":false,"description":"water|seawater|oil|mercury… (default water)","schema":{"type":"string"},"example":"water"},{"name":"fluid_density","in":"query","required":false,"description":"Or fluid density (kg/m³)","schema":{"type":"string"}},{"name":"displaced_volume","in":"query","required":false,"description":"Displaced volume (m³)","schema":{"type":"string"},"example":"0.01"},{"name":"buoyant_force","in":"query","required":false,"description":"Or buoyant force (N) to solve volume","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":{"fluid":"water","formula":"Fb = ρ_fluid · g · V_displaced.","gravity_ms2":9.80665,"buoyant_force_n":98.0665,"buoyant_force_kgf":10,"displaced_volume_m3":0.01,"fluid_density_kg_m3":1000,"displaced_fluid_mass_kg":10,"displaced_volume_litres":10},"meta":{"timestamp":"2026-06-04T10:18:48.216Z","request_id":"9da0b4e4-3025-4332-b91c-2c4befcb6ac4"},"status":"ok","message":"Buoyant force","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/float":{"get":{"operationId":"get_v1_float","tags":["Buoyancy"],"summary":"Float-or-sink analysis","description":"","parameters":[{"name":"object_density","in":"query","required":false,"description":"Object density (kg/m³)","schema":{"type":"string"},"example":"600"},{"name":"material","in":"query","required":false,"description":"Or a material (ice, oak, aluminium…)","schema":{"type":"string"}},{"name":"mass","in":"query","required":false,"description":"Or mass (kg) with volume","schema":{"type":"string"}},{"name":"volume","in":"query","required":false,"description":"Object volume (m³)","schema":{"type":"string"}},{"name":"fluid","in":"query","required":false,"description":"Fluid (default water)","schema":{"type":"string"},"example":"water"},{"name":"fluid_density","in":"query","required":false,"description":"Or fluid density (kg/m³)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"fluid":"water","state":"floats","formula":"floats when ρ_object < ρ_fluid; fraction submerged = ρ_object/ρ_fluid.","density_ratio":0.6,"percent_submerged":60,"fraction_submerged":0.6,"fluid_density_kg_m3":1000,"object_density_kg_m3":600,"object_density_source":"given","percent_above_surface":40},"meta":{"timestamp":"2026-06-04T10:18:48.325Z","request_id":"f8fe0d9c-accf-486b-a53f-ec1265fc8ace"},"status":"ok","message":"Float-or-sink analysis","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/payload":{"get":{"operationId":"get_v1_payload","tags":["Buoyancy"],"summary":"Flotation load capacity","description":"","parameters":[{"name":"load_weight","in":"query","required":false,"description":"Load to float (N)","schema":{"type":"string"},"example":"1000"},{"name":"load_mass","in":"query","required":false,"description":"Or load mass (kg)","schema":{"type":"string"}},{"name":"volume","in":"query","required":false,"description":"Body volume (m³) for max payload","schema":{"type":"string"}},{"name":"object_density","in":"query","required":false,"description":"Body density with volume","schema":{"type":"string"}},{"name":"material","in":"query","required":false,"description":"Or body material","schema":{"type":"string"}},{"name":"fluid","in":"query","required":false,"description":"Fluid (default water)","schema":{"type":"string"},"example":"water"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"mode":"required_volume","fluid":"water","formula":"V = W / (ρ_fluid·g).","load_mass_kg":101.971621,"load_weight_n":1000,"fluid_density_kg_m3":1000,"required_displaced_volume_m3":0.101971621,"required_displaced_volume_litres":101.971621},"meta":{"timestamp":"2026-06-04T10:18:48.408Z","request_id":"35ed4284-2e52-451d-845d-720d03a75676"},"status":"ok","message":"Flotation load capacity","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":"buoyancy","note":"Archimedes buoyancy / flotation — computed locally and deterministically, no key, no third-party service.","fluids":["water","freshwater","seawater","saltwater","oil","gasoline","petrol","diesel","ethanol","glycerin","mercury","milk","honey","air"],"endpoints":["/v1/buoyancy","/v1/float","/v1/payload","/v1/meta"],"materials":["ice","oak","pine","balsa","cork","bamboo","aluminium","aluminum","steel","iron","copper","lead","gold","concrete","glass","rubber","pvc","polyethylene","polystyrene","styrofoam"]},"meta":{"timestamp":"2026-06-04T10:18:48.508Z","request_id":"0db14c24-43f8-4675-9f8a-ed5e3e6436e5"},"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":750000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/buoyancy-api"}