{"openapi":"3.1.0","info":{"title":"Routing API","version":"1.0.0","description":"Driving routes with distance, duration and geometry, distance/duration matrices for up to 25 points, and nearest-road snapping — on the global OpenStreetMap road network. Coordinates are simple lat,lon pairs.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/routing-api","description":"oanor gateway"}],"tags":[{"name":"Routing"}],"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/matrix":{"get":{"operationId":"get_v1_matrix","tags":["Routing"],"summary":"Distance/duration matrix","description":"","parameters":[{"name":"points","in":"query","required":true,"description":"2-25 lat,lon pairs (; separated)","schema":{"type":"string"},"example":"52.517,13.388;52.520,13.405;52.529,13.397"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":3,"profile":"driving","distances_m":[[0,1732.7,2067.4],[1258.2,0,1600.6],[1888.7,1792.2,0]],"durations_s":[[0,209.1,296.7],[127,0,264.6],[262.6,312.6,0]]},"meta":{"timestamp":"2026-05-30T01:47:48.065Z","request_id":"9d5e3421-65bb-4355-a56c-5974ec40a7c1"},"status":"ok","message":"Matrix retrieved successfully","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/nearest":{"get":{"operationId":"get_v1_nearest","tags":["Routing"],"summary":"Snap to nearest road","description":"","parameters":[{"name":"point","in":"query","required":true,"description":"lat,lon","schema":{"type":"string"},"example":"52.517,13.388"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"Unter den Linden","location":[13.387983,52.517094],"distance_m":11},"meta":{"timestamp":"2026-05-30T01:47:48.501Z","request_id":"860a1367-e49d-43ab-88fb-959d7c9ff83a"},"status":"ok","message":"Nearest road retrieved successfully","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/route":{"get":{"operationId":"get_v1_route","tags":["Routing"],"summary":"Driving route between points","description":"","parameters":[{"name":"from","in":"query","required":true,"description":"Start lat,lon","schema":{"type":"string"},"example":"52.517,13.388"},{"name":"to","in":"query","required":true,"description":"End lat,lon","schema":{"type":"string"},"example":"52.529,13.397"},{"name":"waypoints","in":"query","required":false,"description":"Intermediate lat,lon;... ","schema":{"type":"string"}},{"name":"steps","in":"query","required":false,"description":"Include turn-by-turn (true)","schema":{"type":"string"},"example":"false"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"profile":"driving","geometry":{"type":"LineString","coordinates":[[13.387983,52.517094],[13.38576,52.516951],[13.385206,52.520105],[13.388021,52.521765],[13.387228,52.527168],[13.393668,52.528491],[13.396829,52.52926]]},"waypoints":[{"name":"Unter den Linden","location":[13.387983,52.517094]},{"name":"Torstraße","location":[13.396829,52.52926]}],"distance_m":2067,"duration_s":297},"meta":{"timestamp":"2026-05-30T01:47:48.888Z","request_id":"e9d58381-5190-4a43-8a06-a8f9700931eb"},"status":"ok","message":"Route retrieved successfully","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":2500,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":1500,"monthly_call_quota":40000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":4500,"monthly_call_quota":175000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":12900,"monthly_call_quota":700000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/routing-api"}