Lyft Concierge API

The Lyft Concierge API allows organizations to request rides on behalf of their customers, patients, or employees without requiring those individuals to have a Lyft account. It is designed for enterprise use cases such as healthcare patient transportation, corporate employee transit, and customer service scenarios. The API enables organizations to build customized transportation workflows, schedule rides in advance, track ride status in real time, and manage ride programs at scale.

OpenAPI Specification

lyft-concierge-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Lyft Concierge API
  description: >-
    The Lyft Concierge API allows organizations to request rides on behalf of
    their customers, patients, or employees without requiring those
    individuals to have a Lyft account. It is designed for enterprise use
    cases such as healthcare patient transportation, corporate employee
    transit, and customer service scenarios. The API enables organizations to
    build customized transportation workflows, schedule rides in advance,
    track ride status in real time, and manage ride programs at scale. It
    provides a way to embed Lyft's driver network directly into business
    operations and third-party applications.
  version: '1.0'
  contact:
    name: Lyft Business Support
    url: https://www.lyft.com/developers
  termsOfService: https://www.lyft.com/terms
externalDocs:
  description: Lyft Concierge API Documentation
  url: https://www.lyft.com/developers/products/concierge-api
servers:
  - url: https://api.lyft.com/v1
    description: Production Server
tags:
  - name: Concierge Rides
    description: >-
      Endpoints for creating, scheduling, tracking, and managing rides on
      behalf of passengers who may not have a Lyft account.
  - name: Cost Estimates
    description: >-
      Endpoints for estimating ride costs for concierge bookings.
  - name: Ride Types
    description: >-
      Endpoints for retrieving available ride types for concierge bookings.
security:
  - bearerAuth: []
paths:
  /concierge/rides:
    get:
      operationId: listConciergeRides
      summary: List concierge rides
      description: >-
        Returns a list of rides created through the concierge program. Results
        can be filtered by status, time range, and passenger information.
        Supports pagination for large result sets.
      tags:
        - Concierge Rides
      parameters:
        - name: status
          in: query
          description: >-
            Filter rides by their current status.
          required: false
          schema:
            $ref: '#/components/schemas/ConciergeRideStatusEnum'
        - name: start_time
          in: query
          description: >-
            Return rides scheduled or requested after this time. ISO 8601
            format.
          required: false
          schema:
            type: string
            format: date-time
        - name: end_time
          in: query
          description: >-
            Return rides scheduled or requested before this time. ISO 8601
            format.
          required: false
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          description: >-
            Maximum number of rides to return per page.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
        - name: offset
          in: query
          description: >-
            Number of rides to skip for pagination.
          required: false
          schema:
            type: integer
            minimum: 0
            default: 0
      responses:
        '200':
          description: Successful response with concierge ride list
          content:
            application/json:
              schema:
                type: object
                properties:
                  rides:
                    type: array
                    description: >-
                      List of concierge rides matching the filter criteria.
                    items:
                      $ref: '#/components/schemas/ConciergeRide'
                  total:
                    type: integer
                    description: >-
                      Total number of rides matching the filter criteria.
        '400':
          description: Bad request - invalid filter parameters
        '401':
          description: Unauthorized - invalid or missing access token
    post:
      operationId: createConciergeRide
      summary: Create a concierge ride
      description: >-
        Creates a new ride on behalf of a passenger. The passenger does not
        need to have a Lyft account. Rides can be dispatched immediately or
        scheduled for a future pickup time. The request must include the
        passenger's contact information, pickup location, and destination.
      tags:
        - Concierge Rides
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateConciergeRideRequest'
      responses:
        '200':
          description: Concierge ride created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConciergeRide'
        '400':
          description: Bad request - invalid parameters
        '401':
          description: Unauthorized - invalid or missing access token
        '422':
          description: Unprocessable entity - validation error
  /concierge/rides/{id}:
    get:
      operationId: getConciergeRide
      summary: Get concierge ride detail
      description: >-
        Returns the details of a specific concierge ride, including current
        status, passenger information, driver and vehicle details, and route
        information.
      tags:
        - Concierge Rides
      parameters:
        - $ref: '#/components/parameters/rideId'
      responses:
        '200':
          description: Successful response with ride details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConciergeRide'
        '401':
          description: Unauthorized - invalid or missing access token
        '404':
          description: Ride not found
  /concierge/rides/{id}/cancel:
    post:
      operationId: cancelConciergeRide
      summary: Cancel a concierge ride
      description: >-
        Cancels a concierge ride that has been requested or scheduled. Rides
        that have already been completed cannot be canceled. Cancellation
        fees may apply depending on the ride's current status and how long
        a driver has been assigned.
      tags:
        - Concierge Rides
      parameters:
        - $ref: '#/components/parameters/rideId'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                cancel_confirmation_token:
                  type: string
                  description: >-
                    A token required to confirm cancellation when a fee
                    applies.
      responses:
        '204':
          description: Ride canceled successfully
        '400':
          description: Bad request - ride cannot be canceled
        '401':
          description: Unauthorized - invalid or missing access token
        '404':
          description: Ride not found
  /concierge/rides/{id}/status:
    get:
      operationId: getConciergeRideStatus
      summary: Get concierge ride status
      description: >-
        Returns the current status and real-time tracking information for a
        concierge ride, including driver location when a driver is assigned.
      tags:
        - Concierge Rides
      parameters:
        - $ref: '#/components/parameters/rideId'
      responses:
        '200':
          description: Successful response with ride status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConciergeRideStatus'
        '401':
          description: Unauthorized - invalid or missing access token
        '404':
          description: Ride not found
  /concierge/ridetypes:
    get:
      operationId: listConciergeRideTypes
      summary: List available concierge ride types
      description: >-
        Returns the ride types available for concierge bookings at the
        specified location. Availability may differ from consumer ride types
        based on the organization's concierge program configuration.
      tags:
        - Ride Types
      parameters:
        - name: lat
          in: query
          description: >-
            Latitude of the pickup location.
          required: true
          schema:
            type: number
            format: double
        - name: lng
          in: query
          description: >-
            Longitude of the pickup location.
          required: true
          schema:
            type: number
            format: double
      responses:
        '200':
          description: Successful response with available ride types
          content:
            application/json:
              schema:
                type: object
                properties:
                  ride_types:
                    type: array
                    description: >-
                      List of ride types available for concierge bookings.
                    items:
                      $ref: '#/components/schemas/ConciergeRideType'
        '400':
          description: Bad request - invalid parameters
        '401':
          description: Unauthorized - invalid or missing access token
  /concierge/cost:
    get:
      operationId: listConciergeCostEstimates
      summary: List concierge cost estimates
      description: >-
        Returns estimated costs for concierge rides between two locations.
        Cost estimates reflect the organization's concierge pricing, which
        may differ from consumer pricing.
      tags:
        - Cost Estimates
      parameters:
        - name: start_lat
          in: query
          description: >-
            Latitude of the pickup location.
          required: true
          schema:
            type: number
            format: double
        - name: start_lng
          in: query
          description: >-
            Longitude of the pickup location.
          required: true
          schema:
            type: number
            format: double
        - name: end_lat
          in: query
          description: >-
            Latitude of the destination location.
          required: true
          schema:
            type: number
            format: double
        - name: end_lng
          in: query
          description: >-
            Longitude of the destination location.
          required: true
          schema:
            type: number
            format: double
        - name: ride_type
          in: query
          description: >-
            Filter cost estimates by a specific ride type.
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful response with cost estimates
          content:
            application/json:
              schema:
                type: object
                properties:
                  cost_estimates:
                    type: array
                    description: >-
                      List of cost estimates for available ride types.
                    items:
                      $ref: '#/components/schemas/ConciergeCostEstimate'
        '400':
          description: Bad request - invalid parameters
        '401':
          description: Unauthorized - invalid or missing access token
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        OAuth 2.0 access token obtained through the client credentials flow
        for the organization's concierge API client.
  parameters:
    rideId:
      name: id
      in: path
      description: >-
        The unique identifier of the concierge ride.
      required: true
      schema:
        type: string
  schemas:
    ConciergeRideStatusEnum:
      type: string
      description: >-
        Status of a concierge ride throughout its lifecycle.
      enum:
        - pending
        - scheduled
        - matched
        - arriving
        - pickedUp
        - droppedOff
        - canceled
        - failed
    ConciergeRideType:
      type: object
      description: >-
        A ride type available for concierge bookings at a given location.
      properties:
        ride_type:
          type: string
          description: >-
            Identifier for the ride type.
        display_name:
          type: string
          description: >-
            Human-readable name for the ride type.
        seats:
          type: integer
          description: >-
            Maximum number of passenger seats.
        image_url:
          type: string
          format: uri
          description: >-
            URL to an image representing the ride type.
    ConciergeCostEstimate:
      type: object
      description: >-
        Estimated cost for a concierge ride between two locations.
      properties:
        ride_type:
          type: string
          description: >-
            Identifier for the ride type.
        display_name:
          type: string
          description: >-
            Human-readable name for the ride type.
        currency:
          type: string
          description: >-
            ISO 4217 currency code.
          pattern: '^[A-Z]{3}$'
        estimated_cost_cents_min:
          type: integer
          description: >-
            Lower bound of the estimated cost in cents.
        estimated_cost_cents_max:
          type: integer
          description: >-
            Upper bound of the estimated cost in cents.
        estimated_distance_miles:
          type: number
          format: double
          description: >-
            Estimated ride distance in miles.
        estimated_duration_seconds:
          type: integer
          description: >-
            Estimated ride duration in seconds.
    Passenger:
      type: object
      description: >-
        Contact information for the ride passenger. The passenger does not
        need to have a Lyft account.
      required:
        - first_name
        - phone_number
      properties:
        first_name:
          type: string
          description: >-
            First name of the passenger.
        last_name:
          type: string
          description: >-
            Last name of the passenger.
        phone_number:
          type: string
          description: >-
            Phone number where the passenger can be reached. The passenger
            will receive ride status notifications via SMS at this number.
        email:
          type: string
          format: email
          description: >-
            Email address for the passenger.
    Location:
      type: object
      description: >-
        A geographic location with optional address details.
      required:
        - lat
        - lng
      properties:
        lat:
          type: number
          format: double
          description: >-
            Latitude of the location.
        lng:
          type: number
          format: double
          description: >-
            Longitude of the location.
        address:
          type: string
          description: >-
            Street address of the location.
        city:
          type: string
          description: >-
            City name.
        state:
          type: string
          description: >-
            State or province code.
        zip:
          type: string
          description: >-
            Postal code.
    CreateConciergeRideRequest:
      type: object
      description: >-
        Request body for creating a new concierge ride on behalf of a
        passenger.
      required:
        - ride_type
        - passenger
        - origin
        - destination
      properties:
        ride_type:
          type: string
          description: >-
            Identifier for the type of Lyft ride to request.
        passenger:
          $ref: '#/components/schemas/Passenger'
        origin:
          $ref: '#/components/schemas/Location'
        destination:
          $ref: '#/components/schemas/Location'
        scheduled_pickup_time:
          type: string
          format: date-time
          description: >-
            The requested pickup time for a scheduled ride. If omitted, the
            ride will be dispatched immediately. Must be at least 30 minutes
            in the future and no more than 7 days ahead.
        notes:
          type: string
          description: >-
            Special instructions or notes for the driver, such as building
            entrance details or patient mobility requirements.
          maxLength: 500
        cost_center:
          type: string
          description: >-
            An optional cost center code for billing and reporting purposes.
    ConciergeRide:
      type: object
      description: >-
        Detailed information about a concierge ride including its current
        status, passenger, driver, vehicle, and route information.
      properties:
        ride_id:
          type: string
          description: >-
            Unique identifier for the concierge ride.
        ride_type:
          type: string
          description: >-
            Identifier for the type of ride.
        status:
          $ref: '#/components/schemas/ConciergeRideStatusEnum'
        passenger:
          $ref: '#/components/schemas/Passenger'
        origin:
          $ref: '#/components/schemas/Location'
        destination:
          $ref: '#/components/schemas/Location'
        driver:
          $ref: '#/components/schemas/ConciergeDriver'
        vehicle:
          $ref: '#/components/schemas/ConciergeVehicle'
        scheduled_pickup_time:
          type: string
          format: date-time
          description: >-
            The scheduled pickup time, if the ride was scheduled in advance.
        requested_at:
          type: string
          format: date-time
          description: >-
            Timestamp when the ride was created.
        completed_at:
          type: string
          format: date-time
          description: >-
            Timestamp when the ride was completed.
        canceled_at:
          type: string
          format: date-time
          description: >-
            Timestamp when the ride was canceled, if applicable.
        price:
          $ref: '#/components/schemas/ConciergePrice'
        notes:
          type: string
          description: >-
            Special instructions provided when the ride was created.
        cost_center:
          type: string
          description: >-
            The cost center code associated with this ride.
    ConciergeDriver:
      type: object
      description: >-
        Information about the driver assigned to a concierge ride.
      properties:
        first_name:
          type: string
          description: >-
            The driver's first name.
        phone_number:
          type: string
          description: >-
            The driver's contact phone number.
        rating:
          type: string
          description: >-
            The driver's average rating.
        image_url:
          type: string
          format: uri
          description: >-
            URL to the driver's profile photo.
    ConciergeVehicle:
      type: object
      description: >-
        Information about the vehicle assigned to a concierge ride.
      properties:
        make:
          type: string
          description: >-
            Vehicle manufacturer name.
        model:
          type: string
          description: >-
            Vehicle model name.
        year:
          type: integer
          description: >-
            Vehicle model year.
        license_plate:
          type: string
          description: >-
            Vehicle license plate number.
        color:
          type: string
          description: >-
            Color of the vehicle.
    ConciergePrice:
      type: object
      description: >-
        Price information for a concierge ride.
      properties:
        amount:
          type: integer
          description: >-
            Total price in the smallest denomination of the currency.
        currency:
          type: string
          description: >-
            ISO 4217 currency code.
          pattern: '^[A-Z]{3}$'
        description:
          type: string
          description: >-
            Human-readable description of the price.
    ConciergeRideStatus:
      type: object
      description: >-
        Real-time status and tracking information for a concierge ride.
      properties:
        ride_id:
          type: string
          description: >-
            Unique identifier for the ride.
        status:
          $ref: '#/components/schemas/ConciergeRideStatusEnum'
        driver_location:
          type: object
          description: >-
            Current location of the driver, available when a driver has been
            assigned.
          properties:
            lat:
              type: number
              format: double
              description: >-
                Latitude of the driver's current position.
            lng:
              type: number
              format: double
              description: >-
                Longitude of the driver's current position.
        eta_seconds:
          type: integer
          description: >-
            Estimated time in seconds until the driver arrives at the pickup
            location.
        updated_at:
          type: string
          format: date-time
          description: >-
            Timestamp when the status was last updated.