{"provider":{"title":"EU Public Transit","description":"Find public transit routes between two European locations using the Transitous API (open-source, based on OpenTripPlanner). Returns routes with step-by-step legs including walking, bus, rail, subway, tram, and ferry segments. Best coverage in Europe. Limited US coverage (only cities with GTFS data in Transitous). If the origin or destination is not covered, the API will return no routes.","price":{"currency":"USD","amountCents":0.5,"amountMicrodollars":5000,"unit":"call"},"runContract":{"method":"POST","endpointPath":"/run","inputSchema":{"type":"object","properties":{"fromLat":{"type":"number","minimum":-90,"maximum":90,"description":"Origin latitude"},"fromLng":{"type":"number","minimum":-180,"maximum":180,"description":"Origin longitude"},"toLat":{"type":"number","minimum":-90,"maximum":90,"description":"Destination latitude"},"toLng":{"type":"number","minimum":-180,"maximum":180,"description":"Destination longitude"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Travel date in YYYY-MM-DD format (defaults to today)"},"time":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"Travel time in HH:MM format (defaults to now)"},"arriveBy":{"type":"boolean","default":false,"description":"If true, the given time is the desired arrival time (default: false, meaning departure time)"}},"required":["fromLat","fromLng","toLat","toLng"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"origin":{"type":"string","description":"Origin coordinates as \"lat,lng\""},"destination":{"type":"string","description":"Destination coordinates as \"lat,lng\""},"resultCount":{"type":"number","description":"Number of routes returned"},"routes":{"type":"array","items":{"type":"object","properties":{"duration":{"type":"string","description":"Total trip duration (e.g. \"42 min\")"},"departureTime":{"type":"string","description":"Departure time (ISO 8601)"},"arrivalTime":{"type":"string","description":"Arrival time (ISO 8601)"},"transfers":{"type":"number","description":"Number of transfers (transit legs minus one)"},"legs":{"type":"array","items":{"type":"object","properties":{"mode":{"type":"string","enum":["WALK","BUS","RAIL","SUBWAY","TRAM","FERRY"],"description":"Transport mode"},"routeName":{"type":"string","nullable":true,"description":"Line number or name (null for walking)"},"agencyName":{"type":"string","nullable":true,"description":"Transit agency name (null for walking)"},"from":{"type":"string","description":"Departure stop/place name"},"to":{"type":"string","description":"Arrival stop/place name"},"departureTime":{"type":"string","description":"Leg departure time (ISO 8601)"},"arrivalTime":{"type":"string","description":"Leg arrival time (ISO 8601)"},"duration":{"type":"string","description":"Leg duration (e.g. \"5 min\")"},"distance":{"type":"number","nullable":true,"description":"Distance in meters (for walk legs, null otherwise)"}},"required":["mode","routeName","agencyName","from","to","departureTime","arrivalTime","duration","distance"],"additionalProperties":false}}},"required":["duration","departureTime","arrivalTime","transfers","legs"],"additionalProperties":false}}},"required":["origin","destination","resultCount","routes"],"additionalProperties":false}}}}