{"openapi":"3.1.0","info":{"title":"HERE Isoline Routing API (your key) API","version":"0.1.0","description":"HERE Isoline Routing API (your key) lets an AI assistant read your own HERE Isoline data through the HERE Isoline API with a key you supply (HERE API key). Read-only: 6 tools (calculate_car_isoline, calculate_truck_isoline, calculate_pedestrian_isoline, calculate_bicycle_isoline, calculate_scooter_isoline, get_service_version). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-here-isoline.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-here-isoline/docs"},"termsOfService":"https://connectorbay.com/byok-here-isoline/terms"},"servers":[{"url":"https://byok-here-isoline.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-here-isoline/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/calculate_car_isoline":{"post":{"operationId":"calculate_car_isoline","summary":"Compute the area a car can reach from a point (or that can reach it) within given times or distances; returns polygons a","description":"Compute the area a car can reach from a point (or that can reach it) within given times or distances; returns polygons as flexible polyline strings per range. Use for \"Which area can I drive to within 10 minutes of latitude 52.5308, longitude 13.3847\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"range_type":{"description":"What the ranges measure: time (seconds) or distance (meters).","enum":["time","distance"],"title":"Range Type","type":"string"},"range_values":{"description":"Comma-separated range values in the unit of range_type, for example '300,600,900' (up to 3 values are typical).","maxLength":100,"title":"Range Values","type":"string"},"transport_mode":{"anyOf":[{"const":"car","type":"string"},{"type":"null"}],"default":"car","description":"Always 'car' for this tool.","title":"Transport Mode"},"origin":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can be reached from here (use this or destination).","title":"Origin"},"destination":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can reach here (use this or origin).","title":"Destination"},"departure_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Departure time, RFC 3339 such as 2026-10-20T08:00:00, with origin (default now).","title":"Departure Time"},"arrival_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Arrival time, RFC 3339 such as 2026-10-20T09:00:00, with destination.","title":"Arrival Time"},"routing_mode":{"anyOf":[{"enum":["fast","short"],"type":"string"},{"type":"null"}],"default":"fast","description":"Optimize for fast (default) or short.","title":"Routing Mode"},"optimize_for":{"anyOf":[{"enum":["quality","performance","balanced"],"type":"string"},{"type":"null"}],"default":"balanced","description":"Calculation focus: quality, performance or balanced (default).","title":"Optimize For"},"max_points":{"anyOf":[{"maximum":100000,"minimum":3,"type":"integer"},{"type":"null"}],"default":null,"description":"Limit the number of points of the returned polygons (at least 3).","title":"Max Points"}},"required":["range_type","range_values"],"title":"calculate_car_isolineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/calculate_truck_isoline":{"post":{"operationId":"calculate_truck_isoline","summary":"Compute the area a truck can reach from a point within given times or distances, optionally with a gross weight limit in","description":"Compute the area a truck can reach from a point within given times or distances, optionally with a gross weight limit in kg; returns polygons as flexible polylines. Use for \"Which area can a 12 tonne truck reach within 20 minutes of 52.5308,13.3847\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"range_type":{"description":"What the ranges measure: time (seconds) or distance (meters).","enum":["time","distance"],"title":"Range Type","type":"string"},"range_values":{"description":"Comma-separated range values in the unit of range_type, for example '300,600,900' (up to 3 values are typical).","maxLength":100,"title":"Range Values","type":"string"},"transport_mode":{"anyOf":[{"const":"truck","type":"string"},{"type":"null"}],"default":"truck","description":"Always 'truck' for this tool.","title":"Transport Mode"},"origin":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can be reached from here (use this or destination).","title":"Origin"},"destination":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can reach here (use this or origin).","title":"Destination"},"departure_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Departure time, RFC 3339 such as 2026-10-20T08:00:00, with origin (default now).","title":"Departure Time"},"arrival_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Arrival time, RFC 3339 such as 2026-10-20T09:00:00, with destination.","title":"Arrival Time"},"routing_mode":{"anyOf":[{"enum":["fast","short"],"type":"string"},{"type":"null"}],"default":"fast","description":"Optimize for fast (default) or short.","title":"Routing Mode"},"optimize_for":{"anyOf":[{"enum":["quality","performance","balanced"],"type":"string"},{"type":"null"}],"default":"balanced","description":"Calculation focus: quality, performance or balanced (default).","title":"Optimize For"},"max_points":{"anyOf":[{"maximum":100000,"minimum":3,"type":"integer"},{"type":"null"}],"default":null,"description":"Limit the number of points of the returned polygons (at least 3).","title":"Max Points"},"gross_weight_kg":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Gross vehicle weight in kilograms (0 to 100000).","title":"Gross Weight Kg"}},"required":["range_type","range_values"],"title":"calculate_truck_isolineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/calculate_pedestrian_isoline":{"post":{"operationId":"calculate_pedestrian_isoline","summary":"Compute the area reachable on foot from a point within given times or distances; returns polygons as flexible polylines.","description":"Compute the area reachable on foot from a point within given times or distances; returns polygons as flexible polylines. Use for \"How far can I walk in 15 minutes from 52.5308,13.3847\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"range_type":{"description":"What the ranges measure: time (seconds) or distance (meters).","enum":["time","distance"],"title":"Range Type","type":"string"},"range_values":{"description":"Comma-separated range values in the unit of range_type, for example '300,600,900' (up to 3 values are typical).","maxLength":100,"title":"Range Values","type":"string"},"transport_mode":{"anyOf":[{"const":"pedestrian","type":"string"},{"type":"null"}],"default":"pedestrian","description":"Always 'pedestrian' for this tool.","title":"Transport Mode"},"origin":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can be reached from here (use this or destination).","title":"Origin"},"destination":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can reach here (use this or origin).","title":"Destination"},"departure_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Departure time, RFC 3339 such as 2026-10-20T08:00:00, with origin (default now).","title":"Departure Time"},"arrival_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Arrival time, RFC 3339 such as 2026-10-20T09:00:00, with destination.","title":"Arrival Time"},"routing_mode":{"anyOf":[{"enum":["fast","short"],"type":"string"},{"type":"null"}],"default":"fast","description":"Optimize for fast (default) or short.","title":"Routing Mode"},"optimize_for":{"anyOf":[{"enum":["quality","performance","balanced"],"type":"string"},{"type":"null"}],"default":"balanced","description":"Calculation focus: quality, performance or balanced (default).","title":"Optimize For"},"max_points":{"anyOf":[{"maximum":100000,"minimum":3,"type":"integer"},{"type":"null"}],"default":null,"description":"Limit the number of points of the returned polygons (at least 3).","title":"Max Points"}},"required":["range_type","range_values"],"title":"calculate_pedestrian_isolineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/calculate_bicycle_isoline":{"post":{"operationId":"calculate_bicycle_isoline","summary":"Compute the area reachable by bicycle from a point within given times or distances (beta mode in the provider's docs); r","description":"Compute the area reachable by bicycle from a point within given times or distances (beta mode in the provider's docs); returns polygons as flexible polylines. Use for \"What area can I cycle to in 20 minutes from 52.5308,13.3847\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"range_type":{"description":"What the ranges measure: time (seconds) or distance (meters).","enum":["time","distance"],"title":"Range Type","type":"string"},"range_values":{"description":"Comma-separated range values in the unit of range_type, for example '300,600,900' (up to 3 values are typical).","maxLength":100,"title":"Range Values","type":"string"},"transport_mode":{"anyOf":[{"const":"bicycle","type":"string"},{"type":"null"}],"default":"bicycle","description":"Always 'bicycle' for this tool.","title":"Transport Mode"},"origin":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can be reached from here (use this or destination).","title":"Origin"},"destination":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can reach here (use this or origin).","title":"Destination"},"departure_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Departure time, RFC 3339 such as 2026-10-20T08:00:00, with origin (default now).","title":"Departure Time"},"arrival_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Arrival time, RFC 3339 such as 2026-10-20T09:00:00, with destination.","title":"Arrival Time"},"routing_mode":{"anyOf":[{"enum":["fast","short"],"type":"string"},{"type":"null"}],"default":"fast","description":"Optimize for fast (default) or short.","title":"Routing Mode"},"optimize_for":{"anyOf":[{"enum":["quality","performance","balanced"],"type":"string"},{"type":"null"}],"default":"balanced","description":"Calculation focus: quality, performance or balanced (default).","title":"Optimize For"},"max_points":{"anyOf":[{"maximum":100000,"minimum":3,"type":"integer"},{"type":"null"}],"default":null,"description":"Limit the number of points of the returned polygons (at least 3).","title":"Max Points"}},"required":["range_type","range_values"],"title":"calculate_bicycle_isolineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/calculate_scooter_isoline":{"post":{"operationId":"calculate_scooter_isoline","summary":"Compute the area reachable by scooter from a point within given times or distances; returns polygons as flexible polylin","description":"Compute the area reachable by scooter from a point within given times or distances; returns polygons as flexible polylines. Use for \"What area can a scooter reach in 10 minutes from 52.5308,13.3847\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"range_type":{"description":"What the ranges measure: time (seconds) or distance (meters).","enum":["time","distance"],"title":"Range Type","type":"string"},"range_values":{"description":"Comma-separated range values in the unit of range_type, for example '300,600,900' (up to 3 values are typical).","maxLength":100,"title":"Range Values","type":"string"},"transport_mode":{"anyOf":[{"const":"scooter","type":"string"},{"type":"null"}],"default":"scooter","description":"Always 'scooter' for this tool.","title":"Transport Mode"},"origin":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can be reached from here (use this or destination).","title":"Origin"},"destination":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Center as 'LAT,LNG'; the area is what can reach here (use this or origin).","title":"Destination"},"departure_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Departure time, RFC 3339 such as 2026-10-20T08:00:00, with origin (default now).","title":"Departure Time"},"arrival_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Arrival time, RFC 3339 such as 2026-10-20T09:00:00, with destination.","title":"Arrival Time"},"routing_mode":{"anyOf":[{"enum":["fast","short"],"type":"string"},{"type":"null"}],"default":"fast","description":"Optimize for fast (default) or short.","title":"Routing Mode"},"optimize_for":{"anyOf":[{"enum":["quality","performance","balanced"],"type":"string"},{"type":"null"}],"default":"balanced","description":"Calculation focus: quality, performance or balanced (default).","title":"Optimize For"},"max_points":{"anyOf":[{"maximum":100000,"minimum":3,"type":"integer"},{"type":"null"}],"default":null,"description":"Limit the number of points of the returned polygons (at least 3).","title":"Max Points"}},"required":["range_type","range_values"],"title":"calculate_scooter_isolineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_service_version":{"post":{"operationId":"get_service_version","summary":"Show the Isoline Routing API version, service version and map data versions in use. Use for \"Which version of the HERE I","description":"Show the Isoline Routing API version, service version and map data versions in use. Use for \"Which version of the HERE Isoline Routing API is running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_service_versionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}