API
Kielce City Bike
Public access to synchronized data from the Kielce City Bike system.
Documentation
The API exposes the locally stored bicycle and zone inventory, season statistics, anonymized rides and live map data from the public Roovee API. It does not expose traces, defects or fares.
API endpoints
GET
/bikes
Bicycle inventory
json
Returns public bicycle numbers and assigned types without current location or operational state.
Data publication metadata
Try endpoint
Endpoint
/api/public/roovee/bikes?version=v1
GET /api/public/roovee/bikes
[
{"uri": "https://data.example.test/api/public/roovee/bikes#10001", "number": "10001", "type": "Standard"}
]
GET
/zones
Bicycle zones
json
Returns stored zones with their active range and WGS 84 point.
Data publication metadata
Try endpoint
Endpoint
/api/public/roovee/zones?version=v1
GET /api/public/roovee/zones
[
{
"uri": "https://data.example.test/api/public/roovee/zones#0198ef88-9e65-7d2e-83ef-3cb6bf7ff1f0",
"id": "0198ef88-9e65-7d2e-83ef-3cb6bf7ff1f0",
"name": "Rynek",
"activeFrom": "2026-04-01",
"activeTo": null,
"temporary": false,
"location": {"lat": 50.8703, "lon": 20.6275}
}
]
GET
/seasons
Season statistics
json
Returns annual ride, bicycle, zone, distance and duration statistics.
Data publication metadata
Try endpoint
Endpoint
/api/public/roovee/seasons?version=v1
GET /api/public/roovee/seasons
[
{
"uri": "https://data.example.test/api/public/roovee/seasons#2026",
"year": 2026,
"activeFrom": "2026-04-01",
"activeTo": "2026-11-01",
"days": 214,
"ridesCount": 12000,
"bikesCount": 300,
"zonesCount": 61,
"totalDistanceKm": 24500.5,
"totalDurationMin": 180000.0,
"ridesPerDay": 56.1,
"ridesPerBikePerDay": 0.19,
"ridesPerStationPerDay": 0.92,
"distancePerBikePerDayKm": 0.38,
"durationPerBikePerDayMin": 2.8
}
]
GET
/rides
Rides
json
Returns a paginated list of completed non-service rides with an optional rating and without bicycle identifiers, traces or fares.
Data publication metadata
Try endpoint
Endpoint
/api/public/roovee/rides?version=v1
Parameters
| Name | Location | Type | Required | Description | example |
|---|---|---|---|---|---|
from |
query | date |
required | First range day in YYYY-MM-DD format. | 2026-08-01 |
to |
query | date |
required | Last range day in YYYY-MM-DD format. The range can cover at most 366 days. | 2026-08-31 |
timezone |
query | string |
optional | Optional IANA timezone used to interpret the range and present timestamps; UTC by default. | Europe/Warsaw |
page |
query | integer |
optional | Page number starting at 1. | 1 |
pageSize |
query | integer |
optional | Number of records per page from 1 to 500; 100 by default. | 100 |
GET /api/public/roovee/rides?from=2026-08-01&to=2026-08-31&timezone=Europe/Warsaw&page=1&pageSize=100
{
"data": [
{
"seasonUri": "https://data.example.test/api/public/roovee/seasons#2026",
"startedZoneUri": "https://data.example.test/api/public/roovee/zones#0198ef88-9e65-7d2e-83ef-3cb6bf7ff1f0",
"finishedZoneUri": null,
"startedAt": "2026-08-01T10:00:00+02:00",
"finishedAt": "2026-08-01T10:18:00+02:00",
"seasonYear": 2026,
"startedZoneId": "0198ef88-9e65-7d2e-83ef-3cb6bf7ff1f0",
"finishedZoneId": null,
"distance": 4200,
"averageSpeed": 14.0,
"rating": 5
}
],
"page": 1,
"pageSize": 100,
"hasNextPage": false
}
GET
/live
Live map
json
Returns current public bicycle availability and locations together with public zones from the public Roovee map API.
Data publication metadata
Try endpoint
Endpoint
/api/public/roovee/live?version=v1
GET /api/public/roovee/live
{
"bikes": [
{
"uri": "https://data.example.test/api/public/roovee/bikes#10001",
"number": "10001",
"available": true,
"type": "standard",
"location": {"lat": 50.8703, "lon": 20.6275}
}
],
"zones": [
{
"name": "Rynek",
"type": "preferredBikeReturnZone",
"center": {"lat": 50.8703, "lon": 20.6275},
"area": []
}
]
}