Toyota Connected Services API

Toyota Connected Services API enables authorized applications to access real-time vehicle status, remote control features, location data, electric vehicle charging status, climate control, and trip history for Toyota and Lexus connected vehicles.

OpenAPI Specification

toyota-connected-services-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Toyota Connected Services API
  description: >-
    Toyota Connected Services API enables authorized applications to access
    real-time vehicle data and remote control features for Toyota and Lexus
    connected vehicles. Provides vehicle status, location, electric vehicle
    charging data, climate control, trip history, notifications, and service
    history for vehicles enrolled in Toyota Connected Services.
  version: 1.0.0
  contact:
    name: Toyota Developer Portal
    url: https://developer.eig.toyota.com/
servers:
  - url: https://api.toyota.com/connected/v1
    description: Toyota Connected Services API
tags:
  - name: Vehicles
    description: Vehicle registration and management
  - name: Status
    description: Vehicle status and diagnostics
  - name: Location
    description: Vehicle location services
  - name: Electric
    description: Electric and hybrid vehicle battery data
  - name: Climate
    description: Climate control management
  - name: Trips
    description: Trip history and driving data
  - name: Notifications
    description: Vehicle notification management
  - name: Remote
    description: Remote vehicle commands
  - name: History
    description: Service history
paths:
  /vehicles:
    get:
      operationId: listConnectedVehicles
      summary: List Connected Vehicles
      description: Returns all vehicles registered to the authenticated account.
      tags:
        - Vehicles
      responses:
        '200':
          description: Vehicle list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectedVehicleList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /vehicles/{vin}:
    get:
      operationId: getConnectedVehicle
      summary: Get Connected Vehicle
      description: Get registration details for a specific connected vehicle.
      tags:
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
          description: Vehicle Identification Number
      responses:
        '200':
          description: Vehicle details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectedVehicle'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateVehicleAlias
      summary: Update Vehicle Alias
      description: Update the nickname/alias for a vehicle.
      tags:
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - alias
              properties:
                alias:
                  type: string
                  description: New vehicle nickname
                guid:
                  type: string
                  description: User GUID
      responses:
        '200':
          description: Vehicle alias updated
  /vehicles/{vin}/status:
    get:
      operationId: getVehicleStatus
      summary: Get Vehicle Status
      description: Returns the current status and general information for a connected vehicle.
      tags:
        - Status
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Vehicle status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleStatus'
        '404':
          $ref: '#/components/responses/NotFound'
  /vehicles/{vin}/status/refresh:
    post:
      operationId: refreshVehicleStatus
      summary: Refresh Vehicle Status
      description: Wake the vehicle and refresh its status data. Requires the vehicle to be connected.
      tags:
        - Status
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - deviceId
                - deviceType
                - guid
                - vin
              properties:
                deviceId:
                  type: string
                deviceType:
                  type: string
                guid:
                  type: string
                vin:
                  type: string
      responses:
        '200':
          description: Status refresh initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshStatus'
  /vehicles/{vin}/health:
    get:
      operationId: getVehicleHealthStatus
      summary: Get Vehicle Health Status
      description: Returns vehicle health information including oil level and warning lights.
      tags:
        - Status
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Vehicle health status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleHealth'
        '404':
          $ref: '#/components/responses/NotFound'
  /vehicles/{vin}/location:
    get:
      operationId: getVehiclePosition
      summary: Get Vehicle Location
      description: Returns the last known GPS location of the vehicle when parked.
      tags:
        - Location
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Vehicle location
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehiclePosition'
        '404':
          $ref: '#/components/responses/NotFound'
  /vehicles/{vin}/electric:
    get:
      operationId: getElectricStatus
      summary: Get Electric Status
      description: Returns EV battery, charging status, and electric range data for hybrid and EV models.
      tags:
        - Electric
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Electric vehicle status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ElectricStatus'
        '404':
          $ref: '#/components/responses/NotFound'
  /vehicles/{vin}/electric/refresh:
    post:
      operationId: refreshElectricStatus
      summary: Refresh Electric Status
      description: Request an updated state-of-charge reading from the vehicle.
      tags:
        - Electric
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Refresh request sent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshStatus'
  /vehicles/{vin}/climate:
    get:
      operationId: getClimateStatus
      summary: Get Climate Status
      description: Returns the current climate control settings and status for the vehicle.
      tags:
        - Climate
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Climate status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClimateStatus'
    put:
      operationId: updateClimateSettings
      summary: Update Climate Settings
      description: Update climate control settings for the vehicle.
      tags:
        - Climate
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClimateSettings'
      responses:
        '200':
          description: Climate settings updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClimateSettings'
  /vehicles/{vin}/climate/command:
    post:
      operationId: sendClimateCommand
      summary: Send Climate Command
      description: Send a climate control command to start or stop the vehicle's climate system remotely.
      tags:
        - Climate
        - Remote
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClimateCommand'
      responses:
        '200':
          description: Command sent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshStatus'
  /vehicles/{vin}/trips:
    get:
      operationId: getTrips
      summary: Get Trips
      description: Returns trip history for a connected vehicle within a specified date range.
      tags:
        - Trips
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
        - name: fromDate
          in: query
          required: true
          schema:
            type: string
            format: date
          description: Start date for trip history
        - name: toDate
          in: query
          required: true
          schema:
            type: string
            format: date
          description: End date for trip history
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            maximum: 50
          description: Maximum trips to return
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
          description: Pagination offset
        - name: includeRoute
          in: query
          schema:
            type: boolean
            default: false
          description: Include GPS route for each trip
        - name: includeSummary
          in: query
          schema:
            type: boolean
            default: true
          description: Include trip summary statistics
      responses:
        '200':
          description: Trip history
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TripHistoryList'
  /vehicles/{vin}/notifications:
    get:
      operationId: getVehicleNotifications
      summary: Get Vehicle Notifications
      description: Returns all notifications for the vehicle including alerts, messages, and recalls.
      tags:
        - Notifications
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
        - name: unreadOnly
          in: query
          schema:
            type: boolean
            default: false
          description: Return only unread notifications
      responses:
        '200':
          description: Notifications list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationList'
  /vehicles/{vin}/remote-command:
    post:
      operationId: sendRemoteCommand
      summary: Send Remote Command
      description: Send a remote command to the vehicle such as lock, unlock, or horn.
      tags:
        - Remote
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoteCommand'
      responses:
        '200':
          description: Command accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshStatus'
  /vehicles/{vin}/service-history:
    get:
      operationId: getServiceHistory
      summary: Get Service History
      description: Returns service history records for the vehicle.
      tags:
        - History
        - Vehicles
      parameters:
        - name: vin
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Service history
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceHistoryList'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Vehicle not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    ConnectedVehicle:
      type: object
      properties:
        vin:
          type: string
        alias:
          type: string
          description: Vehicle nickname
        make:
          type: string
        model:
          type: string
        year:
          type: integer
        color:
          type: string
        trim:
          type: string
        guid:
          type: string
          description: User GUID associated with the vehicle
        isConnected:
          type: boolean
        lastConnectedAt:
          type: string
          format: date-time
    ConnectedVehicleList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ConnectedVehicle'
    VehicleStatus:
      type: object
      properties:
        vin:
          type: string
        ignition:
          type: string
          enum: [on, off]
        doorsLocked:
          type: boolean
        doorStatus:
          type: object
          properties:
            frontLeft:
              type: string
              enum: [open, closed]
            frontRight:
              type: string
              enum: [open, closed]
            rearLeft:
              type: string
              enum: [open, closed]
            rearRight:
              type: string
              enum: [open, closed]
            trunk:
              type: string
              enum: [open, closed]
        windowStatus:
          type: object
          properties:
            frontLeft:
              type: string
              enum: [open, closed, venting]
            frontRight:
              type: string
              enum: [open, closed, venting]
        lastUpdatedAt:
          type: string
          format: date-time
    VehicleHealth:
      type: object
      properties:
        vin:
          type: string
        overallStatus:
          type: string
          enum: [good, warning, critical]
        oilQuantity:
          type: string
          enum: [ok, low, critically_low]
        warningLights:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              severity:
                type: string
              description:
                type: string
        maintenanceRequired:
          type: boolean
        lastReportedAt:
          type: string
          format: date-time
    VehiclePosition:
      type: object
      properties:
        vin:
          type: string
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
        isParked:
          type: boolean
        timestamp:
          type: string
          format: date-time
    ElectricStatus:
      type: object
      properties:
        vin:
          type: string
        batteryLevel:
          type: integer
          description: Battery state of charge percentage (0-100)
        batteryRange:
          type: number
          description: Estimated electric range in miles
        fuelLevel:
          type: integer
          description: Fuel percentage for hybrid models (0-100)
        fuelRange:
          type: number
          description: Estimated fuel range in miles
        totalRange:
          type: number
          description: Combined electric + fuel range for hybrids
        chargingStatus:
          type: string
          enum: [not_charging, charging, fully_charged, plugged_in]
        pluggedIn:
          type: boolean
        estimatedChargeCompleteTime:
          type: string
          format: date-time
        lastUpdatedAt:
          type: string
          format: date-time
    ClimateStatus:
      type: object
      properties:
        vin:
          type: string
        isRunning:
          type: boolean
        temperature:
          type: number
          description: Target temperature in Fahrenheit
        fanSpeed:
          type: integer
          description: Fan speed level (1-5)
        mode:
          type: string
          enum: [auto, cool, heat, defrost, off]
        lastUpdatedAt:
          type: string
          format: date-time
    ClimateSettings:
      type: object
      properties:
        temperature:
          type: number
          description: Target temperature in Fahrenheit
        fanSpeed:
          type: integer
          minimum: 1
          maximum: 5
        mode:
          type: string
          enum: [auto, cool, heat, defrost]
    ClimateCommand:
      type: object
      required:
        - command
      properties:
        command:
          type: string
          enum: [start, stop]
          description: Climate control command
        temperature:
          type: number
          description: Target temperature for start command
    TripHistory:
      type: object
      properties:
        id:
          type: string
        vin:
          type: string
        startTime:
          type: string
          format: date-time
        endTime:
          type: string
          format: date-time
        distanceMiles:
          type: number
        durationMinutes:
          type: integer
        averageSpeedMph:
          type: number
        maxSpeedMph:
          type: number
        startAddress:
          type: string
        endAddress:
          type: string
        startCoordinates:
          $ref: '#/components/schemas/Coordinates'
        endCoordinates:
          $ref: '#/components/schemas/Coordinates'
        route:
          type: array
          items:
            $ref: '#/components/schemas/Coordinates'
    Coordinates:
      type: object
      properties:
        latitude:
          type: number
          format: double
        longitude:
          type: number
          format: double
        timestamp:
          type: string
          format: date-time
    TripHistoryList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/TripHistory'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
    Notification:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum: [alert, message, recall, maintenance, service]
        title:
          type: string
        message:
          type: string
        isRead:
          type: boolean
        severity:
          type: string
          enum: [info, warning, critical]
        createdAt:
          type: string
          format: date-time
    NotificationList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Notification'
        total:
          type: integer
        unreadCount:
          type: integer
    RemoteCommand:
      type: object
      required:
        - command
      properties:
        command:
          type: string
          enum: [lock, unlock, horn, lights, panic_on, panic_off, trunk_open]
          description: Remote command to send
        beeps:
          type: integer
          minimum: 1
          maximum: 3
          description: Number of horn beeps for horn command
    RefreshStatus:
      type: object
      properties:
        requestId:
          type: string
        status:
          type: string
        returnCode:
          type: string
          description: Return code (000000 indicates success)
        timestamp:
          type: string
          format: date-time
    ServiceHistory:
      type: object
      properties:
        id:
          type: string
        vin:
          type: string
        category:
          type: string
          description: Service category (oil change, inspection, etc.)
        description:
          type: string
        serviceDate:
          type: string
          format: date
        mileage:
          type: integer
        dealerCode:
          type: string
        dealerName:
          type: string
    ServiceHistoryList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ServiceHistory'
security:
  - bearerAuth: []