If you are not yet familiar with GraphQL and GraphiQL it is highly recommended to review those pages at first.
The Routing API provides a few related query types:
Note: For more details about these query types you can use the Documentation Explorer provided in GraphiQL.
Note: If the examples provided with an ID do not return what is expected then the ID in question may not be in use any more and you should try again with an existing ID. Rental services are also often seasonal in Finland, which means that the stations or vehicles are not always available from the API.
{
vehicleRentalStations {
stationId
name
allowPickup
availableVehicles {
byType {
count
vehicleType {
formFactor
}
}
}
}
}
{
vehicleRentalStation(id: "smoove:396") {
stationId
name
availableVehicles {
byType {
count
vehicleType {
formFactor
}
}
}
availableSpaces {
byType {
count
vehicleType {
formFactor
}
}
}
lat
lon
allowDropoff
}
}
{
rentalVehicles {
vehicleId
vehicleType {
formFactor
propulsionType
}
operative
}
}
{
rentalVehicles(formFactors: [SCOOTER, SCOOTER_SEATED, SCOOTER_STANDING]) {
vehicleId
vehicleType {
formFactor
propulsionType
}
operative
}
}
Note: IDs of floating vehicles tend to change constantly.
{
rentalVehicle(id:"bolt_helsinki:04928ae0-aebc-4044-bd95-e5199e7fd0d8") {
vehicleId
vehicleType {
formFactor
propulsionType
}
allowPickupNow
}
}
The vehicle parking areas that can be found from the APIs are meant for park and ride. Other types of parking areas might not be found. Parking data is not available in every routing endpoint.
{
vehicleParkings {
vehicleParkingId
name
state
availability {
carSpaces
bicycleSpaces
wheelchairAccessibleCarSpaces
}
capacity {
carSpaces
bicycleSpaces
wheelchairAccessibleCarSpaces
}
}
}
{
vehicleParking(id:"liipi:974") {
vehicleParkingId
name
state
availability {
bicycleSpaces
}
capacity {
bicycleSpaces
}
}
}
Bike rental can be used by adding mode BICYCLE_RENTAL to modes
.
mode
does not differentiate between a rental bicycle and a personal bicycle.{
planConnection(
origin: {location: {coordinate: {latitude: 60.1641516457, longitude: 24.95003700}}}
destination: {location: {coordinate: {latitude: 60.188229950, longitude: 24.83785629272}}}
first: 1
modes: {direct: [BICYCLE_RENTAL, WALK], transit: {access: [BICYCLE_RENTAL, WALK], egress: [BICYCLE_RENTAL, WALK]}}
) {
edges {
node {
start
end
legs {
duration
mode
distance
from {
lat
lon
vehicleRentalStation {
stationId
availableVehicles {
byType {
vehicleType {
propulsionType
}
count
}
}
}
}
to {
lat
lon
vehicleRentalStation {
stationId
}
}
start {
scheduledTime
}
end {
scheduledTime
}
}
}
}
}
}
{
planConnection(
origin: {location: {coordinate: {latitude: 60.168992, longitude: 24.932366}}}
destination: {location: {coordinate: {latitude: 60.165246, longitude: 24.949128}}}
modes: {direct: [BICYCLE], directOnly: true}
first: 1
) {
edges {
node {
legs {
duration
mode
distance
from {
lat
lon
name
}
to {
lat
lon
name
}
legGeometry {
points
length
}
}
}
}
}
}
{
planConnection(
origin: {location: {coordinate: {latitude: 60.1675747130, longitude: 24.9437713623}}}
destination: {location: {coordinate: {latitude: 60.20011132, longitude: 24.93553161}}}
modes: {transitOnly:true, transit: {access: BICYCLE, transfer: BICYCLE, egress: BICYCLE}}
first: 1
) {
edges {
node {
legs {
duration
mode
distance
from {
lat
lon
name
stop {
name
}
}
to {
lat
lon
name
stop {
name
}
}
legGeometry {
points
length
}
}
}
}
}
}
modes: {transit: {access: [BICYCLE_PARKING]}}
returns itinerary, which begins by bicycling to a bike park from which the journey is continued by public transportation{
planConnection(
origin: {location: {coordinate: {latitude: 60.18778, longitude: 25.02987}}}
destination: {location: {coordinate: {latitude: 60.21109, longitude: 25.08094}}}
first: 3
modes: {transit: {access: [BICYCLE_PARKING]}}
) {
edges {
node {
start
end
legs {
duration
mode
distance
from {
lat
lon
}
to {
lat
lon
vehicleParking {
vehicleParkingId
}
}
start {
scheduledTime
}
end {
scheduledTime
}
}
}
}
}
}