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: []