gRPC API
Connection
| Server | api.vestigeview.app:443 (gRPC over TLS) |
| Service | vestige.api.v1.ApiService |
| Service definition | Download vestige-api.proto |
| Reflection | Enabled |
| Auth | Bearer token, see Authentication |
There is no official SDK. Generate a client for your language from vestige-api.proto with the standard gRPC tools. You can also explore the API with Postman or grpcurl, which read the service definition through reflection:
grpcurl -H "authorization: Bearer $TOKEN" api.vestigeview.app:443 list vestige.api.v1.ApiService
grpcurl -H "authorization: Bearer $TOKEN" -d '{}' \
api.vestigeview.app:443 vestige.api.v1.ApiService/GetAssets
Every call sees only the vehicles and drivers of the account your credentials belong to.
Methods
| Method | Returns | Access |
|---|---|---|
GetAssets | All vehicles: ID and name | Read |
GetAssetStatuses | Latest odometer, ignition, location, engine hours, battery level of one vehicle | Read |
GetAssetExtendedProperties | VIN, year, make, model, colour of one vehicle | Read |
GetAssetDiagnosticTroubleCodeDailyBuckets | Diagnostic trouble codes per day, for a date range | Read |
GetDrivers | All drivers: ID and name | Read |
PushDriverAssignment | Records that a driver took a vehicle | Write |
UnassignVehicle | Records that a vehicle has no driver | Write |
UnassignDriver | Records that a driver has no vehicle | Write |
GetDriverCoachingWorklist | Safety events waiting on a manager, a driver or the assignment (preview) | Read |
GetFleetSafeDriving | The fleet's safety event rate, band and trend (preview) | Read |
GetAssets
Takes no parameters. Returns every vehicle with its Id and Name. Drivers are not included; use GetDrivers for those.
GetAssetStatuses
Returns the latest known value of each status you ask for.
{
"AssetId": "0b7d9f3e-6a4c-4d8e-9a59-3d2f1c0e8b71",
"StatusTypes": ["LOCATION", "IGNITION", "ODOMETER"]
}
List every status you want in StatusTypes. A status you do not list is not returned.
| Status type | Value | Unit |
|---|---|---|
ODOMETER | Value | km |
IGNITION | Value | true = on |
LOCATION | Latitude, Longitude, Speed, Address, DisplayName | degrees, km/h |
ENGINEONDURATION | Value | hours |
ENGINEBATTERYLEVEL | Value | volts |
Each status has its own Date: the time the vehicle reported that value. A status the vehicle has never reported is missing from the reply.
GetAssetExtendedProperties
Returns the properties of one vehicle that you ask for by key:
| Key | Meaning |
|---|---|
Asset.Details.Vin | VIN |
Asset.Details.Year | Model year |
Asset.Details.Make | Make |
Asset.Details.Model | Model |
Asset.Details.Color | Colour |
GetAssetDiagnosticTroubleCodeDailyBuckets
Returns the diagnostic trouble codes of one vehicle, grouped by day. FromDate and ToDate use the format yyyy-MM-dd.
GetDrivers
Takes no parameters. Returns every driver with its Id and Name.
Driver assignment
These calls change data in VestigeView, so read-only credentials cannot use them. Credentials without write access receive PERMISSION_DENIED. Contact us if your integration needs to write.
PushDriverAssignmentrecords that a driver took a vehicle at a point in time.VehicleIdcomes fromGetAssets,DriverIdfromGetDrivers.UnassignVehiclerecords that a vehicle has no driver from a point in time. It does not say where the previous driver went.UnassignDriverrecords that a driver has no vehicle from a point in time. It does not say who now has the vehicle. Use it when you know the driver finished, not that the vehicle became empty.
For all three:
Dateis UTC with whole-second resolution. Sub-second values and future dates are rejected.- A reply of
Accepted: truemeans the change is queued. It is applied moments later, so a read straight after may not show it yet.
Driver Coaching (preview)
:::caution Sample data
These two calls are a preview. Every account gets the same sample fleet, not its own drivers and events. Every reply has SampleData: true so your integration can tell. Use them to try an integration, not to build on. The message shapes will stay when real data arrives.
:::
Rates are safety events per 1,000 miles, because that is how the bands are defined. A lower rate is better. Speeds and the main distance are in km and km/h, as elsewhere in this API.
GetDriverCoachingWorklist
Returns the safety events that are still waiting on someone, in three queues:
Queue | Waiting on | Statuses |
|---|---|---|
DRIVER_COACHING_QUEUE_WAITING_ON_YOU | A manager: a review, or a dispute to answer | PendingReview, Disputed |
DRIVER_COACHING_QUEUE_WAITING_ON_DRIVERS | The driver: to acknowledge or dispute | Released |
DRIVER_COACHING_QUEUE_WAITING_ON_ASSIGNMENT | Nobody: the driver assignment window is still open | Settling |
{
"Queue": "DRIVER_COACHING_QUEUE_WAITING_ON_YOU",
"DriverId": ""
}
Both fields are optional. Leave out Queue for all three queues, and DriverId for every driver.
- Items come in queue order, then soonest
DueAtfirst.DueAtis when the wait runs out. - There is no date range. The oldest item is the most urgent one.
- Each item has the event, the driver, the vehicle, the event type, the address,
Speedin km/h, and whether there is footage.
GetFleetSafeDriving
Returns what the Fleet safe driving card on the Fleet Safety dashboard shows.
{ "Period": "last30" }
Period is last30 (the default) or a calendar month as yyyy-MM. Any other value returns INVALID_ARGUMENT.
| Field | Meaning |
|---|---|
SafetyEventsPer1000Miles | The fleet's rate for the period. Missing when the fleet drove too little |
FleetBand | The band the rate falls in |
Bands | All five bands, best first. Key is the position (top, upper, middle, lower, bottom) and never changes. Name is what the account calls it. UpperLimit is missing for the bottom band |
Next | The band above, and the Gap: how much lower the rate must go to reach it. Missing in the best band |
SafetyEvents, Distance, DistanceMiles | The totals behind the rate. Distance is in km |
DriversRated, DriversTotal | Drivers with enough distance in the period to have a rate, out of all drivers |
Trend | The last eight weeks, oldest first. It does not follow Period. Pending above zero means the week can still rise |
TrendChange | The newer four weeks against the older four. Negative is better |
Errors
| Status code | Cause |
|---|---|
UNAUTHENTICATED | The token is missing, wrong or expired |
PERMISSION_DENIED | Your credentials cannot do this, for example a write with read-only access |
INVALID_ARGUMENT | A parameter is malformed, for example an ID that is not a GUID or a bad date |
NOT_FOUND | The vehicle or driver does not exist, or is not in your account |