Toyota Vehicles API

Vehicle registration and management

OpenAPI Specification

toyota-vehicles-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Toyota Connected Services Climate Vehicles 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
security:
- bearerAuth: []
tags:
- name: Vehicles
  description: Vehicle registration and management
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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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:
      - 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'
  /vehicles/{vin}/subscriptions:
    get:
      operationId: getVehicleSubscriptions
      summary: Get Vehicle Subscriptions
      description: Returns connected service and satellite radio subscription details for a vehicle.
      tags:
      - Vehicles
      parameters:
      - name: vin
        in: path
        required: true
        schema:
          type: string
        description: Vehicle Identification Number
      responses:
        '200':
          description: Subscription details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleSubscriptions'
        '404':
          $ref: '#/components/responses/NotFound_2'
  /vehicles/{vin}/telemetry:
    get:
      operationId: getVehicleTelemetry
      summary: Get Vehicle Telemetry
      description: Returns current telemetry data including odometer, fuel level, and distance.
      tags:
      - Vehicles
      parameters:
      - name: vin
        in: path
        required: true
        schema:
          type: string
        description: Vehicle Identification Number
      responses:
        '200':
          description: Vehicle telemetry data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleTelemetry'
        '404':
          $ref: '#/components/responses/NotFound_2'
  /fleet/{fleetId}/vehicles:
    get:
      operationId: listFleetVehicles
      summary: List Fleet Vehicles
      description: Returns all vehicles enrolled in a specific fleet.
      tags:
      - Vehicles
      parameters:
      - name: fleetId
        in: path
        required: true
        schema:
          type: string
        description: Fleet identifier
      - name: status
        in: query
        schema:
          type: string
          enum:
          - active
          - inactive
          - pending
        description: Filter by status
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Fleet vehicles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleList'
        '404':
          $ref: '#/components/responses/NotFound_2'
  /fleet/{fleetId}/vehicles/enroll:
    post:
      operationId: enrollVehicle
      summary: Enroll Vehicle
      description: Enroll a vehicle in the telematics fleet program.
      tags:
      - Vehicles
      parameters:
      - name: fleetId
        in: path
        required: true
        schema:
          type: string
        description: Fleet identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VehicleEnrollmentRequest'
      responses:
        '201':
          description: Vehicle enrolled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Vehicle'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  schemas:
    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
    VehicleTelemetry:
      type: object
      properties:
        vin:
          type: string
        odometer:
          type: number
          description: Odometer reading in miles
        fuelLevel:
          type: integer
          description: Fuel percentage (0-100)
        distanceSinceLastRefuel:
          type: number
          description: Miles driven since last refuel
        estimatedRange:
          type: number
          description: Estimated range remaining in miles
        lastReportedAt:
          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
    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
    VehicleEnrollmentRequest:
      type: object
      required:
      - vin
      properties:
        vin:
          type: string
          minLength: 17
          maxLength: 17
          description: Vehicle Identification Number
        unitId:
          type: string
          description: Telematics unit identifier (if known)
        services:
          type: array
          items:
            type: string
          description: List of data services to subscribe to
    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
    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
          - false
        lastUpdatedAt:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    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
    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
    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
    Vehicle:
      type: object
      properties:
        vin:
          type: string
          description: Vehicle Identification Number
        unitId:
          type: string
          description: Telematics unit identifier
        make:
          type: string
          description: Vehicle make (Toyota, Lexus)
        model:
          type: string
        year:
          type: integer
        color:
          type: string
        trim:
          type: string
        enrollmentStatus:
          type: string
          enum:
          - active
          - inactive
          - pending
        fleetId:
          type: string
        enrolledAt:
          type: string
          format: date-time
    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
    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
    NotificationList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Notification'
        total:
          type: integer
        unreadCount:
          type: integer
    ServiceHistoryList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ServiceHistory'
    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'
    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
    VehicleSubscriptions:
      type: object
      properties:
        vin:
          type: string
        connectedServices:
          type: array
          items:
            type: object
            properties:
              serviceType:
                type: string
                description: Type of connected service
              status:
                type: string
                enum:
                - active
                - expired
                - trial
                - cancelled
              effectiveDate:
                type: string
                format: date
              terminationDate:
                type: string
                format: date
        satelliteRadio:
          type: object
          properties:
            provider:
              type: string
            status:
              type: string
              enum:
              - active
              - expired
              - trial
              - cancelled
            effectiveDate:
              type: string
              format: date
            terminationDate:
              type: string
              format: date
    VehicleStatus:
      type: object
      properties:
        vin:
          type: string
        ignition:
          type: string
          enum:
          - true
          - false
        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
    ConnectedVehicleList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ConnectedVehicle'
    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
    VehicleList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Vehicle'
        total:
          type: integer
        page:
          type: integer
        limit:
          type: integer
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Vehicle not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound_2:
      description: Vehicle or resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT