Package Exports
- node-jump
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-jump) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-jump
A node-module that wraps Jump's open data APIs into several easy to use functions.
Prerequisites
The following is required to install node-jump:
Latest version of npmDependencies
The following is a list of dependencies used by node-jump:
async: ^3.1.0,
axios: ^0.19.0,
lodash: ^4.17.15Installing
In your project directory, run the following command:
npm install node-jumpFunctionality Overview
node-jump provides several functions for accessing Jump's GBFS api. Each function takes two parameters, cityCode (required) and rideType (optional), and returns a promise. A cityCode refers to the abbreviated city name used by Jump as part of their GBFS url. For example, the URL to get Jump GBFS data for San Francisco, California:
https://sf.jumpbikes.com/opendata/gbfs.jsonNotice the abbreviation sf that is a part of the URL. Similarly, for Austin, Texas:
https://atx.jumpbikes.com/opendata/gbfs.jsonA rideType refers to the two available modes of transportation Jump provides, scooters or bikes. By default, node-jump will return data for both type of rides. To request data for a specific mode, pass in the string "bike" or "scooter" for bikes and scooters respectively.
getFileDirectory(rideType, cityCode)
An async function that retrieves a city's GBFS directory.
Example 1: Request GBFS directory for all ride types in Austin, Texas
Request:
http://localhost:3000/Jump/gbfs/?cityCode=atx
Response:
{
"bikes": {
"en": {
"feeds": [
{
"name": "gbfs",
"url": "https://gbfs.uber.com/v1/atxb/gbfs.json"
},
{
"name": "system_information",
"url": "https://gbfs.uber.com/v1/atxb/system_information.json"
},
{
"name": "station_information",
"url": "https://gbfs.uber.com/v1/atxb/station_information.json"
},
{
"name": "station_status",
"url": "https://gbfs.uber.com/v1/atxb/station_status.json"
},
{
"name": "free_bike_status",
"url": "https://gbfs.uber.com/v1/atxb/free_bike_status.json"
},
{
"name": "system_hours",
"url": "https://gbfs.uber.com/v1/atxb/system_hours.json"
},
{
"name": "system_calendar",
"url": "https://gbfs.uber.com/v1/atxb/system_calendar.json"
},
{
"name": "system_regions",
"url": "https://gbfs.uber.com/v1/atxb/system_regions.json"
},
{
"name": "system_pricing_plans",
"url": "https://gbfs.uber.com/v1/atxb/system_pricing_plans.json"
},
{
"name": "system_alerts",
"url": "https://gbfs.uber.com/v1/atxb/system_alerts.json"
}
]
}
},
"scooters": {
"en": {
"feeds": [
{
"name": "gbfs",
"url": "https://gbfs.uber.com/v1/atxs/gbfs.json"
},
{
"name": "system_information",
"url": "https://gbfs.uber.com/v1/atxs/system_information.json"
},
{
"name": "station_information",
"url": "https://gbfs.uber.com/v1/atxs/station_information.json"
},
{
"name": "station_status",
"url": "https://gbfs.uber.com/v1/atxs/station_status.json"
},
{
"name": "free_bike_status",
"url": "https://gbfs.uber.com/v1/atxs/free_bike_status.json"
},
{
"name": "system_hours",
"url": "https://gbfs.uber.com/v1/atxs/system_hours.json"
},
{
"name": "system_calendar",
"url": "https://gbfs.uber.com/v1/atxs/system_calendar.json"
},
{
"name": "system_regions",
"url": "https://gbfs.uber.com/v1/atxs/system_regions.json"
},
{
"name": "system_pricing_plans",
"url": "https://gbfs.uber.com/v1/atxs/system_pricing_plans.json"
},
{
"name": "system_alerts",
"url": "https://gbfs.uber.com/v1/atxs/system_alerts.json"
}
]
}
}
}Example 2: Request GBFS directory for bikes in Austin, Texas
Request:
http://localhost:3000/Jump/gbfs/?rideType=bike&cityCode=atx
Response:
{
"bikes": {
"en": {
"feeds": [
{
"name": "gbfs",
"url": "https://gbfs.uber.com/v1/atxb/gbfs.json"
},
{
"name": "system_information",
"url": "https://gbfs.uber.com/v1/atxb/system_information.json"
},
...
{
"name": "system_alerts",
"url": "https://gbfs.uber.com/v1/atxb/system_alerts.json"
}
]
}
}
}getFreeBikes(rideType, cityCode)
Retrieves all available rides within a given city.
Example 1: Request all available rides in Autin, Texas
Request:
http://localhost:3000/Jump/bikes/?cityCode=atx
Response:
"bikes": {
"bikes": [
{
"bike_id": "007f6be0-a3e3-46d5-981e-7aa51b3d01c5",
"lat": 30.290793333333333,
"lon": -97.75064333333333,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "bike",
"jump_ebike_battery_level": "83%",
"jump_vehicle_name": "15020"
},
{
"bike_id": "00c80078-b6a0-4cf7-ab48-84322bbe20ef",
"lat": 30.259125,
"lon": -97.73953,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "bike",
"jump_ebike_battery_level": "51%",
"jump_vehicle_name": "11895"
},
...
{
"bike_id": "00d7d14e-5db8-402a-ad1b-947340f49147",
"lat": 30.269046666666668,
"lon": -97.74637666666666,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "bike",
"jump_ebike_battery_level": "65%",
"jump_vehicle_name": "16889"
}
],
"scooters": [
{
"bike_id": "001613f1-7554-40f7-8507-f15d56617eae",
"lat": 30.260003,
"lon": -97.749305,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "scooter",
"jump_ebike_battery_level": "67%",
"jump_vehicle_name": "OOD948"
},
...
{
"bike_id": "00374cae-9921-4444-aa9b-11d62d04dec7",
"lat": 30.254461,
"lon": -97.748026,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "scooter",
"jump_ebike_battery_level": "23%",
"jump_vehicle_name": "TLS804"
}
]
}
}Example 2: Request all available scooters in Autin, Texas
Request:
http://localhost:3000/Jump/bikes/?rideType=scooter&cityCode=atx
Response:
{
"bikes": {
"scooters": [
{
"bike_id": "001613f1-7554-40f7-8507-f15d56617eae",
"lat": 30.268008,
"lon": -97.742341,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "scooter",
"jump_ebike_battery_level": "97%",
"jump_vehicle_name": "OOD948"
},
{
"bike_id": "00374cae-9921-4444-aa9b-11d62d04dec7",
"lat": 30.257188,
"lon": -97.721431,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "scooter",
"jump_ebike_battery_level": "59%",
"jump_vehicle_name": "TLS804"
},
...
{
"bike_id": "fff97e1a-8625-42f4-8451-b3dbca8ec56e",
"lat": 30.274853,
"lon": -97.751991,
"is_reserved": 0,
"is_disabled": 0,
"jump_vehicle_type": "scooter",
"jump_ebike_battery_level": "55%",
"jump_vehicle_name": "OWD835"
}
]
}getPaymentPlan(rideType, cityCode)
Retrieves payment plan and rental configuration for a given city. Combines results from Jump's system hours and payment plan APIs.
Example 1: Request payment plan of all ride types for Autin, Texas
Request:
http://localhost:3000/Jump/payment/?cityCode=atx
Response:
{
"station": {
"scooters": {
"hours": [
{
"days": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"end_time": "23:59:59",
"start_time": "00:00:00",
"user_types": [
"member",
"nonmember"
]
}
],
"pricing": []
},
"bikes": {
"hours": [
{
"days": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"end_time": "23:59:59",
"start_time": "00:00:00",
"user_types": [
"member",
"nonmember"
]
}
],
"pricing": []
}
}
}Example 2: Request payment plan of all bikes types for Autin, Texas
Request:
http://localhost:3000/Jump/payment/?rideType=bike&cityCode=atx
Response:
{
"station": {
"bikes": {
"hours": [
{
"days": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"end_time": "23:59:59",
"start_time": "00:00:00",
"user_types": [
"member",
"nonmember"
]
}
],
"pricing": []
}
}
}getStationData(rideType, cityCode)
Retrieve stations data for a given city. Combines results from Jump's stations status and station info APIs.
Example 1: Get Station data of all ride types for Austin, Texas
Request:
http://localhost:3000/Jump/stations/?cityCode=atx
Response:
{
"station": {
"bikes": [
{
"station_id": "eb3cdb10-ba2e-5194-b55a-f2caa4110633",
"num_bikes_available": 0,
"num_bikes_disabled": 0,
"num_docks_available": 15,
"is_installed": 1,
"is_renting": 1,
"is_returning": 1,
"last_reported": 1583017062,
"name": " ACC - The Castilian",
"region_id": "e175a9ac-09aa-452d-97c9-342fda3455e9",
"lat": 30.287705,
"lon": -97.742422,
"address": "2323 San Antonio St, Austin, TX 78705, USA",
"rental_methods": [
"KEY",
"APPLEPAY",
"ANDROIDPAY",
"TRANSITCARD",
"ACCOUNTNUMBER",
"PHONE"
]
}
],
"scooters": [
{
"station_id": "e3bda07a-433d-50d2-9447-5e303faa10a8",
"num_bikes_available": 0,
"num_bikes_disabled": 0,
"num_docks_available": 7,
"is_installed": 1,
"is_renting": 1,
"is_returning": 1,
"last_reported": 1583017062,
"name": "26th and San Gabriel",
"region_id": "72491f42-5f24-4855-a096-58c07123c9d3",
"lat": 30.290797,
"lon": -97.747088,
"address": "2515 San Gabriel St, Austin, TX 78705, USA",
"rental_methods": [
"KEY",
"APPLEPAY",
"ANDROIDPAY",
"TRANSITCARD",
"ACCOUNTNUMBER",
"PHONE",
"CREDITCARD"
]
},
{
"station_id": "5ea7ad61-d644-57d6-afea-3a372004331f",
"num_bikes_available": 0,
"num_bikes_disabled": 0,
"num_docks_available": 7,
"is_installed": 1,
"is_renting": 1,
"is_returning": 1,
"last_reported": 1583017062,
"name": "26th and Rio Grande",
"region_id": "dacd621f-45bc-449a-b1d4-91a977cbeedb",
"lat": 30.290682,
"lon": -97.745219,
"address": "100 W 26th St, Austin, TX 78705, USA",
"rental_methods": [
"KEY",
"APPLEPAY",
"ANDROIDPAY",
"TRANSITCARD",
"ACCOUNTNUMBER",
"PHONE",
"CREDITCARD"
]
},
...
{
"station_id": "972eaa3c-eda0-5982-967b-8b7d81711fce",
"num_bikes_available": 0,
"num_bikes_disabled": 0,
"num_docks_available": 7,
"is_installed": 1,
"is_renting": 1,
"is_returning": 1,
"last_reported": 1583017062,
"name": "5th & Chicon",
"region_id": "b3fbe143-55ce-478d-8585-b78cec931266",
"lat": 30.260281,
"lon": -97.723247,
"address": "1800 E 4th St, Austin, TX 78702, USA",
"rental_methods": [
"KEY",
"APPLEPAY",
"ANDROIDPAY",
"TRANSITCARD",
"ACCOUNTNUMBER",
"PHONE",
"CREDITCARD"
]
},
{
"station_id": "a0a0af36-7ade-5768-a977-c4ec3edc82d5",
"num_bikes_available": 0,
"num_bikes_disabled": 0,
"num_docks_available": 7,
"is_installed": 1,
"is_renting": 1,
"is_returning": 1,
"last_reported": 1583017062,
"name": "3rd and Brazos",
"region_id": "2bfdd7a7-57a2-404b-8ee2-8f83eced1c8a",
"lat": 30.264771,
"lon": -97.742258,
"address": "265 Brazos St, Austin, TX 78701, USA",
"rental_methods": [
"KEY",
"APPLEPAY",
"ANDROIDPAY",
"TRANSITCARD",
"ACCOUNTNUMBER",
"PHONE",
"CREDITCARD"
]
}
]
}
}Example 2: Get station data for bikes in Austin, Texas.
Request:
http://localhost:3000/Jump/stations/?rideType=bike&cityCode=atx
Response:
{
"station": {
"bikes": [
{
"station_id": "eb3cdb10-ba2e-5194-b55a-f2caa4110633",
"num_bikes_available": 0,
"num_bikes_disabled": 0,
"num_docks_available": 15,
"is_installed": 1,
"is_renting": 1,
"is_returning": 1,
"last_reported": 1583017475,
"name": " ACC - The Castilian",
"region_id": "1d436053-2cbd-4ba5-9249-25b17da568df",
"lat": 30.287705,
"lon": -97.742422,
"address": "2323 San Antonio St, Austin, TX 78705, USA",
"rental_methods": [
"KEY",
"APPLEPAY",
"ANDROIDPAY",
"TRANSITCARD",
"ACCOUNTNUMBER",
"PHONE"
]
}
]
}
}getSystemAlerts(rideType, cityCode)
Retrieves all alerts within a given city.
Example 1: Request alerts for all ride types in Austin, Texas
Request:
http://localhost:3000/Jump/alerts/?cityCode=atx
Response:
{
"bikes": {
"alerts": []
},
"scooters": {
"alerts": []
}
}
Example 2: Request alerts for only scooters in Austin, Texas
Request:
http://localhost:3000/Jump/alerts/?rideType=scooter&cityCode=atx
Response:
{
"scooters": {
"alerts": []
}
}getSystemData(rideType, cityCode)
Retrieves system data for a given city. Combines results from Jump's system information, system regions and system calender APIs.
Example 1: Get system data of all ride types in Austin, Texas.
Request:
http://localhost:3000/Jump/system/?cityCode=atx
Response:
{
"bikes": {
"calendars": [
{
"end_day": 31,
"end_month": 12,
"start_day": 1,
"start_month": 1
}
],
"info": {
"email": "support@jumpbikes.com",
"language": "en",
"name": "Austin Bike JUMP System",
"phone_number": "(833) 300-6106",
"purchase_url": "https://www.jumpbikes.com",
"system_id": "austin_bike_jump_system",
"url": "https://www.jumpbikes.com"
},
"regions": []
},
"scooters": {
"info": {
"email": "support@jumpbikes.com",
"language": "en",
"name": "Austin Scooter JUMP System",
"phone_number": "(833) 300-6106",
"purchase_url": "https://www.jumpbikes.com",
"system_id": "austin_scooter_jump_system",
"url": "https://www.jumpbikes.com"
},
"regions": [],
"calendars": [
{
"end_day": 31,
"end_month": 12,
"start_day": 1,
"start_month": 1
}
]
}
}Example 2: Get system data of all ride types in Austin, Texas.
Request:
http://localhost:3000/Jump/system/?rideType=bike&cityCode=atx
Response:
{
"bikes": {
"calendars": [
{
"end_day": 31,
"end_month": 12,
"start_day": 1,
"start_month": 1
}
],
"regions": [],
"info": {
"email": "support@jumpbikes.com",
"language": "en",
"name": "Austin Bike JUMP System",
"phone_number": "(833) 300-6106",
"purchase_url": "https://www.jumpbikes.com",
"system_id": "austin_bike_jump_system",
"url": "https://www.jumpbikes.com"
}
}
}Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Authors
- Salman Anza - Initial work - salanza
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Acknowledgments
- PurpleBooth for this awesome readme template!
- Jump Bikes for giving the public access to their Jump APIs!