{"openapi":"3.1.0","info":{"title":"Kinematics SUVAT API","version":"1.0.0","description":"Kinematics (SUVAT) maths as an API, computed locally and deterministically. The solve endpoint takes any three of the five constant-acceleration variables — initial velocity u, final velocity v, acceleration a, time t and displacement s — and returns the other two, picking the right equation among v = u + at, s = ut + ½at², s = ½(u+v)t, v² = u² + 2as and s = vt − ½at² automatically. The freefall endpoint computes the fall time, distance and impact velocity for a vertical drop from a height (or over a given time), with an adjustable gravity and optional initial velocity, no air resistance. The stopping endpoint computes reaction, braking and total stopping distance and braking time for a vehicle from its speed and either a deceleration or a road-surface friction coefficient (a = μ·g), with an optional reaction time. Everything is computed locally and deterministically, so it is instant and private. Ideal for physics-education, engineering, simulation, automotive and game-development app developers, motion and braking-distance tools, and STEM teaching. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is linear-motion SUVAT; for projectile launch and trajectory use a projectile API and for momentum and collisions a momentum API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/kinematics-api","description":"oanor gateway"}],"tags":[{"name":"Kinematics"},{"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/freefall":{"get":{"operationId":"get_v1_freefall","tags":["Kinematics"],"summary":"Free fall","description":"","parameters":[{"name":"height","in":"query","required":false,"description":"Drop height (m)","schema":{"type":"string"},"example":"44.1"},{"name":"time","in":"query","required":false,"description":"Or fall time (s)","schema":{"type":"string"}},{"name":"initial_velocity","in":"query","required":false,"description":"Initial downward velocity (m/s)","schema":{"type":"string"},"example":"0"},{"name":"gravity","in":"query","required":false,"description":"Gravity (m/s², default 9.80665)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Free fall, no air resistance: h = u·t + ½g·t², impact velocity = u + g·t. Default g = 9.80665 m/s².","inputs":{"height_m":44.1,"gravity_ms2":9.80665,"initial_velocity_ms":0},"fall_time_s":2.998983,"fall_distance_m":44.1,"impact_velocity_ms":29.409973,"impact_velocity_kmh":105.875904},"meta":{"timestamp":"2026-06-04T18:38:07.560Z","request_id":"6e3252b7-4754-4014-b23a-3912abc8a193"},"status":"ok","message":"Free fall","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/solve":{"get":{"operationId":"get_v1_solve","tags":["Kinematics"],"summary":"SUVAT solver","description":"","parameters":[{"name":"u","in":"query","required":false,"description":"Initial velocity (m/s)","schema":{"type":"string"},"example":"0"},{"name":"v","in":"query","required":false,"description":"Final velocity (m/s)","schema":{"type":"string"},"example":"30"},{"name":"a","in":"query","required":false,"description":"Acceleration (m/s²)","schema":{"type":"string"},"example":"3"},{"name":"t","in":"query","required":false,"description":"Time (s)","schema":{"type":"string"}},{"name":"s","in":"query","required":false,"description":"Displacement (m)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"a":3,"s":150,"t":10,"u":0,"v":30,"note":"SUVAT for constant acceleration. Square-root cases take the positive root; supply a sign in the knowns for the other branch.","inputs":{"given":["u","v","a"]}},"meta":{"timestamp":"2026-06-04T18:38:07.659Z","request_id":"51185aee-298a-4bf3-a12d-01be81bc84b0"},"status":"ok","message":"SUVAT solve","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/stopping":{"get":{"operationId":"get_v1_stopping","tags":["Kinematics"],"summary":"Stopping distance","description":"","parameters":[{"name":"speed","in":"query","required":false,"description":"Speed (m/s)","schema":{"type":"string"},"example":"30"},{"name":"speed_kmh","in":"query","required":false,"description":"Or speed (km/h)","schema":{"type":"string"}},{"name":"deceleration","in":"query","required":false,"description":"Deceleration (m/s²)","schema":{"type":"string"},"example":"6"},{"name":"friction","in":"query","required":false,"description":"Or friction coefficient μ","schema":{"type":"string"}},{"name":"reaction_time","in":"query","required":false,"description":"Reaction time (s)","schema":{"type":"string"},"example":"1"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Braking: distance = v²/(2a), time = v/a. With a friction coefficient, a = μ·g. Reaction distance = v·reaction_time.","inputs":{"speed_ms":30,"reaction_time_s":1,"deceleration_ms2":6},"braking_time_s":5,"braking_distance_m":75,"reaction_distance_m":30,"total_stopping_distance_m":105},"meta":{"timestamp":"2026-06-04T18:38:07.745Z","request_id":"384ca825-aced-49c9-aef4-dc96d57b9d36"},"status":"ok","message":"Stopping distance","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":"SI units: velocity m/s, acceleration m/s², time s, displacement m. Constant acceleration only. Default gravity 9.80665 m/s².","service":"kinematics-api","formulae":{"eq1":"v = u + at","eq2":"s = ut + ½at²","eq3":"s = ½(u+v)t","eq4":"v² = u² + 2as","eq5":"s = vt − ½at²"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/solve":"SUVAT solver — give any three of u, v, a, t, s and get all five.","GET /v1/freefall":"Free-fall time, distance and impact velocity from a height or time.","GET /v1/stopping":"Reaction, braking and total stopping distance and braking time."},"description":"Kinematics (SUVAT) calculator: solve constant-acceleration motion from any three of u, v, a, t, s; vertical free fall from a height; and braking distance/time from a speed and deceleration or friction."},"meta":{"timestamp":"2026-06-04T18:38:07.844Z","request_id":"0cd1dc2e-da39-429b-a4c7-6399cc8b8b46"},"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":3000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":500,"monthly_call_quota":40000,"rps_limit":5,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1500,"monthly_call_quota":250000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4900,"monthly_call_quota":2000000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/kinematics-api"}