Vélib’ is a bike-renting service in Paris, France. For a small fee, users can take a bike at one of the stations then put it back at another one. At the time of this writing, there are 1000+ stations in Paris and its suburbs.

The city of Paris has an open-data website with a dataset that lists bikes availability for all the stations in near-real-time (updated every minute). That dataset is released under the Etalab Open Licence 1.0.

The only way to get that data is in (near-)real-time; there’s no compilation of it over e.g. the last month. The dataset on this page is a response to that.

Production

This present dataset was produced by repeatedly pulling the aforementioned endpoint every minute for 6 months, between June and November 2017. The program is still running, so I might add more data here in the future.

Format

The dataset lies in two gzip’d line-delimited JSON files:

  • stations.jsons.gz (107kB; 536kB uncompressed): All 1229 stations. An example station is shown below:

    {
      // constant dataset id
      "datasetid": "stations-velib-disponibilites-en-temps-reel",
      "fields": {
          "address": "RUE BERTRAND SINCHOLLE - 92110 CLICHY",
          "bike_stands": 23,
          "bonus": "False", // is it a bonus station?
          "contract_name": "Paris", // always "Paris"
          "name": "21107 - SINCHOLLE (CLICHY)",
          "number": 21107,
          "banking": true, // can we pay at this station? (always true)
          "position": [ // WGS84 projection
            48.899359637,
            2.3040405607
          ]
      },
      "geometry": {
          "coordinates": [
            2.3040405607,
            48.899359637
          ],
          "type": "Point"
      },
      "recordid": "2201fad6a9d960cd567403ce5e9fbfdd3801f2dd",
      "_id": 1
    }
    
  • disponibilities.jsons.gz (322MB; 4.4GB uncompressed): 43.9M data points. Each one represents the status of one station at a given time. An example is shown below:

    {
      "station_id": 39, // _id in the stations file
      "last_update": "2017-08-07 22:09:36+02:00",
      "bike_stands": 23, // number of available stands at the station
      "bikes": 10, // number of available bikes
      "status": "OPEN" // "OPEN" or "CLOSED"
    }
    

    The sum of bike_stands and bikes should give you the number of stands at the given station.

Licence

The dataset is released under the Etalib Open Licence 1.0, just like the original data. Please note that I only compiled the data; the original producer is JCDecaux.

Downloads

  • https://bfontaine.net/dataset/velibs/stations.jsons.gz (107kB)
  • https://bfontaine.net/dataset/velibs/disponibilities.jsons.gz (322MB)