Direct answer: the API of Fleet OS, the software Cityflow uses to run its own fleet, has 46 REST endpoints with Bearer authentication and a test sandbox. A hotel's PMS, a building's app or your ERP can create bookings, record the handover and return of the bike, check the fleet and read metrics.
This article is for operators with their own fleet. If you run a hotel and just want bikes for your guests, there's nothing to integrate: at the hotels Cityflow operates, guests unlock the bike with their room's NFC key. It's all on electric bikes for hotels.
What exactly is in the Fleet OS API?
There are 46 endpoints in six groups. They all use POST, with a JSON body and the key in the “Authorization: Bearer” header. The parameters and examples are in the API reference.
| Group | Endpoints | What for |
|---|---|---|
| Bookings and tourism (7) | /create_advance_booking, /get_booking, /cancel_booking, /rental_checkin, /rental_checkout, /purchase_tourist_pass, /validate_tourist_pass | Book, hand over with an unlock code, return with settlement, passes |
| Urban micromobility (3) | /get_vehicles_status, /get_operating_zones, /calculate_trip_fare | Fleet status, a city's zones, the fare for a trip |
| Corporate fleets (3) | /register_corporate_user, /set_employee_permissions, /create_campus_reservation | Sign-up by email domain, permissions, bookings on a campus |
| Multi-city and franchises (2) | /get_master_overview, /get_franchise_metrics | Network overview, metrics by franchise or property |
| Internal management (4) | /create_hotel, /set_hotel_prices, /create_bike, /update_bike_status | Creating records, prices per hotel, status of each bike |
| Tables (27) | /update_booking, /update_payment, /update_maintenance and 24 more | Change a record field by field |
The 27 table endpoints all work the same way: you send the record_id and only the fields that change.
How does authentication work, and how do you test without risk?
With an API key that Cityflow provides when you sign up for Fleet OS; without it, the platform returns no data. From day one you have a sandbox with test data to validate the integration without touching real bikes.
Sandbox responses say so in their meta field, and if a required parameter is missing, the error tells you which one.
How do you connect a hotel's PMS?
By calling the booking endpoints from the PMS or from a small piece of middleware. One possible flow:
- The guest adds the bike to their stay: /create_advance_booking, with their email, the property, the dates and the bikes.
- If they cancel the stay: /cancel_booking.
- On arrival: /rental_checkin, which returns the unlock code to show them.
- When they're done: /rental_checkout, which closes the rental with its settlement.
- At any time, /get_booking gives the status of the booking.
Fleet OS doesn't write to the PMS: to post the amount to the room bill, your middleware takes the settlement to the PMS using the PMS's own API, or Cityflow builds it as a separate integration.
What about a building's or a company's app?
With the same endpoints. The app of a building you serve shows the available bikes with /get_vehicles_status and, with /create_advance_booking and /rental_checkin, the resident books and receives their code without leaving the app.
For a company fleet, its intranet can:
- register each employee with /register_corporate_user, which validates the email domain;
- assign permissions by department or profile with /set_employee_permissions;
- book on campus with /create_campus_reservation.
What can an ERP or internal system read and write?
It can read metrics and write the fleet's status. /get_master_overview gives an overview of your whole network over a period and /get_franchise_metrics breaks it down by franchise or by property. More in how to manage several fleets from a single dashboard.
Your workshop system can move a bike to maintenance, and back to available, with /update_bike_status. New bikes are added with /create_bike, with their model, their property and their lock type. Fleet OS is compatible with Linka, AXA IN and Omni locks and with Acton and Okai IoT: it's all in the guide to smart locks and IoT.
The tables cover bookings, payments, maintenance, incidents and users, among others.
What isn't in the API?
Three things are missing that are worth knowing before you design the integration:
- Automatic notifications (webhooks). The API doesn't notify you when a rental starts or ends: your system asks with /get_booking or /get_vehicles_status.
- Ready-made connectors for a specific PMS. Your team or Cityflow builds them.
- Writing to your systems. Fleet OS responds to your calls; it doesn't write to your PMS or your ERP on its own.
Any of these is quoted as an integration: €750 for a standard one; non-standard ones, with a proposal.
How much does it cost to use the API?
Nothing extra: access is included in the Fleet OS fee, which is €300 a month plus €8 down to €3 per vehicle depending on the tier, with €1,000 for activation and no minimum term. The only things paid separately are integrations with hardware or systems that Fleet OS doesn't support out of the box, €750 for a standard one. The details are in the Fleet OS pricing.
How do you get started?
- Read the API reference and mark the endpoints for your use case.
- Request a demo and tell Cityflow which systems you want to connect.
- When you sign up, you receive the key and the sandbox, and your team validates the integration.
Fleet OS is the software Cityflow uses to run its fleet in 9 provinces, and there are operators in the sector already running on it. There's more on the Fleet OS page, where you can also request a demo.
Frequently asked questions
How many endpoints does the Fleet OS API have?
46 REST endpoints with Bearer authentication and a sandbox with test data, split into six groups; 27 of them are for changing the tables field by field. The full reference is published at cityflow.app/software/api.
Can Fleet OS be connected to a hotel's PMS?
Yes: the PMS, or a small piece of middleware, calls the booking endpoints to create the booking, record the handover with its unlock code, close the rental with its settlement or cancel it. Fleet OS doesn't come with a ready-made connector for any specific PMS: if Cityflow builds it, it's a separate integration, €750 for a standard one.
Does the Fleet OS API notify my system when a rental starts or ends?
No: the reference doesn't include automatic notifications (webhooks). Your system checks the status with /get_booking or /get_vehicles_status; if you need Fleet OS to notify you, it's quoted as an integration.
How much does access to the Fleet OS API cost?
It's included in the Fleet OS fee: €300 a month plus €8 down to €3 per vehicle depending on the tier, and €1,000 for activation, with no minimum term. Integrations with hardware or systems that Fleet OS doesn't support out of the box cost €750 for a standard one.
Can I test the integration without touching my real fleet?
Yes. From day one you have a sandbox with test data, and its responses say so in the meta field. Your team validates each step before connecting it to the real bikes.
NEXT STEP
Want a tailored proposal for your operation?
Tell us what you need and we'll get back to you within 24 hours with a plan adapted to your business.
Talk to sales


