{"openapi":"3.1.0","info":{"title":"Angle API","version":"1.0.0","description":"Convert and normalize plane angles. The convert endpoint moves a value between degrees, radians, gradians (gons), turns/revolutions, arcminutes, arcseconds, milliradians and DMS (degrees-minutes-seconds) — parse a DMS string like 12°34'56\" or format a decimal angle as DMS. The normalize endpoint wraps any angle into the 0–360° or the −180–180° range. Perfect for graphics and game maths, CAD and surveying, robotics, astronomy and navigation headings. This covers plane angles specifically — a category general unit converters leave out. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. Distinct from general unit conversion and from geographic-coordinate conversion.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/angle-api","description":"oanor gateway"}],"tags":[{"name":"Angle"},{"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/convert":{"get":{"operationId":"get_v1_convert","tags":["Angle"],"summary":"Convert an angle","description":"","parameters":[{"name":"value","in":"query","required":true,"description":"Amount or DMS string","schema":{"type":"string"},"example":"180"},{"name":"from","in":"query","required":false,"description":"deg|rad|grad|turn|arcmin|arcsec|mrad|dms (default deg)","schema":{"type":"string"},"example":"deg"},{"name":"to","in":"query","required":false,"description":"Target unit (default rad)","schema":{"type":"string"},"example":"rad"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"to":"rad","from":"deg","value":"180","result":3.141592654},"meta":{"timestamp":"2026-06-03T01:09:45.409Z","request_id":"00bac4cd-c703-4921-ae21-47399da8a2ce"},"status":"ok","message":"Convert an angle","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/normalize":{"get":{"operationId":"get_v1_normalize","tags":["Angle"],"summary":"Normalize an angle","description":"","parameters":[{"name":"value","in":"query","required":true,"description":"Angle","schema":{"type":"string"},"example":"450"},{"name":"unit","in":"query","required":false,"description":"Unit (default deg)","schema":{"type":"string"},"example":"deg"},{"name":"range","in":"query","required":false,"description":"360 or 180 (default 360)","schema":{"type":"string"},"example":"360"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"unit":"deg","range":"360","value":"450","result":90},"meta":{"timestamp":"2026-06-03T01:09:45.502Z","request_id":"b4e05927-279f-4a06-bb21-56dd08e03980"},"status":"ok","message":"Normalize an angle","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":{"name":"Angle API","notes":"Use from=dms to parse 12°34'56\" (or \"12 34 56\"), and to=dms to format. This is for plane angles (maths, graphics, navigation), not geographic coordinates.","version":"v1","endpoints":[{"path":"/v1/convert","params":{"to":"target unit (default rad)","from":"deg|rad|grad|turn|arcmin|arcsec|mrad|dms (default deg)","value":"amount or a DMS string (required)"},"returns":"the converted value (or a DMS object when to=dms)"},{"path":"/v1/normalize","params":{"unit":"default deg","range":"360 or 180 (default 360)","value":"angle (required)"},"returns":"the angle wrapped into range"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Convert plane angles between degrees, radians, gradians (gons), turns, arcminutes, arcseconds, milliradians and DMS (degrees-minutes-seconds), and normalize an angle into the 0–360° or −180–180° range. Pure local, no key."},"meta":{"timestamp":"2026-06-03T01:09:45.598Z","request_id":"ac37e9fd-ee2a-4653-a5f3-c0f3f650f883"},"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":1055,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":95,"monthly_call_quota":8950,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2085,"monthly_call_quota":140500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5885,"monthly_call_quota":740000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/angle-api"}