---
title: "Get a list of rental providers or all rental stations and vehicles for
a map section or provider"
method: GET
path: "/api/v1/rentals"
tags: ["map"]
---

# Get a list of rental providers or all rental stations and vehicles for
a map section or provider

`GET /api/v1/rentals`

Various options to filter the providers, stations and vehicles are
available. If none of these filters are provided, a list of all
available rental providers is returned without any station, vehicle or
zone data.

At least one of the following filters must be provided to retrieve
station, vehicle and zone data:

- A bounding box defined by the `min` and `max` parameters
- A circle defined by the `point` and `radius` parameters
- A list of provider groups via the `providerGroups` parameter
- A list of providers via the `providers` parameter

Only data that matches all the provided filters is returned.

Provide the `withProviders=false` parameter to retrieve only provider
groups if detailed feed information is not required.

## Query parameters

- `min` string
- `max` string
- `point` string
- `radius` integer
- `providerGroups` string[]
- `providers` string[]
- `withProviders` boolean
- `withStations` boolean
- `withVehicles` boolean
- `withZones` boolean

## Response `200`

Rentals in the map section or for the given providers

- object
  - `providerGroups` RentalProviderGroup[], required
    - `id` string, required — Unique identifier of the rental provider group
    - `name` string, required — Name of the provider group to be displayed to customers
    - `color` string — Color associated with this provider group, in hexadecimal RGB format (e.g. "#FF0000" for red). Can be empty.
    - `providers` string[], required — List of rental provider IDs that belong to this group
    - `formFactors` RentalFormFactor[], required — List of form factors offered by this provider group
  - `providers` RentalProvider[], required
    - `id` string, required — Unique identifier of the rental provider
    - `name` string, required — Name of the provider to be displayed to customers
    - `groupId` string, required — Id of the rental provider group this provider belongs to
    - `operator` string — Name of the system operator
    - `url` string — URL of the vehicle share system
    - `purchaseUrl` string — URL where a customer can purchase a membership
    - `color` string — Color associated with this provider, in hexadecimal RGB format (e.g. "#FF0000" for red). Can be empty.
    - `bbox` number[], required — Bounding box of the area covered by this rental provider, [west, south, east, north] as [lon, lat, lon, lat]
    - `vehicleTypes` RentalVehicleType[], required
      - `id` string, required — Unique identifier of the vehicle type (unique within the provider)
      - `name` string — Public name of the vehicle type (can be empty)
      - `formFactor` 'BICYCLE' | 'CARGO_BICYCLE' | 'CAR' | 'MOPED' | 'SCOOTER_STANDING' | 'SCOOTER_SEATED' | 'OTHER', required
      - `propulsionType` 'HUMAN' | 'ELECTRIC_ASSIST' | 'ELECTRIC' | 'COMBUSTION' | 'COMBUSTION_DIESEL' | 'HYBRID' | 'PLUG_IN_HYBRID' | 'HYDROGEN_FUEL_CELL', required
      - `returnConstraint` 'NONE' | 'ANY_STATION' | 'ROUNDTRIP_STATION', required
      - `returnConstraintGuessed` boolean, required — Whether the return constraint was guessed instead of being specified by the rental provider
    - `formFactors` RentalFormFactor[], required — List of form factors offered by this provider
    - `defaultRestrictions` RentalZoneRestrictions, required
      - `vehicleTypeIdxs` integer[], required — List of vehicle types (as indices into the provider's vehicle types array) to which these restrictions apply. If empty, the restrictions apply to all vehicle types of the provider.
      - `rideStartAllowed` boolean, required — whether the ride is allowed to start in this zone
      - `rideEndAllowed` boolean, required — whether the ride is allowed to end in this zone
      - `rideThroughAllowed` boolean, required — whether the ride is allowed to pass through this zone
      - `stationParking` boolean — whether vehicles can only be parked at stations in this zone
    - `globalGeofencingRules` RentalZoneRestrictions[], required
      - `vehicleTypeIdxs` integer[], required — List of vehicle types (as indices into the provider's vehicle types array) to which these restrictions apply. If empty, the restrictions apply to all vehicle types of the provider.
      - `rideStartAllowed` boolean, required — whether the ride is allowed to start in this zone
      - `rideEndAllowed` boolean, required — whether the ride is allowed to end in this zone
      - `rideThroughAllowed` boolean, required — whether the ride is allowed to pass through this zone
      - `stationParking` boolean — whether vehicles can only be parked at stations in this zone
  - `stations` RentalStation[], required
    - `id` string, required — Unique identifier of the rental station
    - `providerId` string, required — Unique identifier of the rental provider
    - `providerGroupId` string, required — Unique identifier of the rental provider group
    - `name` string, required — Public name of the station
    - `lat` number, required — latitude
    - `lon` number, required — longitude
    - `address` string — Address where the station is located
    - `crossStreet` string — Cross street or landmark where the station is located
    - `rentalUriAndroid` string — Rental URI for Android (deep link to the specific station)
    - `rentalUriIOS` string — Rental URI for iOS (deep link to the specific station)
    - `rentalUriWeb` string — Rental URI for web (deep link to the specific station)
    - `isRenting` boolean, required — true if vehicles can be rented from this station, false if it is temporarily out of service
    - `isReturning` boolean, required — true if vehicles can be returned to this station, false if it is temporarily out of service
    - `numVehiclesAvailable` integer, required — Number of vehicles available for rental at this station
    - `formFactors` RentalFormFactor[], required — List of form factors available for rental and/or return at this station
    - `vehicleTypesAvailable` object, required — List of vehicle types currently available at this station (vehicle type ID -> count)
    - `vehicleDocksAvailable` object, required — List of vehicle docks currently available at this station (vehicle type ID -> count)
    - `stationArea` array[] — A multi-polygon contains a number of polygons, each containing a number of rings, which are encoded as polylines (with precision 6). For each polygon, the first ring is the outer ring, all subsequent rings are inner rings (holes).
      - EncodedPolyline[]
        - `points` string, required — The encoded points of the polyline using the Google polyline encoding.
        - `precision` integer, required — The precision of the returned polyline (7 for /v1, 6 for /v2) Be aware that with precision 7, coordinates with |longitude| > 107.37 are undefined/will overflow.
        - `length` integer, required — The number of points in the string
    - `bbox` number[], required — Bounding box of the area covered by this station, [west, south, east, north] as [lon, lat, lon, lat]
  - `vehicles` RentalVehicle[], required
    - `id` string, required — Unique identifier of the rental vehicle
    - `providerId` string, required — Unique identifier of the rental provider
    - `providerGroupId` string, required — Unique identifier of the rental provider group
    - `typeId` string, required — Vehicle type ID (unique within the provider)
    - `lat` number, required — latitude
    - `lon` number, required — longitude
    - `formFactor` 'BICYCLE' | 'CARGO_BICYCLE' | 'CAR' | 'MOPED' | 'SCOOTER_STANDING' | 'SCOOTER_SEATED' | 'OTHER', required
    - `propulsionType` 'HUMAN' | 'ELECTRIC_ASSIST' | 'ELECTRIC' | 'COMBUSTION' | 'COMBUSTION_DIESEL' | 'HYBRID' | 'PLUG_IN_HYBRID' | 'HYDROGEN_FUEL_CELL', required
    - `returnConstraint` 'NONE' | 'ANY_STATION' | 'ROUNDTRIP_STATION', required
    - `stationId` string — Station ID if the vehicle is currently at a station
    - `homeStationId` string — Station ID where the vehicle must be returned, if applicable
    - `isReserved` boolean, required — true if the vehicle is currently reserved by a customer, false otherwise
    - `isDisabled` boolean, required — true if the vehicle is out of service, false otherwise
    - `rentalUriAndroid` string — Rental URI for Android (deep link to the specific vehicle)
    - `rentalUriIOS` string — Rental URI for iOS (deep link to the specific vehicle)
    - `rentalUriWeb` string — Rental URI for web (deep link to the specific vehicle)
  - `zones` RentalZone[], required
    - `providerId` string, required — Unique identifier of the rental provider
    - `providerGroupId` string, required — Unique identifier of the rental provider group
    - `name` string — Public name of the geofencing zone
    - `z` integer, required — Zone precedence / z-index (higher number = higher precedence)
    - `bbox` number[], required — Bounding box of the area covered by this zone, [west, south, east, north] as [lon, lat, lon, lat]
    - `area` array[], required — A multi-polygon contains a number of polygons, each containing a number of rings, which are encoded as polylines (with precision 6). For each polygon, the first ring is the outer ring, all subsequent rings are inner rings (holes).
      - EncodedPolyline[]
        - `points` string, required — The encoded points of the polyline using the Google polyline encoding.
        - `precision` integer, required — The precision of the returned polyline (7 for /v1, 6 for /v2) Be aware that with precision 7, coordinates with |longitude| > 107.37 are undefined/will overflow.
        - `length` integer, required — The number of points in the string
    - `rules` RentalZoneRestrictions[], required
      - `vehicleTypeIdxs` integer[], required — List of vehicle types (as indices into the provider's vehicle types array) to which these restrictions apply. If empty, the restrictions apply to all vehicle types of the provider.
      - `rideStartAllowed` boolean, required — whether the ride is allowed to start in this zone
      - `rideEndAllowed` boolean, required — whether the ride is allowed to end in this zone
      - `rideThroughAllowed` boolean, required — whether the ride is allowed to pass through this zone
      - `stationParking` boolean — whether vehicles can only be parked at stations in this zone

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/motis-project/apis/motis-api.md) · [All operations](https://skmtc.net/motis-project/apis/motis-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/motis-project/motis-api/revisions/947bd5a43e8d/schema)
