{"openapi":"3.1.0","info":{"title":"Inclined Plane & Friction API","version":"1.0.0","description":"Inclined-plane and friction statics and dynamics as an API, computed locally and deterministically. The incline endpoint analyses a block on a ramp: from a mass, the slope angle and a coefficient of friction it returns the normal force N = m·g·cosθ, the gravity component along the slope m·g·sinθ, the maximum static friction μ·N, whether the block stays put or slides (it slides when tanθ > μ) and, if it slides, the net force and the acceleration a = g·(sinθ − μ·cosθ). The friction endpoint handles a flat surface: the friction force f = μ·N (the normal force given directly or from a mass), the angle of repose atan(μ), and — given an applied force — whether the object moves and its acceleration. The ramp endpoint gives the force needed to move a load up or down a ramp at constant velocity, F = m·g·(sinθ ± μ·cosθ), the frictionless force, the efficiency and whether the ramp is self-locking. Gravity defaults to 9.80665 m/s² and can be overridden. Everything is computed locally and deterministically, so it is instant and private. Ideal for physics and mechanics-education tools, materials-handling, conveyor and ramp design, and engineering-statics apps. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is inclined-plane forces with friction; for the ideal (frictionless) mechanical advantage of simple machines use a lever API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/incline-api","description":"oanor gateway"}],"tags":[{"name":"Mechanics"},{"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/friction":{"get":{"operationId":"get_v1_friction","tags":["Mechanics"],"summary":"Flat-surface friction","description":"","parameters":[{"name":"friction","in":"query","required":true,"description":"Coefficient of friction μ","schema":{"type":"string"},"example":"0.4"},{"name":"mass","in":"query","required":false,"description":"Mass (kg) for the normal force","schema":{"type":"string"},"example":"5"},{"name":"normal_force","in":"query","required":false,"description":"Or normal force (N)","schema":{"type":"string"}},{"name":"applied_force","in":"query","required":false,"description":"Applied horizontal force (N)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"formula":"f = μ·N; angle of repose = atan(μ).","mass_kg":5,"normal_force_n":49.03325,"friction_force_n":19.6133,"angle_of_repose_deg":21.801409,"friction_coefficient":0.4},"meta":{"timestamp":"2026-06-04T10:18:44.011Z","request_id":"d4359e00-cc09-4688-bfbd-50bd4e47960f"},"status":"ok","message":"Flat-surface friction","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/incline":{"get":{"operationId":"get_v1_incline","tags":["Mechanics"],"summary":"Block on an inclined plane","description":"","parameters":[{"name":"mass","in":"query","required":true,"description":"Mass (kg)","schema":{"type":"string"},"example":"10"},{"name":"angle","in":"query","required":true,"description":"Slope angle (degrees)","schema":{"type":"string"},"example":"30"},{"name":"friction","in":"query","required":false,"description":"Coefficient of friction μ (default 0)","schema":{"type":"string"},"example":"0.3"},{"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":{"slides":true,"formula":"N = m·g·cosθ; slope force = m·g·sinθ; slides when m·g·sinθ > μ·N.","mass_kg":10,"weight_n":98.0665,"angle_deg":30,"gravity_ms2":9.80665,"net_force_n":23.554826,"normal_force_n":84.92808,"acceleration_ms2":2.355483,"friction_coefficient":0.3,"gravity_along_slope_n":49.03325,"max_static_friction_n":25.478424},"meta":{"timestamp":"2026-06-04T10:18:44.112Z","request_id":"af88cdd5-cb40-458d-8ee4-0dc716616486"},"status":"ok","message":"Block on an inclined plane","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/ramp":{"get":{"operationId":"get_v1_ramp","tags":["Mechanics"],"summary":"Force to move a load on a ramp","description":"","parameters":[{"name":"mass","in":"query","required":true,"description":"Mass (kg)","schema":{"type":"string"},"example":"10"},{"name":"angle","in":"query","required":true,"description":"Ramp angle (degrees)","schema":{"type":"string"},"example":"30"},{"name":"friction","in":"query","required":false,"description":"Coefficient of friction μ (default 0)","schema":{"type":"string"},"example":"0.3"},{"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":{"note":"A positive force is needed even to ease the load down.","formula":"F_up = m·g·(sinθ + μ·cosθ); F_down = m·g·(sinθ − μ·cosθ).","mass_kg":10,"weight_n":98.0665,"angle_deg":30,"efficiency":0.658061,"self_locking":false,"friction_coefficient":0.3,"frictionless_force_n":49.03325,"force_up_constant_velocity_n":74.511674,"force_down_constant_velocity_n":23.554826},"meta":{"timestamp":"2026-06-04T10:18:44.222Z","request_id":"ed397b1c-6783-437e-854c-51b95484585f"},"status":"ok","message":"Force to move a load up/down a ramp","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":"incline","note":"Inclined-plane & friction statics/dynamics — computed locally and deterministically, no key, no third-party service.","endpoints":["/v1/incline","/v1/friction","/v1/ramp","/v1/meta"],"gravity_default_ms2":9.80665},"meta":{"timestamp":"2026-06-04T10:18:44.342Z","request_id":"84a8a01c-14c9-4755-86fb-d7a4d42e36f2"},"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":30000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":150000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":7500,"monthly_call_quota":750000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/incline-api"}