{"openapi":"3.1.0","info":{"title":"Vehicle Braking API","version":"1.0.0","description":"Vehicle-braking physics as an API, computed locally and deterministically. The stopping-distance endpoint computes the total distance to stop a vehicle as the sum of the reaction distance the vehicle travels during the driver's reaction time, v·t, and the braking distance v²/(2·μ·g) — which grows with the square of speed, so doubling the speed quadruples the braking distance — from the speed, the tyre-road friction coefficient, the reaction time and the road grade, along with the deceleration and the time to stop. The braking-force endpoint computes the braking force F = m·a and the deceleration of a vehicle, either from a stop-in-a-given-distance (a = v²/2d) or from the friction coefficient (a = μ·g), with the kinetic energy that must be dissipated as heat. The skid-speed endpoint reconstructs the speed at the start of a skid from the skid-mark length, v = √(2·μ·g·d), a lower-bound estimate used in accident reconstruction. Speed is in km/h by default (also m/s or mph), mass in kg and distances in m; dry asphalt has μ ≈ 0.7, wet ≈ 0.4 and ice ≈ 0.1. Everything is computed locally and deterministically, so it is instant and private. Ideal for automotive, driving-safety, fleet, telematics and accident-reconstruction app developers, stopping-distance and forensic tools, and physics education. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is vehicle braking; for general kinematics use a kinematics API and for an object on a slope an inclined-plane API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/brake-api","description":"oanor gateway"}],"tags":[{"name":"Brake"},{"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/braking-force":{"get":{"operationId":"get_v1_braking_force","tags":["Brake"],"summary":"Braking force","description":"","parameters":[{"name":"mass","in":"query","required":true,"description":"Vehicle mass (kg)","schema":{"type":"string"},"example":"1500"},{"name":"speed","in":"query","required":false,"description":"Speed","schema":{"type":"string"},"example":"27.78"},{"name":"unit","in":"query","required":false,"description":"kmh, ms or mph","schema":{"type":"string"},"example":"ms"},{"name":"distance","in":"query","required":false,"description":"Braking distance (m)","schema":{"type":"string"},"example":"56.2"},{"name":"friction_coefficient","in":"query","required":false,"description":"Tyre-road μ","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Braking force F = m·a. The deceleration comes from the stop-in-distance (a = v²/2d) or from the tyre-road friction (a = μ·g). The kinetic energy is dissipated as heat in the brakes.","inputs":{"mass_kg":1500,"speed_ms":27.78,"distance_m":56.2},"deceleration_g":0.7001,"braking_force_n":10298.8665,"deceleration_ms2":6.8659,"kinetic_energy_j":578796.3},"meta":{"timestamp":"2026-06-05T11:30:27.046Z","request_id":"49e02f28-e78b-4d1b-9290-978616535125"},"status":"ok","message":"Braking force","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/skid-speed":{"get":{"operationId":"get_v1_skid_speed","tags":["Brake"],"summary":"Speed from skid","description":"","parameters":[{"name":"skid_length","in":"query","required":true,"description":"Skid-mark length (m)","schema":{"type":"string"},"example":"56.2"},{"name":"friction_coefficient","in":"query","required":false,"description":"Tyre-road μ","schema":{"type":"string"},"example":"0.7"},{"name":"grade","in":"query","required":false,"description":"Road grade (fraction)","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Minimum speed from a skid: v = √(2·μ·g·d). This is the speed at the start of the skid, a lower bound on the actual speed before braking began.","inputs":{"grade":0,"skid_length_m":56.2,"friction_coefficient":0.7},"speed_ms":27.7775,"speed_kmh":99.9989,"speed_mph":62.1364},"meta":{"timestamp":"2026-06-05T11:30:27.151Z","request_id":"3008d484-fffd-47c8-8653-8eef6375746f"},"status":"ok","message":"Speed from skid","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-distance":{"get":{"operationId":"get_v1_stopping_distance","tags":["Brake"],"summary":"Stopping distance","description":"","parameters":[{"name":"speed","in":"query","required":true,"description":"Speed","schema":{"type":"string"},"example":"100"},{"name":"unit","in":"query","required":false,"description":"kmh, ms or mph","schema":{"type":"string"},"example":"kmh"},{"name":"friction_coefficient","in":"query","required":false,"description":"Tyre-road μ","schema":{"type":"string"},"example":"0.7"},{"name":"reaction_time","in":"query","required":false,"description":"Reaction time (s)","schema":{"type":"string"},"example":"1.5"},{"name":"grade","in":"query","required":false,"description":"Road grade (fraction)","schema":{"type":"string"},"example":"0"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Total = reaction distance (v·t) + braking distance (v²/(2·μ·g)). Braking distance grows with the square of speed, so doubling speed quadruples it.","inputs":{"grade":0,"speed_ms":27.7778,"reaction_time":1.5,"friction_coefficient":0.7},"deceleration_g":0.7,"time_to_stop_s":4.0465,"deceleration_ms2":6.8647,"braking_distance_m":56.2013,"reaction_distance_m":41.6667,"total_stopping_distance_m":97.868},"meta":{"timestamp":"2026-06-05T11:30:27.244Z","request_id":"f2e024e3-c415-4fd2-887a-1a76106bc345"},"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":"Speed in km/h by default (unit: kmh, ms or mph), mass in kg, distances in m, friction coefficient ~0.7 dry asphalt / ~0.4 wet / ~0.1 ice. Grade is the fractional road slope (positive uphill).","service":"brake-api","formulae":{"skid_speed":"v = √(2·μ·g·d)","braking_distance":"d = v²/(2·μ·g)","stopping_distance":"reaction (v·t) + braking"},"endpoints":{"GET /v1/meta":"This document.","GET /v1/skid-speed":"Speed at the start of a skid from the skid-mark length (accident reconstruction).","GET /v1/braking-force":"Braking force and deceleration from mass and either stop distance or friction.","GET /v1/stopping-distance":"Reaction, braking and total stopping distance from speed, friction and reaction time."},"description":"Vehicle-braking calculator: total stopping distance (reaction + braking), braking force and deceleration, and the speed implied by a skid-mark length."},"meta":{"timestamp":"2026-06-05T11:30:27.365Z","request_id":"89a61d08-2e9c-4af6-9c06-a663a544c6a7"},"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":4000,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":500,"monthly_call_quota":45000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1400,"monthly_call_quota":228000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4500,"monthly_call_quota":1330000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/brake-api"}