{"openapi":"3.1.0","info":{"title":"Boat Anchoring API","version":"1.0.0","description":"Boat-anchoring maths as an API, computed locally and deterministically — the scope, swing and load numbers a sailor or boater sets the hook by. The scope endpoint gives the rode to let out: scope = rode ÷ the vertical from the seabed to the bow roller (water depth + bow height), measured at high tide, so anchoring in 20 feet with a 4-foot bow at the classic 7:1 means paying out 168 feet of rode — let out more in a blow, and never less than 5:1 on all chain. The swing endpoint gives the circle the boat swings on: radius = the horizontal reach of the rode (√(rode² − vertical²)) plus the boat length, so that 168-foot rode on a 30-foot boat sweeps a 196-foot radius — the room you must leave every other boat, which swings too. The load endpoint gives the wind load the ground tackle has to hold, 0.00256 × drag coefficient × frontal windage area × wind speed², which quadruples every time the wind doubles — 50 square feet of windage takes 138 lb at 30 mph but 553 lb at 60. Everything is computed locally and deterministically, so it is instant and private. Ideal for sailing and boating apps, anchoring and cruising tools, ground-tackle sizing calculators, and seamanship study aids. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. Estimates — add current, waves and a safety margin.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/anchor-api","description":"oanor gateway"}],"tags":[{"name":"Anchor"},{"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/load":{"get":{"operationId":"get_v1_load","tags":["Anchor"],"summary":"Wind load on the boat","description":"","parameters":[{"name":"frontal_area_sqft","in":"query","required":true,"description":"Frontal windage area in sq ft","schema":{"type":"string"},"example":"50"},{"name":"wind_speed_mph","in":"query","required":true,"description":"Wind speed in mph","schema":{"type":"string"},"example":"30"},{"name":"drag_coefficient","in":"query","required":false,"description":"Drag coefficient (default 1.2)","schema":{"type":"string"},"example":"1.2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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/scope":{"get":{"operationId":"get_v1_scope","tags":["Anchor"],"summary":"Rode to deploy for a scope ratio","description":"","parameters":[{"name":"depth_ft","in":"query","required":true,"description":"Water depth in feet (at high tide)","schema":{"type":"string"},"example":"20"},{"name":"bow_height_ft","in":"query","required":false,"description":"Bow-roller height above water (default 4)","schema":{"type":"string"},"example":"4"},{"name":"scope_ratio","in":"query","required":false,"description":"Scope ratio (default 7)","schema":{"type":"string"},"example":"7"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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/swing":{"get":{"operationId":"get_v1_swing","tags":["Anchor"],"summary":"Swing circle around the anchor","description":"","parameters":[{"name":"rode_ft","in":"query","required":true,"description":"Rode deployed in feet","schema":{"type":"string"},"example":"168"},{"name":"depth_ft","in":"query","required":true,"description":"Water depth in feet","schema":{"type":"string"},"example":"20"},{"name":"bow_height_ft","in":"query","required":false,"description":"Bow height above water (default 4)","schema":{"type":"string"},"example":"4"},{"name":"boat_length_ft","in":"query","required":true,"description":"Boat length in feet","schema":{"type":"string"},"example":"30"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"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"},"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":520,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":505,"monthly_call_quota":13800,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1650,"monthly_call_quota":86000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4920,"monthly_call_quota":270000,"rps_limit":36,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/anchor-api"}