Please note that this SDK is deprecated and is no longer officially supported by Lyft.
node-lyft is a Node client library for accessing the Lyft API.
You must first create a Lyft Developer account here. Once registered, create a new application here. Your new application will be assigned a Client ID and Client Secret (for use with two- or three-legged OAuth to generate bearer tokens and User Authentication) and a Client Token (for use with public endpoints that don't require user context/Client Authentication).
Install the latest version via npm:
npm install node-lyft
Install the latest version via yarn:
yarn add node-lyft
First clone the lyft-node-sdk
repo locally:
git clone github.com/lyft/lyft-node-sdk
Within the cloned directory, run npm install
or yarn install
. Now you can install this package locally for development.
Prior to calling API endpoints, you need to authenticate. For public endpoints, you can use the Client Token from your application; for user-specific endpoints, you need to use a token generated from the three legged OAuth2 process, detailed in the documentation.
var lyft = require('node-lyft');
var defaultClient = lyft.ApiClient.instance;
//next you need to authorize API access.
//if you're only using your Client Token for non-user specific endpoints, you can add that token directly
defaultClient.authentications['Client Authentication'].accessToken = 'YOUR-CLIENT-TOKEN';
//if you're using endpoints that require a user context, you need to get your token via three-legged OAuth, then add it here:
defaultClient.authentications['User Authentication'].accessToken = '3-LEGGED-OAUTH-TOKEN';
With proper authorization, you can now call Lyft's API. Below we are calling the ETA endpoint with a lyftPublicApi
instance.
//create a new lyft-node PublicApi() instance
var lyftPublicApi = new lyft.PublicApi()
//the getETA endpoint works with both user and non-user context:
//leaving the options field empty {}
//and using promises/then to print out result
lyftPublicApi.getETA(37.7884, -122.4076, {}).then((data) => {
console.log('API called successfully. Returned data: ' + data);
}, (error) => {
console.error(error);
});
All URIs are relative to https://api.lyft.com/v1
Class | Method | HTTP request | Description |
---|---|---|---|
lyft.PublicApi | getCost | GET /cost | Cost estimates |
lyft.PublicApi | getDrivers | GET /drivers | Available drivers nearby |
lyft.PublicApi | getETA | GET /eta | Pickup ETAs |
lyft.PublicApi | getRideTypes | GET /ridetypes | Types of rides |
lyft.SandboxApi | setPrimeTime | PUT /sandbox/primetime | Preset Prime Time percentage |
lyft.SandboxApi | setRideStatus | PUT /sandbox/rides/{id} | Propagate ride through ride status |
lyft.SandboxApi | setRideTypeAvailability | PUT /sandbox/ridetypes/{ride_type} | Driver availability for processing ride request |
lyft.SandboxApi | setRideTypes | PUT /sandbox/ridetypes | Preset types of rides for sandbox |
lyft.UserApi | cancelRide | POST /rides/{id}/cancel | Cancel a ongoing requested ride |
lyft.UserApi | getProfile | GET /profile | The user's general info |
lyft.UserApi | getRide | GET /rides/{id} | Get the ride detail of a given ride ID |
lyft.UserApi | getRideReceipt | GET /rides/{id}/receipt | Get the receipt of the rides. |
lyft.UserApi | getRides | GET /rides | List rides |
lyft.UserApi | newRide | POST /rides | Request a Lyft |
lyft.UserApi | setRideDestination | PUT /rides/{id}/destination | Update the destination of the ride |
lyft.UserApi | setRideRating | PUT /rides/{id}/rating | Add the passenger's rating, feedback, and tip |
- lyft.ApiError
- lyft.CancellationCost
- lyft.CancellationCostError
- lyft.CancellationRequest
- lyft.Charge
- lyft.Cost
- lyft.CostEstimate
- lyft.CostEstimateResponse
- lyft.CurrentRideLocation
- lyft.DriverDetail
- lyft.ErrorDetail
- lyft.Eta
- lyft.EtaEstimateResponse
- lyft.LatLng
- lyft.LineItem
- lyft.Location
- lyft.NearbyDriver
- lyft.NearbyDriversByRideType
- lyft.NearbyDriversResponse
- lyft.PassengerDetail
- lyft.PickupDropoffLocation
- lyft.PricingDetails
- lyft.Profile
- lyft.RatingRequest
- lyft.Ride
- lyft.RideDetail
- lyft.RideLocation
- lyft.RideProfileEnum
- lyft.RideReceipt
- lyft.RideRequest
- lyft.RideRequestError
- lyft.RideStatusEnum
- lyft.RideType
- lyft.RideTypeEnum
- lyft.RideTypeEnumWithOther
- lyft.RideTypesResponse
- lyft.RidesResponse
- lyft.SandboxDriverAvailability
- lyft.SandboxPrimetime
- lyft.SandboxRideStatus
- lyft.SandboxRideType
- lyft.SandboxRideUpdate
- lyft.Tip
- lyft.TipParams
- lyft.UserDetail
- lyft.VehicleDetail
If you're looking for help configuring or using the SDK, or if you have general questions related to our APIs, the Lyft Developer Platform team provides support through our forum as well as on Stack Overflow (using the lyft-api
tag).
If you've found a vulnerability or a potential vulnerability in node-lyft, please let us know at [email protected]. We'll send a confirmation email to acknowledge your report, and we'll send an additional email when we've identified the issue positively or negatively.