eskerda / pybikes

bike sharing + python = pybikes
https://citybik.es
GNU Lesser General Public License v3.0
557 stars 165 forks source link

Support Flinkster API for call a bike #238

Closed jlwin closed 1 year ago

jlwin commented 7 years ago

It seems to me that the BASE_URL is defect. I am using citybik.es to get the Stadtrad (Call a Bike in Hamburg, Germany) data but the data is not being refreshed since the end of fabruary. I tried to find out, where the problem was but could not really fix this by now. I guess the BASE__URL in https://github.com/eskerda/pybikes/blob/master/pybikes/callabike.py is not correct anymore. I had a small old script where I used that same URL for testing purpose which was working back then but does not work anymore since the URL is not providing the data anymore. It would be great if someone could have a look into this and find the correct current URL that provides the data! Thanks a lot in advance! :-)

janpio commented 7 years ago

Call a bike did a website relaunch in the first quarter this year.

In Berlin they are also known as "Lidl Bike" now - but the system is the same (websites and apps are only clones on the same backend: https://www.lidl-bike.de/de vs https://www.callabike-interaktiv.de/de). The concept of "stations" still exists, but you can but don't have to return the bike at one, it's a free float system now.

I looked into the new website a bit. Here is a request of the new website (as curl):

curl "https://www.callabike-interaktiv.de/rpc" -H "Host: www.callabike-interaktiv.de" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0" -H "Accept: application/json, text/javascript, */*; q=0.01" -H "Accept-Language: de,en-US;q=0.7,en;q=0.3" --compressed -H "Referer: https://www.callabike-interaktiv.de/de/rad-finden" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "X-Requested-With: XMLHttpRequest" -H "Cookie: pimcore_admin_sid=bj7etp84222co7vvfd0vap5nv2; _ga=GA1.2.266071737.1491583134; _dc_gtm_UA-54447128-9=1" -H "Connection: keep-alive" --data "{""method"":""Map.listBikes"",""params"":[{""lat"":""52.519444"",""long"":""13.406667"",""maxItems"":100,""radius"":100000}],""id"":1491583181643}"


Response looks like this:

{ "error": null, "result": { "success": true, "data": { "Locations": [{ "Description": "-", "Position": { "Longitude": 13.405815, "Latitude": 52.52414 }, "Distance": 28.998360691768, "isOutside": false, "FreeBikes": [{ "Number": "15554", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15554, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Max-Beer-Str. \/ M\u00fcnzstr.", "Position": { "Longitude": 13.407604, "Latitude": 52.524223 }, "Distance": 111.52046570427, "isOutside": false, "FreeBikes": [{ "Number": "17122", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17122, "objectName": "Max-Beer-Str. \/ M\u00fcnzstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10518 U-Bhf. Weinmeisterstra\u00dfe \/ Neue Sch\u00f6nhauser Stra\u00dfe", "Position": { "Longitude": 13.4060347, "Latitude": 52.5249442 }, "Distance": 114.32248418327, "isOutside": false, "FreeBikes": [{ "Number": "14531", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15145", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15383", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15993", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16551", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17377", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17427", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17498", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10518, "objectName": "U-Bhf. Weinmeisterstra\u00dfe \/ Neue Sch\u00f6nhauser Stra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 8 }, { "Description": "Neue Sch\u00f6nhauser Str. \/ Rosenthaler Str.", "Position": { "Longitude": 13.404363, "Latitude": 52.524757 }, "Distance": 146.74578172148, "isOutside": false, "FreeBikes": [{ "Number": "16591", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16591, "objectName": "Neue Sch\u00f6nhauser Str. \/ Rosenthaler Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Max-Beer-Str. \/ M\u00fcnzstr.", "Position": { "Longitude": 13.4079961743, "Latitude": 52.5245717728 }, "Distance": 151.41216719481, "isOutside": false, "FreeBikes": [{ "Number": "14297", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16060", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14297, "objectName": "Max-Beer-Str. \/ M\u00fcnzstr.", "isStation": false, "isPedelec": false, "totalVehicles": 2 }, { "Description": "Dircksenstr. \/ Rosa-Luxemburg-Str.", "Position": { "Longitude": 13.408483, "Latitude": 52.523163 }, "Distance": 185.60336642604, "isOutside": false, "FreeBikes": [{ "Number": "14416", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14416, "objectName": "Dircksenstr. \/ Rosa-Luxemburg-Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.4069, "Latitude": 52.525536 }, "Distance": 189.40158977122, "isOutside": false, "FreeBikes": [{ "Number": "14783", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14783, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10523 S-Bhf. Hackescher Markt \/ Am Zwirngraben", "Position": { "Longitude": 13.4030038, "Latitude": 52.5230332 }, "Distance": 227.34394122619, "isOutside": false, "FreeBikes": [{ "Number": "14633", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15295", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15731", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16285", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16443", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10523, "objectName": "S-Bhf. Hackescher Markt \/ Am Zwirngraben", "isStation": true, "isPedelec": false, "totalVehicles": 5 }, { "Description": "Gro\u00dfe Pr\u00e4sidentenstr. \/ Hackescher Markt", "Position": { "Longitude": 13.402119, "Latitude": 52.52373 }, "Distance": 265.72122566181, "isOutside": false, "FreeBikes": [{ "Number": "16064", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16064, "objectName": "Gro\u00dfe Pr\u00e4sidentenstr. \/ Hackescher Markt", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "Position": { "Longitude": 13.407303, "Latitude": 52.52626 }, "Distance": 274.39347336178, "isOutside": false, "FreeBikes": [{ "Number": "17280", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17280, "objectName": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "Position": { "Longitude": 13.407287, "Latitude": 52.526363 }, "Distance": 284.97095685917, "isOutside": false, "FreeBikes": [{ "Number": "17302", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17302, "objectName": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "Position": { "Longitude": 13.407528, "Latitude": 52.526318 }, "Distance": 285.5504353734, "isOutside": false, "FreeBikes": [{ "Number": "14054", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14054, "objectName": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "Position": { "Longitude": 13.406441, "Latitude": 52.526554 }, "Distance": 294.60920770032, "isOutside": false, "FreeBikes": [{ "Number": "14423", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14423, "objectName": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "Position": { "Longitude": 13.408423, "Latitude": 52.52617 }, "Distance": 298.1937396494, "isOutside": false, "FreeBikes": [{ "Number": "17220", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17220, "objectName": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "Position": { "Longitude": 13.407474, "Latitude": 52.52648 }, "Distance": 301.26552899265, "isOutside": false, "FreeBikes": [{ "Number": "15885", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15885, "objectName": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "Position": { "Longitude": 13.407657, "Latitude": 52.526447 }, "Distance": 302.07019493069, "isOutside": false, "FreeBikes": [{ "Number": "15894", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15894, "objectName": "Alte Sch\u00f6nhauser Str. \/ Steinstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Gro\u00dfe Pr\u00e4sidentenstr. \/ Hackescher Markt", "Position": { "Longitude": 13.401564, "Latitude": 52.52414 }, "Distance": 303.48447950485, "isOutside": false, "FreeBikes": [{ "Number": "14491", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14491, "objectName": "Gro\u00dfe Pr\u00e4sidentenstr. \/ Hackescher Markt", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Karl-Liebknecht-Str. \/ Rosa-Luxemburg-Str.", "Position": { "Longitude": 13.409417, "Latitude": 52.522034 }, "Distance": 310.09869513406, "isOutside": false, "FreeBikes": [{ "Number": "14017", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14017, "objectName": "Karl-Liebknecht-Str. \/ Rosa-Luxemburg-Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.410554, "Latitude": 52.52328 }, "Distance": 313.82681946848, "isOutside": false, "FreeBikes": [{ "Number": "16445", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16445, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Dircksenstr. \/ Karl-Liebknecht-Str.", "Position": { "Longitude": 13.410526, "Latitude": 52.52291 }, "Distance": 323.798901097, "isOutside": false, "FreeBikes": [{ "Number": "15660", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15660, "objectName": "Dircksenstr. \/ Karl-Liebknecht-Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10524 Memhardtstra\u00dfe \/ Karl-Liebknecht-Stra\u00dfe", "Position": { "Longitude": 13.4113241, "Latitude": 52.523841 }, "Distance": 357.94891622339, "isOutside": false, "FreeBikes": [{ "Number": "14826", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15170", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15545", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10524, "objectName": "Memhardtstra\u00dfe \/ Karl-Liebknecht-Stra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 3 }, { "Description": "Mulackstr. \/ R\u00fcckerstr.", "Position": { "Longitude": 13.406358, "Latitude": 52.52719 }, "Distance": 364.70053812566, "isOutside": false, "FreeBikes": [{ "Number": "17094", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17094, "objectName": "Mulackstr. \/ R\u00fcckerstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.411327, "Latitude": 52.524982 }, "Distance": 377.15142795147, "isOutside": false, "FreeBikes": [{ "Number": "14860", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14860, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Hirtenstr. \/ Rosa-Luxemburg-Str.", "Position": { "Longitude": 13.410969, "Latitude": 52.5259 }, "Distance": 400.12632086846, "isOutside": false, "FreeBikes": [{ "Number": "14641", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14641, "objectName": "Hirtenstr. \/ Rosa-Luxemburg-Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Gormannstr. \/ Mulackstr.", "Position": { "Longitude": 13.40473, "Latitude": 52.527428 }, "Distance": 400.35927977336, "isOutside": false, "FreeBikes": [{ "Number": "15024", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15024, "objectName": "Gormannstr. \/ Mulackstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10529 S+U Bhf. Alexanderplatz \/ Panoramastra\u00dfe", "Position": { "Longitude": 13.4102833, "Latitude": 52.5213 }, "Distance": 408.95489432456, "isOutside": false, "FreeBikes": [{ "Number": "14142", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14195", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14312", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14798", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15436", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15647", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16667", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10529, "objectName": "S+U Bhf. Alexanderplatz \/ Panoramastra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 7 }, { "Description": "10515 Rosenthaler Stra\u00dfe \/ Steinstra\u00dfe", "Position": { "Longitude": 13.4034195, "Latitude": 52.5273105 }, "Distance": 416.85113636192, "isOutside": false, "FreeBikes": [{ "Number": "14410", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14832", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14970", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15091", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15893", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16158", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10515, "objectName": "Rosenthaler Stra\u00dfe \/ Steinstra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 6 }, { "Description": "10531 Spandauer Stra\u00dfe \/ Karl-Liebknecht-Stra\u00dfe ", "Position": { "Longitude": 13.4053293, "Latitude": 52.5199911 }, "Distance": 439.03884387399, "isOutside": false, "FreeBikes": [{ "Number": "16162", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10531, "objectName": "Spandauer Stra\u00dfe \/ Karl-Liebknecht-Stra\u00dfe ", "isStation": true, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Gro\u00dfe Pr\u00e4sidentenstr. \/ Monbijouplatz", "Position": { "Longitude": 13.399745, "Latitude": 52.522854 }, "Distance": 441.614263406, "isOutside": false, "FreeBikes": [{ "Number": "16094", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16094, "objectName": "Gro\u00dfe Pr\u00e4sidentenstr. \/ Monbijouplatz", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.399211, "Latitude": 52.52465 }, "Distance": 468.80673930619, "isOutside": false, "FreeBikes": [{ "Number": "16053", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16053, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10528 Burgstra\u00dfe \/ gg\u00fc. Hausnummer 26 ", "Position": { "Longitude": 13.40057, "Latitude": 52.52105 }, "Distance": 488.11875393915, "isOutside": false, "FreeBikes": [{ "Number": "14031", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14241", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14819", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15134", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15704", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15838", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16290", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16612", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16716", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17321", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10528, "objectName": "Burgstra\u00dfe \/ gg\u00fc. Hausnummer 26 ", "isStation": true, "isPedelec": false, "totalVehicles": 10 }, { "Description": "10516 Linienstra\u00dfe \/ Alte Sch\u00f6nhauser Stra\u00dfe", "Position": { "Longitude": 13.409076, "Latitude": 52.527942 }, "Distance": 492.68056061849, "isOutside": false, "FreeBikes": [{ "Number": "17163", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10516, "objectName": "Linienstra\u00dfe \/ Alte Sch\u00f6nhauser Stra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Gormannstr. \/ Linienstr.", "Position": { "Longitude": 13.404971, "Latitude": 52.528324 }, "Distance": 495.39340936341, "isOutside": false, "FreeBikes": [{ "Number": "17273", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17273, "objectName": "Gormannstr. \/ Linienstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Auguststr. \/ Rosenthaler Str.", "Position": { "Longitude": 13.40271, "Latitude": 52.527924 }, "Distance": 499.20220986802, "isOutside": false, "FreeBikes": [{ "Number": "14535", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14535, "objectName": "Auguststr. \/ Rosenthaler Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Auguststr. \/ Rosenthaler Str.", "Position": { "Longitude": 13.402602, "Latitude": 52.52804 }, "Distance": 514.00969291691, "isOutside": false, "FreeBikes": [{ "Number": "15319", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15319, "objectName": "Auguststr. \/ Rosenthaler Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10522 Monbijouplatz \/ Oranienburger Stra\u00dfe", "Position": { "Longitude": 13.3982885, "Latitude": 52.5236403 }, "Distance": 524.96195812518, "isOutside": false, "FreeBikes": [{ "Number": "14430", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14855", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15966", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16714", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17129", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10522, "objectName": "Monbijouplatz \/ Oranienburger Stra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 5 }, { "Description": "Auguststr. \/ Joachimstr.", "Position": { "Longitude": 13.400603, "Latitude": 52.527634 }, "Distance": 553.11866118538, "isOutside": false, "FreeBikes": [{ "Number": "16199", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16199, "objectName": "Auguststr. \/ Joachimstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Auguststr. \/ Joachimstr.", "Position": { "Longitude": 13.400034, "Latitude": 52.52765 }, "Distance": 580.67729925692, "isOutside": false, "FreeBikes": [{ "Number": "16785", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16785, "objectName": "Auguststr. \/ Joachimstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Gormannstr. \/ Torstr.", "Position": { "Longitude": 13.405468, "Latitude": 52.529167 }, "Distance": 585.13372803924, "isOutside": false, "FreeBikes": [{ "Number": "14790", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14790, "objectName": "Gormannstr. \/ Torstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Bodestr. \/ Friedrichsbr\u00fccke (Spree)", "Position": { "Longitude": 13.399734, "Latitude": 52.520233 }, "Distance": 591.13726377174, "isOutside": false, "FreeBikes": [{ "Number": "15080", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15080, "objectName": "Bodestr. \/ Friedrichsbr\u00fccke (Spree)", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Gro\u00dfe Hamburger Str. \/ Sophienstr.", "Position": { "Longitude": 13.398414, "Latitude": 52.526558 }, "Distance": 593.38016060088, "isOutside": false, "FreeBikes": [{ "Number": "14794", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14794, "objectName": "Gro\u00dfe Hamburger Str. \/ Sophienstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Am Lustgarten \/ Bodestr.", "Position": { "Longitude": 13.399682, "Latitude": 52.52019 }, "Distance": 596.98787079316, "isOutside": false, "FreeBikes": [{ "Number": "14028", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14028, "objectName": "Am Lustgarten \/ Bodestr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.413405, "Latitude": 52.520943 }, "Distance": 598.2826534593, "isOutside": false, "FreeBikes": [{ "Number": "16228", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16228, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Karl-Liebknecht-Str. \/ Wadzeckstr.", "Position": { "Longitude": 13.4144085538, "Latitude": 52.5258991659 }, "Distance": 607.91783644013, "isOutside": false, "FreeBikes": [{ "Number": "16453", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16453, "objectName": "Karl-Liebknecht-Str. \/ Wadzeckstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Rosa-Luxemburg-Str. \/ Torstr.", "Position": { "Longitude": 13.409457, "Latitude": 52.52907 }, "Distance": 618.08932214338, "isOutside": false, "FreeBikes": [{ "Number": "14745", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14745, "objectName": "Rosa-Luxemburg-Str. \/ Torstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.414525, "Latitude": 52.52179 }, "Distance": 621.16613426874, "isOutside": false, "FreeBikes": [{ "Number": "15878", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15878, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Rosa-Luxemburg-Str. \/ Torstr.", "Position": { "Longitude": 13.410029, "Latitude": 52.52895 }, "Distance": 621.55765361962, "isOutside": false, "FreeBikes": [{ "Number": "14687", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14687, "objectName": "Rosa-Luxemburg-Str. \/ Torstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Stra\u00dfburger Str. \/ Torstr.", "Position": { "Longitude": 13.4119316917, "Latitude": 52.5282818309 }, "Distance": 628.3415530403, "isOutside": false, "FreeBikes": [{ "Number": "17190", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17190, "objectName": "Stra\u00dfburger Str. \/ Torstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.415367, "Latitude": 52.524326 }, "Distance": 633.01138578717, "isOutside": false, "FreeBikes": [{ "Number": "16037", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16037, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Karl-Liebknecht-Str. \/ Wadzeckstr.", "Position": { "Longitude": 13.414493, "Latitude": 52.52645 }, "Distance": 637.83199965305, "isOutside": false, "FreeBikes": [{ "Number": "16724", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16724, "objectName": "Karl-Liebknecht-Str. \/ Wadzeckstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.4153385, "Latitude": 52.52244 }, "Distance": 650.50056743722, "isOutside": false, "FreeBikes": [{ "Number": "15344", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15344, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Gustav-B\u00f6\u00df-Str. \/ J\u00fcdenstr.", "Position": { "Longitude": 13.410388, "Latitude": 52.51853 }, "Distance": 667.41201301215, "isOutside": false, "FreeBikes": [{ "Number": "17263", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17263, "objectName": "Gustav-B\u00f6\u00df-Str. \/ J\u00fcdenstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Krausnickstr. \/ Oranienburger Str.", "Position": { "Longitude": 13.3961115, "Latitude": 52.524956 }, "Distance": 681.22546671358, "isOutside": false, "FreeBikes": [{ "Number": "14442", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14442, "objectName": "Krausnickstr. \/ Oranienburger Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10514 Koppenplatz \/ vor Hausnummer 12", "Position": { "Longitude": 13.3978567, "Latitude": 52.5277722 }, "Distance": 699.9589149811, "isOutside": false, "FreeBikes": [{ "Number": "14779", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15164", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16184", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16406", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17294", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10514, "objectName": "Koppenplatz \/ vor Hausnummer 12", "isStation": true, "isPedelec": false, "totalVehicles": 5 }, { "Description": "10530 Alexanderstra\u00dfe \/ Alexa", "Position": { "Longitude": 13.4149342, "Latitude": 52.5205819 }, "Distance": 707.10022693956, "isOutside": false, "FreeBikes": [{ "Number": "15140", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15387", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16528", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16852", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17022", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10530, "objectName": "Alexanderstra\u00dfe \/ Alexa", "isStation": true, "isPedelec": false, "totalVehicles": 5 }, { "Description": "Poststr. \/ Rathausstr.", "Position": { "Longitude": 13.405927, "Latitude": 52.517532 }, "Distance": 709.9140489713, "isOutside": false, "FreeBikes": [{ "Number": "14261", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14261, "objectName": "Poststr. \/ Rathausstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10533 Am Lustgarten \/ Schlossplatz ", "Position": { "Longitude": 13.4005898, "Latitude": 52.5183737 }, "Distance": 717.99728050517, "isOutside": false, "FreeBikes": [{ "Number": "14630", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15112", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16178", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16728", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16747", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10533, "objectName": "Am Lustgarten \/ Schlossplatz ", "isStation": true, "isPedelec": false, "totalVehicles": 5 }, { "Description": "Auguststr. \/ Kleine Hamburger Str.", "Position": { "Longitude": 13.396311, "Latitude": 52.526844 }, "Distance": 733.98541872972, "isOutside": false, "FreeBikes": [{ "Number": "14349", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14349, "objectName": "Auguststr. \/ Kleine Hamburger Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10539 Spandauer Stra\u00dfe \/ Grunerstra\u00dfe", "Position": { "Longitude": 13.4089851, "Latitude": 52.5173765 }, "Distance": 754.07008347661, "isOutside": false, "FreeBikes": [{ "Number": "14193", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14244", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14765", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15514", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16095", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16485", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16771", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17135", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10539, "objectName": "Spandauer Stra\u00dfe \/ Grunerstra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 8 }, { "Description": "10509 U-Bhf. Rosenthaler Platz \/ Weinbergsweg", "Position": { "Longitude": 13.4016978, "Latitude": 52.5303846 }, "Distance": 776.80264812174, "isOutside": false, "FreeBikes": [{ "Number": "14713", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15143", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15958", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16391", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16559", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16878", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16999", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17071", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17174", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10509, "objectName": "U-Bhf. Rosenthaler Platz \/ Weinbergsweg", "isStation": true, "isPedelec": false, "totalVehicles": 9 }, { "Description": "-", "Position": { "Longitude": 13.414935, "Latitude": 52.519333 }, "Distance": 788.87432656228, "isOutside": false, "FreeBikes": [{ "Number": "15753", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15753, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "U-Bhf. Rosenthaler Platz", "Position": { "Longitude": 13.40044, "Latitude": 52.53052 }, "Distance": 826.12078221605, "isOutside": false, "FreeBikes": [{ "Number": "15645", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15645, "objectName": "U-Bhf. Rosenthaler Platz", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Choriner Str. \/ Lottumstr.", "Position": { "Longitude": 13.406347, "Latitude": 52.531567 }, "Distance": 851.00662118579, "isOutside": false, "FreeBikes": [{ "Number": "15489", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15489, "objectName": "Choriner Str. \/ Lottumstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.398553, "Latitude": 52.51751 }, "Distance": 873.86999066397, "isOutside": false, "FreeBikes": [{ "Number": "17415", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17415, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10517 S-Bhf. Oranienburger Stra\u00dfe \/ Tucholskystra\u00dfe ", "Position": { "Longitude": 13.3931467, "Latitude": 52.5248773 }, "Distance": 878.44628718285, "isOutside": false, "FreeBikes": [{ "Number": "14082", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14370", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14674", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14706", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15098", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15158", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15194", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15664", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16301", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16755", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10517, "objectName": "S-Bhf. Oranienburger Stra\u00dfe \/ Tucholskystra\u00dfe ", "isStation": true, "isPedelec": false, "totalVehicles": 10 }, { "Description": "Am Kr\u00f6gel \/ Stralauer Str.", "Position": { "Longitude": 13.409323, "Latitude": 52.516247 }, "Distance": 881.30811200553, "isOutside": false, "FreeBikes": [{ "Number": "14936", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14936, "objectName": "Am Kr\u00f6gel \/ Stralauer Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Ackerstr. \/ Torstr.", "Position": { "Longitude": 13.397145, "Latitude": 52.5298 }, "Distance": 888.66503211291, "isOutside": false, "FreeBikes": [{ "Number": "15466", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15466, "objectName": "Ackerstr. \/ Torstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10224 Prenzlauer Allee \/ Saarbr\u00fccker Stra\u00dfe ", "Position": { "Longitude": 13.416946, "Latitude": 52.5287448 }, "Distance": 912.78100736988, "isOutside": false, "virtStationRadius": 50, "objectId": 10224, "objectName": "Prenzlauer Allee \/ Saarbr\u00fccker Stra\u00dfe ", "isStation": true, "FreeBikes": [], "isPedelec": false, "totalVehicles": 0 }, { "Description": "-", "Position": { "Longitude": 13.41734, "Latitude": 52.519325 }, "Distance": 919.60639228453, "isOutside": false, "FreeBikes": [{ "Number": "15567", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15567, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.419598, "Latitude": 52.52568 }, "Distance": 938.32688928266, "isOutside": false, "FreeBikes": [{ "Number": "16822", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16822, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.419619, "Latitude": 52.525673 }, "Distance": 939.55418219025, "isOutside": false, "FreeBikes": [{ "Number": "15100", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15100, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10519 Mollstra\u00dfe \/ Otto-Braun-Stra\u00dfe ", "Position": { "Longitude": 13.4201002, "Latitude": 52.5247712 }, "Distance": 956.32230086273, "isOutside": false, "FreeBikes": [{ "Number": "14091", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14998", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15494", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15883", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16018", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17304", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10519, "objectName": "Mollstra\u00dfe \/ Otto-Braun-Stra\u00dfe ", "isStation": true, "isPedelec": false, "totalVehicles": 6 }, { "Description": "Klosterstr. \/ Stralauer Str.", "Position": { "Longitude": 13.412107, "Latitude": 52.516132 }, "Distance": 958.11130606682, "isOutside": false, "FreeBikes": [{ "Number": "14593", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14593, "objectName": "Klosterstr. \/ Stralauer Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10220 Fehrbelliner Stra\u00dfe \/ Choriner Stra\u00dfe ", "Position": { "Longitude": 13.40556, "Latitude": 52.53265 }, "Distance": 971.69920919655, "isOutside": false, "FreeBikes": [{ "Number": "14738", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17230", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10220, "objectName": "Fehrbelliner Stra\u00dfe \/ Choriner Stra\u00dfe ", "isStation": true, "isPedelec": false, "totalVehicles": 2 }, { "Description": "-", "Position": { "Longitude": 13.418091, "Latitude": 52.519157 }, "Distance": 972.32324222825, "isOutside": false, "FreeBikes": [{ "Number": "14645", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14645, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Dorotheenstr. \/ Hegelplatz", "Position": { "Longitude": 13.3936825, "Latitude": 52.519405 }, "Distance": 974.70189471566, "isOutside": false, "FreeBikes": [{ "Number": "16111", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16111, "objectName": "Dorotheenstr. \/ Hegelplatz", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.391752, "Latitude": 52.525394 }, "Distance": 980.14565038866, "isOutside": false, "FreeBikes": [{ "Number": "17432", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17432, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Dorotheenstr. \/ Hegelplatz", "Position": { "Longitude": 13.393616, "Latitude": 52.51937 }, "Distance": 980.56326874629, "isOutside": false, "FreeBikes": [{ "Number": "14233", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14233, "objectName": "Dorotheenstr. \/ Hegelplatz", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.391682, "Latitude": 52.52524 }, "Distance": 982.1039611244, "isOutside": false, "FreeBikes": [{ "Number": "16601", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16601, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10538 Schlo\u00dfplatz \/ Schleusenbr\u00fccke ", "Position": { "Longitude": 13.4000856, "Latitude": 52.5157949 }, "Distance": 988.68156275451, "isOutside": false, "FreeBikes": [{ "Number": "14967", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10538, "objectName": "Schlo\u00dfplatz \/ Schleusenbr\u00fccke ", "isStation": true, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Klosterstr. \/ Stralauer Str.", "Position": { "Longitude": 13.4123321401, "Latitude": 52.5158796498 }, "Distance": 989.99475776071, "isOutside": false, "FreeBikes": [{ "Number": "15632", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15632, "objectName": "Klosterstr. \/ Stralauer Str.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Dorotheenstr. \/ Hegelplatz", "Position": { "Longitude": 13.39365, "Latitude": 52.51916 }, "Distance": 990.85842173804, "isOutside": false, "FreeBikes": [{ "Number": "17113", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 17113, "objectName": "Dorotheenstr. \/ Hegelplatz", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10221 U-Bhf. Senefelder Platz \/ Sch\u00f6nhauser Allee ", "Position": { "Longitude": 13.4126812, "Latitude": 52.5318711 }, "Distance": 992.27320265637, "isOutside": false, "FreeBikes": [{ "Number": "14677", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14685", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14774", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15211", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15479", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15735", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16835", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17110", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10221, "objectName": "U-Bhf. Senefelder Platz \/ Sch\u00f6nhauser Allee ", "isStation": true, "isPedelec": false, "totalVehicles": 8 }, { "Description": "Templiner Str. \/ Zionskirchstr.", "Position": { "Longitude": 13.40879, "Latitude": 52.5327 }, "Distance": 994.35360996182, "isOutside": false, "FreeBikes": [{ "Number": "15669", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15669, "objectName": "Templiner Str. \/ Zionskirchstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10511 Tucholskystra\u00dfe \/ Torstra\u00dfe", "Position": { "Longitude": 13.39312, "Latitude": 52.52828 }, "Distance": 999.40088533769, "isOutside": false, "FreeBikes": [{ "Number": "14871", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15849", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15970", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16100", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10511, "objectName": "Tucholskystra\u00dfe \/ Torstra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 4 }, { "Description": "Dorotheenstr. \/ Hegelplatz", "Position": { "Longitude": 13.393291, "Latitude": 52.519276 }, "Distance": 1004.7969720348, "isOutside": false, "FreeBikes": [{ "Number": "15435", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15435, "objectName": "Dorotheenstr. \/ Hegelplatz", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10536 Bebelplatz \/ Neue Wache", "Position": { "Longitude": 13.39522, "Latitude": 52.51759 }, "Distance": 1014.9952991632, "isOutside": false, "FreeBikes": [{ "Number": "14555", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14931", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15169", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15576", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10536, "objectName": "Bebelplatz \/ Neue Wache", "isStation": true, "isPedelec": false, "totalVehicles": 4 }, { "Description": "Georgenstr. \/ Universit\u00e4tsstr.", "Position": { "Longitude": 13.392217, "Latitude": 52.51994 }, "Distance": 1034.1425370325, "isOutside": false, "FreeBikes": [{ "Number": "16683", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16683, "objectName": "Georgenstr. \/ Universit\u00e4tsstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.419971, "Latitude": 52.519978 }, "Distance": 1039.6153800605, "isOutside": false, "FreeBikes": [{ "Number": "14545", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14545, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10507 Weinbergspark \/ Veteranenstra\u00dfe", "Position": { "Longitude": 13.3995813, "Latitude": 52.532452 }, "Distance": 1044.7354209815, "isOutside": false, "virtStationRadius": 50, "objectId": 10507, "objectName": "Weinbergspark \/ Veteranenstra\u00dfe", "isStation": true, "FreeBikes": [], "isPedelec": false, "totalVehicles": 0 }, { "Description": "Georgenstr. \/ Universit\u00e4tsstr.", "Position": { "Longitude": 13.391689, "Latitude": 52.520393 }, "Distance": 1046.6647787716, "isOutside": false, "FreeBikes": [{ "Number": "14702", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 14702, "objectName": "Georgenstr. \/ Universit\u00e4tsstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10543 Fischerinsel \/ M\u00fchlendamm", "Position": { "Longitude": 13.4066141, "Latitude": 52.5144596 }, "Distance": 1052.2425426862, "isOutside": false, "FreeBikes": [{ "Number": "16422", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17411", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10543, "objectName": "Fischerinsel \/ M\u00fchlendamm", "isStation": true, "isPedelec": false, "totalVehicles": 2 }, { "Description": "Alexanderstr. \/ Voltairestr.", "Position": { "Longitude": 13.418735, "Latitude": 52.51807 }, "Distance": 1077.4720495801, "isOutside": false, "FreeBikes": [{ "Number": "15814", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15814, "objectName": "Alexanderstr. \/ Voltairestr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.417174, "Latitude": 52.53094 }, "Distance": 1085.2908759826, "isOutside": false, "FreeBikes": [{ "Number": "15595", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15595, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Breite Str. \/ Scharrenstr.", "Position": { "Longitude": 13.4054575, "Latitude": 52.5141 }, "Distance": 1092.19615091, "isOutside": false, "FreeBikes": [{ "Number": "15875", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15875, "objectName": "Breite Str. \/ Scharrenstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.390178, "Latitude": 52.526516 }, "Distance": 1111.0154681095, "isOutside": false, "FreeBikes": [{ "Number": "15360", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15360, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "-", "Position": { "Longitude": 13.390086, "Latitude": 52.52676 }, "Distance": 1124.3507921032, "isOutside": false, "FreeBikes": [{ "Number": "15122", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 15122, "objectName": "-", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "10527 Grimmzentrum \/ Planckstra\u00dfe", "Position": { "Longitude": 13.390435, "Latitude": 52.5202262 }, "Distance": 1132.3773511254, "isOutside": false, "FreeBikes": [{ "Number": "14316", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "14344", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15131", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15552", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15725", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "15989", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "16389", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }, { "Number": "17069", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "virtStationRadius": 50, "objectId": 10527, "objectName": "Grimmzentrum \/ Planckstra\u00dfe", "isStation": true, "isPedelec": false, "totalVehicles": 8 }, { "Description": "Br\u00fcderstr. \/ Scharrenstr.", "Position": { "Longitude": 13.403525, "Latitude": 52.513832 }, "Distance": 1134.0833088353, "isOutside": false, "FreeBikes": [{ "Number": "16473", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16473, "objectName": "Br\u00fcderstr. \/ Scharrenstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }, { "Description": "Br\u00fcderstr. \/ Scharrenstr.", "Position": { "Longitude": 13.403568, "Latitude": 52.513752 }, "Distance": 1142.4507434323, "isOutside": false, "FreeBikes": [{ "Number": "16762", "canBeRented": true, "canBeReturned": false, "Version": 5, "MarkeID": 3914, "MarkeName": "LIDL-BIKE", "isPedelec": false }], "objectId": 16762, "objectName": "Br\u00fcderstr. \/ Scharrenstr.", "isStation": false, "isPedelec": false, "totalVehicles": 1 }] } } }


You only really need to POST to https://www.callabike-interaktiv.de/rpc with payload similar to {"method":"Map.listBikes","params":[{"lat":"52.519444","long":"13.406667","maxItems":100,"radius":1000000}],"id":1491583441141} (You can test with Postman or a similar REST client). maxItems seems to be 100, lat and long seem to be required.

The Lidl Bike "Rückgabezone" (stations) are broken on the website. Right now it mixes bikes and stations together as one data type. The app is better, I will look into this shortly.

Can someone describe how the old website worked? From looking at the file you could call one URL to get ALL stations of a city, that contained a list of the bikes. Correct?

PS: DB Rent GmbH is now also known as Deutsche Bahn Connect GmbH https://www.callabike-interaktiv.de/de/impressum

janpio commented 7 years ago

The mobile app uses two totally different APIs. One for bikes and one for "Rückgabezonen" (stations).

1) To get bikes POST to https://xml.dbcarsharing-buchung.de/hal2_cabserver/hal2_cabserver_3.php with headers

SOAPAction = https://xml.dbcarsharing-buchung.de/hal2_cabserver/CABSERVER.listFreeBikes
Content-Type = text/xml; charset=utf-8

and payload

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="https://xml.dbcarsharing-buchung.de/hal2_cabserver/"><soap:Body><CABSERVER.listFreeBikes><CommonParams><UserData><User>t_h2a_lidl_ios</User><Password>Br71cR@2xp</Password></UserData><LanguageUID>1</LanguageUID><RequestTime>2017-04-07T18:57:33.GMT+02:00</RequestTime><Version>2</Version></CommonParams><SearchPosition><Longitude>13.405459</Longitude><Latitude>52.530190</Latitude></SearchPosition><maxResults>100</maxResults><searchRadius>392</searchRadius></CABSERVER.listFreeBikes></soap:Body></soap:Envelope>

This returns this nice XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <SOAP-ENV:Body>
        <CABSERVER.listFreeBikesResponse xmlns="http://schemas.xmlsoap.org/soap/envelope/">
            <CABSERVER.listFreeBikesResponse>
                <Locations xmlns="">
                    <Description xmlns="">Gormannstr. / Torstr.</Description>
                    <Position xmlns="">
                        <Longitude xmlns="">13.405468000000000</Longitude>
                        <Latitude xmlns="">52.529167000000000</Latitude>
                    </Position>
                    <Distance xmlns="">113.75405315270646</Distance>
                    <isOutside xmlns="">false</isOutside>
                    <FreeBikes xmlns="">
                        <Number xmlns="">14790</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                </Locations>
                <Locations xmlns="">
                    <Description xmlns="">Choriner Str. / Lottumstr.</Description>
                    <Position xmlns="">
                        <Longitude xmlns="">13.406347000000000</Longitude>
                        <Latitude xmlns="">52.531567000000000</Latitude>
                    </Position>
                    <Distance xmlns="">164.4762791914432</Distance>
                    <isOutside xmlns="">false</isOutside>
                    <FreeBikes xmlns="">
                        <Number xmlns="">15489</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                </Locations>
                <Locations xmlns="">
                    <Description xmlns="">Gormannstr. / Linienstr.</Description>
                    <Position xmlns="">
                        <Longitude xmlns="">13.404971000000000</Longitude>
                        <Latitude xmlns="">52.528324000000000</Latitude>
                    </Position>
                    <Distance xmlns="">210.09937368936966</Distance>
                    <isOutside xmlns="">false</isOutside>
                    <FreeBikes xmlns="">
                        <Number xmlns="">17273</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                </Locations>
                <Locations xmlns="">
                    <Description xmlns="">10509 U-Bhf. Rosenthaler Platz / Weinbergsweg</Description>
                    <Position xmlns="">
                        <Longitude xmlns="">13.401697800000000</Longitude>
                        <Latitude xmlns="">52.530384600000000</Latitude>
                    </Position>
                    <Distance xmlns="">255.34318535008654</Distance>
                    <isOutside xmlns="">false</isOutside>
                    <FreeBikes xmlns="">
                        <Number xmlns="">14713</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                    <FreeBikes xmlns="">
                        <Number xmlns="">15143</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                    <FreeBikes xmlns="">
                        <Number xmlns="">15958</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                    <FreeBikes xmlns="">
                        <Number xmlns="">16391</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                    <FreeBikes xmlns="">
                        <Number xmlns="">16559</Number>
                        <canBeRented xmlns="">true</canBeRented>
                        <canBeReturned xmlns="">false</canBeReturned>
                        <Version xmlns="">5</Version>
                        <MarkeID xmlns="">3914</MarkeID>
                        <MarkeName xmlns="">LIDL-BIKE</MarkeName>
                        <isPedelec xmlns="">false</isPedelec>
                    </FreeBikes>
                    ...
            </CABSERVER.listFreeBikesResponse>
        </CABSERVER.listFreeBikesResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

(Could be the same service as the website as this is also limited to 100 results...)

  1. To get the "Rückgabezonen"(stations) you GET from https://mobility.2denker.de/zones?lat=52.530193&lon=13.405443&dist=784&tags=call-a-bike with header Authorization with value Basic bW9iaWxpdHk6MmRtb2JpbGl0eQ==.

Here you get this nice JSON:

[
  {
    "id": "8799dba2-a8e0-41de-b2f0-b16781201c26",
    "name": "call-a-bike berlin",
    "tags": [
      "call-a-bike"
    ],
    "location": {
      "coordinates": [
        [
          [
            13.3661247,
            52.5430285
          ],
          [
            13.3659745,
            52.5429388
          ],
          [
            13.3658244,
            52.5430236
          ],
          [
            13.3652598,
            52.5426598
          ],
          [
            13.3657935,
            52.5423091
          ],
          [
            13.3580017,
            52.5388311
          ],
          [
            13.3562851,
            52.538022
          ],
          [
            13.3555126,
            52.5376957
          ],
          [
            13.3539891,
            52.5373302
          ],
          [
            13.3519506,
            52.5371736
          ],
          [
            13.343668,
            52.536273
          ],
          [
            13.3333683,
            52.5350462
          ],
          [
            13.3283794,
            52.534511
          ],
          [
            13.3267915,
            52.5342434
          ],
          ...
        ]
      ],
      "type": "Polygon"
    }
  }
]

Somehow this is combined in the app to display the "free" bikes and the ones that are "in a station" differently.

eskerda commented 7 years ago

To get the "Rückgabezonen"(stations) you GET from https://mobility.2denker.de/zones?lat=52.530193&lon=13.405443&dist=784&tags=call-a-bike with header Authorization with value Basic bW9iaWxpdHk6MmRtb2JpbGl0eQ==. Here you get this nice JSON:

The part inside location looks like a geojson defining the boundaries of the system, see:

{ "coordinates": [ [ [ 13.3661247, 52.5430285 ], [ 13.3659745, 52.5429388 ], [ 13.3658244, 52.5430236 ], [ 13.3652598, 52.5426598 ], [ 13.3657935, 52.5423091 ], [ 13.3580017, 52.5388311 ], [ 13.3562851, 52.538022 ], [ 13.3555126, 52.5376957 ], [ 13.3539891, 52.5373302 ], [ 13.3519506, 52.5371736 ], [ 13.343668, 52.536273 ], [ 13.3333683, 52.5350462 ], [ 13.3283794, 52.534511 ], [ 13.3267915, 52.5342434 ], [ 13.322382, 52.5335843 ], [ 13.3209872, 52.5334015 ], [ 13.2960749, 52.5300599 ], [ 13.2901096, 52.5292767 ], [ 13.2869768, 52.5288068 ], [ 13.2847881, 52.5281541 ], [ 13.2835007, 52.5273316 ], [ 13.2830071, 52.5266789 ], [ 13.2827497, 52.5259478 ], [ 13.2827067, 52.5241071 ], [ 13.2826853, 52.523389 ], [ 13.2834363, 52.5186104 ], [ 13.2839084, 52.5176964 ], [ 13.2846594, 52.5162339 ], [ 13.2852388, 52.5148628 ], [ 13.2856679, 52.5129824 ], [ 13.2855821, 52.5115068 ], [ 13.2854104, 52.5109452 ], [ 13.2850885, 52.5103706 ], [ 13.2839084, 52.5087381 ], [ 13.2828945, 52.5074876 ], [ 13.2822454, 52.5069652 ], [ 13.2818537, 52.5065603 ], [ 13.2817894, 52.5063318 ], [ 13.2820093, 52.5053816 ], [ 13.2819342, 52.5044738 ], [ 13.2823634, 52.5023644 ], [ 13.2829642, 52.5013585 ], [ 13.2847667, 52.4995037 ], [ 13.2876635, 52.4975965 ], [ 13.2886291, 52.4969433 ], [ 13.2895517, 52.4962771 ], [ 13.3004093, 52.4880854 ], [ 13.3062029, 52.4838779 ], [ 13.3088207, 52.4819962 ], [ 13.3116102, 52.4799575 ], [ 13.3126616, 52.4793041 ], [ 13.3148932, 52.4785592 ], [ 13.3178973, 52.4779057 ], [ 13.3219099, 52.4777358 ], [ 13.3289909, 52.4776312 ], [ 13.3337331, 52.4776443 ], [ 13.336544, 52.4776051 ], [ 13.3410663, 52.4776737 ], [ 13.3441294, 52.4778665 ], [ 13.3463126, 52.4779743 ], [ 13.3523154, 52.4791995 ], [ 13.3541179, 52.4795393 ], [ 13.3562851, 52.4797223 ], [ 13.3580875, 52.4796569 ], [ 13.3598042, 52.4792257 ], [ 13.3612204, 52.4787029 ], [ 13.3622503, 52.4782194 ], [ 13.3632803, 52.4776574 ], [ 13.3637309, 52.4772914 ], [ 13.3636236, 52.4766641 ], [ 13.3635163, 52.4763766 ], [ 13.3632374, 52.4760498 ], [ 13.3627331, 52.4755597 ], [ 13.3623844, 52.4751676 ], [ 13.3641601, 52.4747036 ], [ 13.3658552, 52.4742331 ], [ 13.3665633, 52.4733835 ], [ 13.3672071, 52.4728215 ], [ 13.3681726, 52.4722725 ], [ 13.3689934, 52.4718444 ], [ 13.3696103, 52.4716288 ], [ 13.3704418, 52.4714229 ], [ 13.3710641, 52.4713151 ], [ 13.3720618, 52.4712464 ], [ 13.3727646, 52.4712301 ], [ 13.3786011, 52.4707955 ], [ 13.3804679, 52.4707693 ], [ 13.3832359, 52.4707301 ], [ 13.3846736, 52.4705602 ], [ 13.3863688, 52.4702334 ], [ 13.3892441, 52.469606 ], [ 13.3920121, 52.468704 ], [ 13.3946729, 52.4675668 ], [ 13.3981276, 52.4662726 ], [ 13.4014964, 52.4653967 ], [ 13.4046507, 52.4648215 ], [ 13.405509, 52.4647692 ], [ 13.4072471, 52.4647561 ], [ 13.4098005, 52.4649 ], [ 13.4139419, 52.4652791 ], [ 13.4209585, 52.4658543 ], [ 13.4228039, 52.4661157 ], [ 13.4276533, 52.4667824 ], [ 13.429327, 52.4670831 ], [ 13.4329963, 52.4676452 ], [ 13.4361076, 52.4680766 ], [ 13.4387684, 52.4684426 ], [ 13.4428883, 52.4690439 ], [ 13.4443688, 52.4693707 ], [ 13.4471369, 52.4698413 ], [ 13.4494758, 52.4701419 ], [ 13.4525228, 52.4706386 ], [ 13.453424, 52.4709001 ], [ 13.4544969, 52.4716059 ], [ 13.4556985, 52.4725862 ], [ 13.4564495, 52.4732267 ], [ 13.4566212, 52.4735927 ], [ 13.4569216, 52.4746121 ], [ 13.4578443, 52.479095 ], [ 13.4591746, 52.4867526 ], [ 13.4596896, 52.4889347 ], [ 13.4603119, 52.4910121 ], [ 13.4607625, 52.491992 ], [ 13.4611917, 52.4926191 ], [ 13.4629726, 52.494409 ], [ 13.4659767, 52.4967866 ], [ 13.4676504, 52.4982497 ], [ 13.4685087, 52.5001046 ], [ 13.4698391, 52.5032918 ], [ 13.4701395, 52.5040493 ], [ 13.4713411, 52.5054077 ], [ 13.4748173, 52.5089601 ], [ 13.4758043, 52.5100833 ], [ 13.475976, 52.511128 ], [ 13.4757614, 52.5120422 ], [ 13.4754395, 52.5134819 ], [ 13.4767485, 52.5133579 ], [ 13.4777999, 52.5146016 ], [ 13.4745919, 52.5154831 ], [ 13.4711695, 52.5204514 ], [ 13.4706008, 52.5213196 ], [ 13.4702468, 52.5218158 ], [ 13.4697426, 52.5223184 ], [ 13.4692168, 52.5227101 ], [ 13.4682512, 52.5231801 ], [ 13.4670281, 52.5235783 ], [ 13.464818, 52.524094 ], [ 13.4628224, 52.524453 ], [ 13.4598184, 52.5254191 ], [ 13.4588528, 52.5258826 ], [ 13.458209, 52.5263264 ], [ 13.4559131, 52.5286371 ], [ 13.4542394, 52.5302166 ], [ 13.4513426, 52.5330752 ], [ 13.4482527, 52.5361817 ], [ 13.4474158, 52.536756 ], [ 13.4462142, 52.5374346 ], [ 13.4445405, 52.5381394 ], [ 13.4429741, 52.5387137 ], [ 13.441, 52.5394837 ], [ 13.4385109, 52.5405799 ], [ 13.4369659, 52.5411803 ], [ 13.4335327, 52.5424331 ], [ 13.4323525, 52.5428246 ], [ 13.4308505, 52.5432291 ], [ 13.4298635, 52.5434771 ], [ 13.4284472, 52.5439729 ], [ 13.4271598, 52.5444949 ], [ 13.4253144, 52.5451996 ], [ 13.4234905, 52.5461 ], [ 13.4216452, 52.5471569 ], [ 13.4206367, 52.5476528 ], [ 13.4197354, 52.5479659 ], [ 13.4184051, 52.5483965 ], [ 13.4162807, 52.549137 ], [ 13.4163773, 52.5492903 ], [ 13.4156048, 52.549597 ], [ 13.4145319, 52.5497469 ], [ 13.4144301, 52.5494632 ], [ 13.4123433, 52.54961 ], [ 13.4101546, 52.5497535 ], [ 13.4084487, 52.5497666 ], [ 13.4048223, 52.5496035 ], [ 13.4023869, 52.5495056 ], [ 13.3914328, 52.5494012 ], [ 13.387565, 52.5493066 ], [ 13.3844054, 52.5486868 ], [ 13.3804142, 52.5480638 ], [ 13.3777535, 52.5473657 ], [ 13.3756936, 52.5465436 ], [ 13.3668691, 52.5427936 ], [ 13.366456, 52.5430301 ], [ 13.3662898, 52.5429306 ], [ 13.3661247, 52.5430285 ] ] ], "type": "Polygon" }

Click details for the data, can be tested at http://geojsonlint.com

image

Found a couple of interesting fields on their app:

  private static final double BERLIN_FERNSEHTURM_LAT = 52.52093D;
  private static final double BERLIN_FERNSEHTURM_LONG = 13.409723D;
  private static final int BERLIN_RADIUS_IN_M = 25000;
  private static final int CAB_MARKER_ID = 1312;
  private static final int KONRAD_MARKER_ID = 1768;
  private static final int LIDLBIKE_MARKER_ID = 3914;
  private static final int STADTRADHH_MARKER_ID = 1672;
...

      Log.d("markerId", "MARKERID " + paramSoapObject);
      switch (Integer.valueOf(paramSoapObject).intValue())
      {
      default: 
        return CABServiceHelper.STATION_FLAVOR.CALLABIKE;
      case 1312: 
        return CABServiceHelper.STATION_FLAVOR.CALLABIKE;
      case 1672: 
        return CABServiceHelper.STATION_FLAVOR.STADTRADHH;
      case 1768: 
        return CABServiceHelper.STATION_FLAVOR.KONRAD;
      }
      return CABServiceHelper.STATION_FLAVOR.LIDLBIKE;
    }
    return CABServiceHelper.STATION_FLAVOR.STADTRADHH;

Also (I might be wrong on this), differentiation between station and bike is checking for the virtStationRadius field, and defaulting always to STATION_FLAVOR.LIDLBIKE. From the following interpreted gibberish:

super.readFromResponse(paramSoapObject);
    Log.d("cab", "rentlocation " + paramSoapObject.toString());
    Object localObject = new float[2];
    Location.distanceBetween(52.52093D, 13.409723D, this.posLat, this.posLong, (float[])localObject);
    if (localObject[0] < 25000.0F) {
      this.locationFlavor = CABServiceHelper.STATION_FLAVOR.LIDLBIKE;
    }
    this.freeBikes = new ArrayList(0);
    localObject = paramSoapObject.getPropertyList("FreeBikes").iterator();
    while (((Iterator)localObject).hasNext())
    {
      SoapObject localSoapObject = (SoapObject)((Iterator)localObject).next();
      this.freeBikes.add(new Bike(localSoapObject));
      if (this.locationFlavor == null) {
        this.locationFlavor = extractMarkerIdFromSoap(localSoapObject);
      }
      Log.d("cab", "rent flavor " + this.locationFlavor);
    }
    if ((SoapPrimitive)paramSoapObject.getPropertyOrNull("virtStationRadius") != null) {}
    for (boolean bool = true;; bool = false)
    {
      this.isReturnLocation = bool;
      return;
    }

Good thing about this, we can use the web services and not the private app endpoints, and still understand the data based on the assumptions from the app.

There are other SOAP actions available and 'documented' at https://xml.dbcarsharing-buchung.de/hal2_cabserver/hal2_cabserver_3.php

eskerda commented 7 years ago

The Lidl Bike "Rückgabezone" (stations) are broken on the website. Right now it mixes bikes and stations together as one data type. The app is better, I will look into this shortly.

See previous comment on app

Can someone describe how the old website worked? From looking at the file you could call one URL to get ALL stations of a city, that contained a list of the bikes. Correct?

Correct.

jlwin commented 7 years ago

Hey guys, thanks a lot for looking into this!

I think finding a solution with the "callabike-interaktiv.de" domain instead of the "lidl-bike.de" domain to ensure to fix this problem for all german stations sustainably would be the best solution. (Since we don't know how long Lidl will be "sponsoring" the call a bikes in Berlin.)

I assume the old version of the website was also returning a list of all the station. You can see the returned code on citybik.es: https://api.citybik.es/v2/networks/stadtrad?fields=stations with the outdated timestamp from 22.02.2017.

autumnus commented 7 years ago

Hello. I added a pull request for this issue a few days ago. Please have a look.

jlwin commented 7 years ago

additional info: I just found these sites that also provide the information about the available bikes per station for Hamburg:

http://suche.transparenz.hamburg.de/dataset/stadtrad-stationen-hamburg3 (not realtime)

http://metaver.de/kartendienste;jsessionid=4FF19C92E1F37074CF53445289B20B65?lang=en&topic=anbieter&bgLayer=webatlasde_light&layers=WMS||StadtRAD-Stationen||https://geodienste.hamburg.de/HH_WMS_Stadtrad?||stadtrad_stationen||1.3.0||true&X=5848892.01&Y=532671.48&zoom=3

http://www.geoportal-hamburg.de/Geoportal/geo-online/?mdid=D18F375E-FA5F-4998-AFF8-557969F44479

erAck commented 7 years ago

Please note that return zones exist only in selected cities (e.g. Berlin, Munich, Cologne) of the Call-a-Bike system. In most cities, specifically Hamburg StadtRAD for example, bikes can only be returned at fixed stations.

eskerda commented 7 years ago

Changed the name of the issue to reflect the update by https://github.com/eskerda/pybikes/pull/246#discussion_r119306174

swoker 2 days ago Hi, I'm from the IT of Deutsche Bahn Connect who's the operator of Call a Bike. Feel free to use our Open Data API directly! That is probably way easier than parsing our website :) http://data.deutschebahn.com/dataset/flinkster-api

Have fun and feel free to contact me for further questions!

janpio commented 7 years ago

Now the question is: How does one most easily get the required data?

Docs are here: https://developer.deutschebahn.com/store/apis/info?name=Flinkster_API_NG&version=v1&provider=DBOpenData https://s3.eu-central-1.amazonaws.com/download-data.deutschebahn.com/static/apis/flinkster/Schnittstellenspezifikation_FlinksterApiNG.pdf (German only)

eskerda commented 7 years ago

on it :)

eskerda commented 7 years ago

index of networks (paginates)

curl --header "Authorization: Bearer <API TOKEN>" https://api.deutschebahn.com/flinkster-api-ng/v1/areas\?providernetwork\=2\&limit\=10 | json_reformat | less
{
    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas?providernetwork=2&limit=10",
    "offset": 0,
    "limit": 10,
    "size": 781,
    "items": [
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A",
            "uid": "0015564117E946653C8EA4DCF6C8C288A789782A",
            "name": "Niddastraße / Weserstraße",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
            },
            "providerAreaId": 272652000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        8.66734,
                        50.11095
                    ]
                }
            },
            "address": {
                "street": "Niddastraße",
                "zip": 60329,
                "city": "Frankfurt am Main",
                "district": "Bahnhofsviertel"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/00CDE3D431E2F159047EA62E75CF557243E29F0A",
            "uid": "00CDE3D431E2F159047EA62E75CF557243E29F0A",
            "name": "DB Schenker / HOLM",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
            },
            "providerAreaId": 230666000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        8.591024,
                        50.05634
                    ]
                }
            },
            "address": {
                "street": "DB Schenker",
                "zip": 60000,
                "city": "Flugh. Frankfurt",
                "district": "Innenstadt"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/00CDE3D431E2F159047EA62E75CF557243E29F0A"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/00F5FD38BF09E55554B39115D674BEFD4CE9B601",
            "uid": "00F5FD38BF09E55554B39115D674BEFD4CE9B601",
            "name": "Messehallen / Marktstraße",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/stadtrad_hamburg"
            },
            "providerAreaId": 131888000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        9.975346,
                        53.558518
                    ]
                }
            },
            "address": {
                "street": "Messehallen",
                "zip": 22767,
                "city": "Hamburg",
                "district": "Innenstadt"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/00F5FD38BF09E55554B39115D674BEFD4CE9B601"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/021B5A9CEFE1DEC1AD5701584456DEAB29020530",
            "uid": "021B5A9CEFE1DEC1AD5701584456DEAB29020530",
            "name": "Überseering/Mexikoring",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/stadtrad_hamburg"
            },
            "providerAreaId": 213687000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        10.024745,
                        53.601619
                    ]
                }
            },
            "address": {
                "street": "Überseering",
                "zip": 22297,
                "city": "Hamburg",
                "district": "Winterhude"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/021B5A9CEFE1DEC1AD5701584456DEAB29020530"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/02710A933A00B819018B039694F2ABE2BF55B292",
            "uid": "02710A933A00B819018B039694F2ABE2BF55B292",
            "name": "7250 Pragsattel",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
            },
            "providerAreaId": 208768000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        9.182408,
                        48.810089
                    ]
                }
            },
            "address": {
                "street": "Pragsattel",
                "zip": 70673,
                "city": "Stuttgart",
                "district": "Feuerbach"
            },
            "rentalObjectTypes": [
                "bike",
                "pedelec"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/02710A933A00B819018B039694F2ABE2BF55B292"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/02FC62AD0AEF4659BEB64E12A9C06DDF9B9ED6FB",
            "uid": "02FC62AD0AEF4659BEB64E12A9C06DDF9B9ED6FB",
            "name": "Goebenstraße/Eppendorfer Weg",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/stadtrad_hamburg"
            },
            "providerAreaId": 131641000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        9.963063,
                        53.577579
                    ]
                }
            },
            "address": {
                "street": "Goebenstraße",
                "zip": 20253,
                "city": "Hamburg",
                "district": "Innenstadt"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/02FC62AD0AEF4659BEB64E12A9C06DDF9B9ED6FB"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/033BC555BB22CC36381010F8B6B83957B97A5E2F",
            "uid": "033BC555BB22CC36381010F8B6B83957B97A5E2F",
            "name": "Heidelberger Straße 49",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
            },
            "providerAreaId": 245490000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        8.64694,
                        49.862313
                    ]
                }
            },
            "address": {
                "street": "Heidelberger Straße",
                "zip": 64000,
                "city": "Darmstadt",
                "district": "Innenstadt"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/033BC555BB22CC36381010F8B6B83957B97A5E2F"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0361C28D7154AA72CAD6BD792695F6B88900C4C7",
            "uid": "0361C28D7154AA72CAD6BD792695F6B88900C4C7",
            "name": "Herthastraße / Einkaufszentrum Bramfeld",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/stadtrad_hamburg"
            },
            "providerAreaId": 243620000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        10.075913,
                        53.611878
                    ]
                }
            },
            "address": {
                "street": "Herthastraße",
                "zip": 22179,
                "city": "Hamburg",
                "district": "Wandsbek"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0361C28D7154AA72CAD6BD792695F6B88900C4C7"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/042E0036F4C3053249A048E81EDB2E51F434E53A",
            "uid": "042E0036F4C3053249A048E81EDB2E51F434E53A",
            "name": "Koppelstraße/Lokstedter Grenzstraße",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/stadtrad_hamburg"
            },
            "providerAreaId": 213792000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        9.943525,
                        53.593587
                    ]
                }
            },
            "address": {
                "street": "Koppelstraße",
                "zip": 22527,
                "city": "Hamburg",
                "district": "Stellingen"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/042E0036F4C3053249A048E81EDB2E51F434E53A"
                }
            ]
        },
        {
            "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/049AEDF4C22DE432E1C76EE2C8685A337DB484D0",
            "uid": "049AEDF4C22DE432E1C76EE2C8685A337DB484D0",
            "name": "Eschersheimer Landstraße / Grüneburgweg",
            "expand": "provider",
            "provider": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
            },
            "providerAreaId": 227484000,
            "providerNetworkIds": [
                2
            ],
            "type": "station",
            "geometry": {
                "position": {
                    "type": "Point",
                    "coordinates": [
                        8.675602,
                        50.121755
                    ]
                }
            },
            "address": {
                "street": "Eschersheimer Landstraße",
                "zip": 60000,
                "city": "Frankfurt am Main",
                "district": "Innenstadt"
            },
            "rentalObjectTypes": [
                "bike"
            ],
            "_links": [
                {
                    "rel": "self",
                    "verb": "GET",
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/049AEDF4C22DE432E1C76EE2C8685A337DB484D0"
                }
            ]
        }
    ]
}
eskerda commented 7 years ago

Info about a network, note the expand to avoid having to call each object

curl --header "Authorization: Bearer <API TOKEN>" https://api.deutschebahn.com/flinkster-api-ng/v1/bookingproposals\?providernetwork\=2\&lat\=50.11095\&lon\=8.66734\&expand\=rentalobject\&limit\=10 | json_reformat
{
    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/bookingproposals?providernetwork=2&lat=50.11095&lon=8.66734&expand=rentalobject&limit=10",
    "offset": 0,
    "limit": 10,
    "size": 118,
    "items": [
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/7CFC3138B71C7CFDE11A74E97C9F315F767F0470",
                "uid": "7CFC3138B71C7CFDE11A74E97C9F315F767F0470",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 165186,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 11691
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=11691&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/5883C4AE83BF6E562CF14BBDC1F79D42035DE680",
                "uid": "5883C4AE83BF6E562CF14BBDC1F79D42035DE680",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 165202,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 11707
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=11707&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/1E1BA83BC850B59D178FB1A855382D10F7A2F975",
                "uid": "1E1BA83BC850B59D178FB1A855382D10F7A2F975",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 163544,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 10050
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=10050&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/A054211033FF35529AF069422C8DC317B2337FBD",
                "uid": "A054211033FF35529AF069422C8DC317B2337FBD",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 163538,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 10044
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=10044&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/FBE444587734D250B44F82009E3F9CD4CB4A7425",
                "uid": "FBE444587734D250B44F82009E3F9CD4CB4A7425",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 165206,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 11711
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=11711&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/8D884741780E34927B9E16E3850D9635C593A62A",
                "uid": "8D884741780E34927B9E16E3850D9635C593A62A",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 163561,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 10067
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=10067&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/E61B20ECEF95029D545EA460E3E94FB43C6CC6F1",
                "uid": "E61B20ECEF95029D545EA460E3E94FB43C6CC6F1",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 163673,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 10179
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=10179&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/D331C48AD99E20158BF167B45882783E5C13CF1F",
                "uid": "D331C48AD99E20158BF167B45882783E5C13CF1F",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 164306,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 10812
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=10812&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/5D45A98C11EDD129FB704E99C2AE82D16D030659",
                "uid": "5D45A98C11EDD129FB704E99C2AE82D16D030659",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 165357,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 11862
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=11862&commissionPartner=dbnavigator"
                }
            ]
        },
        {
            "expand": "area,rentalobject,price",
            "rentalObject": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/rentalobjects/14A312E821FA93A9207189A0B19EEC2E9F3FABC0",
                "uid": "14A312E821FA93A9207189A0B19EEC2E9F3FABC0",
                "name": "Fahrrad",
                "description": "Fahrrad",
                "providerRentalObjectId": 163727,
                "rentalModel": "freefloatingWithStation",
                "type": "bike",
                "provider": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providers/call_a_bike"
                },
                "category": {
                    "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/categories/50000"
                },
                "attributes": {
                    "licenseplate": 10233
                },
                "equipment": null
            },
            "area": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/areas/0015564117E946653C8EA4DCF6C8C288A789782A"
            },
            "position": {
                "type": "Point",
                "coordinates": [
                    8.66734,
                    50.11095
                ]
            },
            "distance": 0.0,
            "price": {
                "href": "https://api.deutschebahn.com/flinkster-api-ng/v1/providernetworks/2/prices?provider=call_a_bike&category=50000"
            },
            "_links": [
                {
                    "rel": "AppBookingLink",
                    "verb": "GET",
                    "href": "callabike://rentbike?bike=10233&commissionPartner=dbnavigator"
                }
            ]
        }
    ],
    "_links": [
        {
            "rel": "AppleAppStore",
            "verb": "GET",
            "href": "https://itunes.apple.com/de/app/call-a-bike/id420360589"
        },
        {
            "rel": "GooglePlayStore",
            "verb": "GET",
            "href": "https://play.google.com/store/apps/details?id=de.bahn.callabike&hl=de"
        }
    ]
}
eskerda commented 7 years ago

Actually, I see no clear way (yet) to get a list of services. After paginating through all resources on /areas and generating a geojson, this is the result: https://gist.github.com/eskerda/29eb7eec27fb662a2eb81c9d365e0ba7

The idea is to get all relevant lat/lngs to generate a list of services. Resources on /areas produce either station or operationarea. Is this the right way to get all call-a-bike services on the system? Maybe we need a little help @swoker

Thanks!

swoker commented 7 years ago

@eskerda Looks good so far, even though I'm surprised that we have operationareas in Mannheim and other cities.

We do have different systems all over Germany. Currently we have these 3 major systems:

The last system is not yet fully included in the APIng, which is probably how the confusion started :/

janpio commented 7 years ago

As a user of the Lidlbike app in Berlin I can confirm the confusion with the non marked stations (temporarily also missing from the app).

graphcon commented 7 years ago

Hi all,

I'm new to this project but I would like to help you integrate this new Flinkster API to pybikes. I forked the project, and now I'm not sure where and how to start. Can you give me some hints on what to do, now @eskerda ? How can I help best?

Yours Graphity

erAck commented 6 years ago

So will this eventually be fixed or did it run into a dead end?