{"openapi":"3.1.0","info":{"title":"Slackline Tension API","version":"1.0.0","description":"Tensioned-line point-load statics as an API, computed locally and deterministically — the line-tension and anchor-force numbers a slackliner, highliner or rigger works out before they weight a line. This is the V a loaded line makes under a person, not a self-weight catenary: the tension endpoint takes the span, the sag and the body load and returns the line tension and the horizontal anchor pull, because vertical balance is 2·T·sin(angle) = the body weight — so the flatter the line (the smaller the sag) the more the tension blows up, which is exactly why drum-tightening a line to kill the bounce can load the anchors to many times body weight. The sag endpoint inverts it: from a known line tension it returns the sag a mid-span load settles to (sin angle = weight ÷ twice the tension), and flags when the tension is too low to hold the load at all. The off-centre-load endpoint handles standing away from the middle, where the two halves carry different tensions: the horizontal pull is equal on both sides (H = weight × a × b ÷ (sag × span)) but the shorter, steeper segment runs at the higher tension and fails first — the reason a highliner near an anchor stresses that leash harder than one in the centre. Everything is computed locally and deterministically, so it is instant and private. Ideal for slackline and highline rigging tools, climbing and outdoor-gear apps, and tension-and-anchor calculators. Pure local computation — no key, no third-party service, instant. Geometric statics — combine with the real webbing and anchor ratings. 3 compute endpoints. For a self-weight hanging cable use a catenary API; for working-load-limit and safety factor a rigging API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/slackline-api","description":"oanor gateway"}],"tags":[{"name":"Slackline"},{"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/off-center-load":{"get":{"operationId":"get_v1_off_center_load","tags":["Slackline"],"summary":"Asymmetric tensions off-centre","description":"","parameters":[{"name":"line_length_m","in":"query","required":true,"description":"Span between anchors (m)","schema":{"type":"string"},"example":"25"},{"name":"load_position_m","in":"query","required":true,"description":"Distance of load from one anchor (m)","schema":{"type":"string"},"example":"10"},{"name":"sag_m","in":"query","required":true,"description":"Sag at the load point (m)","schema":{"type":"string"},"example":"1.5"},{"name":"load_kg","in":"query","required":true,"description":"Body load (kg)","schema":{"type":"string"},"example":"80"}],"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/sag":{"get":{"operationId":"get_v1_sag","tags":["Slackline"],"summary":"Sag from a known tension","description":"","parameters":[{"name":"line_length_m","in":"query","required":true,"description":"Span between anchors (m)","schema":{"type":"string"},"example":"25"},{"name":"load_kg","in":"query","required":true,"description":"Body load (kg)","schema":{"type":"string"},"example":"80"},{"name":"tension_n","in":"query","required":true,"description":"Line tension (N)","schema":{"type":"string"},"example":"3292"}],"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/tension":{"get":{"operationId":"get_v1_tension","tags":["Slackline"],"summary":"Line tension from sag and load","description":"","parameters":[{"name":"line_length_m","in":"query","required":true,"description":"Span between anchors (m)","schema":{"type":"string"},"example":"25"},{"name":"sag_m","in":"query","required":true,"description":"Sag at mid-span under load (m)","schema":{"type":"string"},"example":"1.5"},{"name":"load_kg","in":"query","required":true,"description":"Body load (kg)","schema":{"type":"string"},"example":"80"}],"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":6000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":790,"monthly_call_quota":58000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2640,"monthly_call_quota":240000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":8400,"monthly_call_quota":1100000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/slackline-api"}