{"openapi":"3.1.0","info":{"title":"Seawater API","version":"1.0.0","description":"Seawater oceanography maths as an API, computed locally and deterministically from the standard equations — the density, freezing-point and chlorinity numbers an oceanographer, marine scientist or aquarist works with. The density endpoint gives the seawater density and σt from salinity and temperature using the full UNESCO EOS-80 one-atmosphere equation of state — it reproduces the official check value of 1027.675 kg/m³ at 35 PSU and 5 °C exactly — around 1,025 kg/m³, rising with salinity and falling with temperature, the two drivers of the ocean's density-driven circulation where cold salty water sinks. The freezing-point endpoint gives the freezing point from salinity (Millero): about −1.9 °C at the ocean's typical 35 ppt, and because salt also pushes the temperature of maximum density below freezing, seawater keeps overturning and cooling all the way down instead of stratifying like a freshwater lake — why the open ocean rarely freezes outside the polar seas. The chlorinity endpoint converts between salinity and chlorinity through the Knudsen relation S = 1.80655 × Cl, the classic titration measure that the constant major-ion proportions of seawater make reliable. Everything is computed locally and deterministically, so it is instant and private. Ideal for oceanography and marine-science tools, ocean-model and sensor pipelines, aquarium and aquaculture apps, and environmental dashboards. Pure local computation — no key, no third-party service, instant. Surface (atmospheric-pressure) forms. 3 compute endpoints. For the speed of sound in seawater use a sonar API; for general colligative properties a colligative-properties API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/seawater-api","description":"oanor gateway"}],"tags":[{"name":"Seawater"},{"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/chlorinity":{"get":{"operationId":"get_v1_chlorinity","tags":["Seawater"],"summary":"Salinity ↔ chlorinity","description":"","parameters":[{"name":"salinity_ppt","in":"query","required":false,"description":"Salinity (ppt) — give this OR chlorinity","schema":{"type":"string"},"example":"35"},{"name":"chlorinity_ppt","in":"query","required":false,"description":"Chlorinity (ppt) — give this OR salinity","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Chlorinity is the classic measure of the halide (mostly chloride) content of seawater, tied to salinity by the Knudsen relation S = 1.80655 × Cl. Before conductivity meters, salinity was found by titrating chlorinity — and because the major-ion ratios of seawater are nearly constant the world over (the principle of constant proportions), one number fixes the other.","inputs":{"salinity_ppt":35},"salinity_ppt":35,"chlorinity_ppt":19.3739},"meta":{"timestamp":"2026-06-07T08:18:07.650Z","request_id":"6878494a-11f3-456e-97e5-9ca18b93a8ce"},"status":"ok","message":"Chlorinity","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/density":{"get":{"operationId":"get_v1_density","tags":["Seawater"],"summary":"Seawater density and σt","description":"","parameters":[{"name":"salinity_ppt","in":"query","required":true,"description":"Salinity (ppt/PSU)","schema":{"type":"string"},"example":"35"},{"name":"temp_c","in":"query","required":true,"description":"Temperature (°C)","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Seawater density from the UNESCO EOS-80 equation of state (at the surface). Around 1,025 kg/m³, it rises with salinity and falls with temperature — the two drivers of the ocean's density-driven circulation, where cold salty water sinks. Oceanographers quote σt = density − 1000. The salt adds roughly 0.8 kg/m³ per ppt; this surface form ignores the further increase with pressure at depth.","inputs":{"temp_c":25,"salinity_ppt":35},"sigma_t":23.343,"density_kg_m3":1023.343,"specific_gravity":1.0235,"pure_water_density_kg_m3":997.048},"meta":{"timestamp":"2026-06-07T08:18:07.753Z","request_id":"e1ab4ecd-7390-4932-9d29-a4d16b91791c"},"status":"ok","message":"Seawater density","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/freezing-point":{"get":{"operationId":"get_v1_freezing_point","tags":["Seawater"],"summary":"Freezing point from salinity","description":"","parameters":[{"name":"salinity_ppt","in":"query","required":true,"description":"Salinity (ppt/PSU)","schema":{"type":"string"},"example":"35"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The freezing point of seawater (Millero) drops with salinity — about −1.9 °C at the ocean's typical 35 ppt, versus 0 °C for fresh water. Because salt also lowers the temperature of maximum density below the freezing point, seawater keeps overturning and cooling all the way to freezing instead of stratifying like a freshwater lake — which is why the open ocean rarely freezes except in the polar seas, and the ice that forms is nearly salt-free.","inputs":{"salinity_ppt":35},"freezing_point_c":-1.9223},"meta":{"timestamp":"2026-06-07T08:18:07.843Z","request_id":"86601428-d9c5-4131-827b-c158431da979"},"status":"ok","message":"Freezing point","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":"ppt/PSU, °C, kg/m³. Density = UNESCO EOS-80 (surface, atmospheric); freezing point = Millero; S = 1.80655·Cl. For the speed of sound in seawater use a sonar API; for general colligative properties a colligative-properties API.","service":"seawater-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/density":"Seawater density and σt from salinity and temperature.","GET /v1/chlorinity":"Salinity ↔ chlorinity (S = 1.80655 × Cl).","GET /v1/freezing-point":"Freezing point of seawater from salinity."},"description":"Seawater oceanography maths: density (UNESCO EOS-80), freezing point (Millero), and salinity ↔ chlorinity."},"meta":{"timestamp":"2026-06-07T08:18:07.941Z","request_id":"bb96dcec-c928-4b11-a306-70998429a6f2"},"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":5300,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1230,"monthly_call_quota":55000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":3880,"monthly_call_quota":232000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":11950,"monthly_call_quota":1160000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/seawater-api"}