Data Models
Core data model schemas and field definitions for the Open VTS API.
These are the primary data structures returned by the API. Field types, nullability, and descriptions are listed below for each model.
User
15 fields| Field | Type | Nullable | Description |
|---|---|---|---|
uid | number | No | — |
name | string | No | — |
email | string | Yes | — |
username | string | No | — |
mobilePrefix | string | Yes | — |
mobileNumber | string | Yes | — |
isEmailVerified | boolean | No | — |
isMobileVerified | boolean | No | — |
loginType | "SUPERADMIN" | "ADMIN" | "USER" | "SUBUSER" | "TEAM" | "DRIVER" | No | — |
parentUserId | number | Yes | — |
isActive | boolean | No | — |
profileUrl | string | Yes | — |
credits | number | No | — |
createdAt | string | No | ISO 8601 |
updatedAt | string | No | — |
Vehicle
17 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
name | string | No | — |
vin | string | Yes | — |
plateNumber | string | Yes | — |
imei | string | Yes | — |
deviceId | number | Yes | — |
vehicleTypeId | number | Yes | — |
primaryUserId | number | Yes | — |
planId | number | Yes | — |
addedByUserId | number | No | — |
secondaryExpiry | string | Yes | ISO 8601 |
gmtOffset | string | Yes | e.g. "+05:30" |
isActive | boolean | No | — |
attributes | object | Yes | — |
createdAt | string | No | — |
updatedAt | string | No | — |
deletedAt | string | Yes | — |
Device
14 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
imei | string | No | — |
deviceTypeId | number | No | — |
simId | number | Yes | — |
adminUserId | number | No | — |
status | "IN_STOCK" | "IN_USE" | "IN_SCRAP" | No | — |
isActive | boolean | No | — |
speedVariation | number | Yes | — |
distanceVariation | number | Yes | — |
odometer | number | Yes | — |
engineHours | number | Yes | — |
ignitionSource | "ACC" | "MOTION" | Yes | — |
createdAt | string | No | — |
updatedAt | string | No | — |
SIM Card
10 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
simNumber | string | Yes | — |
imsi | string | Yes | — |
iccid | string | Yes | — |
providerId | string | Yes | — |
adminUserId | number | No | — |
status | "IN_STOCK" | "IN_USE" | "IN_SCRAP" | No | — |
isActive | boolean | No | — |
createdAt | string | No | — |
updatedAt | string | No | — |
Driver
12 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
name | string | No | — |
email | string | Yes | — |
mobileCode | string | No | — |
mobile | string | No | — |
username | string | No | — |
isActive | boolean | No | — |
isVerified | boolean | No | — |
primaryUserId | number | Yes | — |
createdByUserId | number | No | — |
createdAt | string | No | — |
updatedAt | string | No | — |
Geofence
12 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
name | string | No | — |
description | string | Yes | — |
type | "POLYGON" | "CIRCLE" | "LINE" | No | — |
color | string | Yes | — |
radius | number | Yes | — |
toleranceMeters | number | Yes | — |
isActive | boolean | No | — |
userId | number | No | — |
geodata | object | Yes | { kind: "CIRCLE"|"POLYGON"|"LINE"; center?; radiusM?; geometry?: GeoJSON; toleranceM? } |
createdAt | string | No | — |
updatedAt | string | No | — |
PricingPlan
9 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
name | string | No | — |
price | number | No | — |
currency | string | No | ISO 4217 (e.g., INR, USD) |
durationDays | number | No | — |
adminUserId | number | No | — |
isActive | boolean | No | — |
createdAt | string | No | — |
updatedAt | string | No | — |
Transaction
10 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
fromUserId | number | No | — |
toUserId | number | No | — |
amount | number | No | Decimal |
currency | string | No | — |
status | "PENDING" | "SUCCESS" | "FAILED" | No | — |
reference | string | Yes | — |
paymentMode | "CASH" | "CREDIT_CARD" | "BANK_TRANSFER" | "WALLET" | No | — |
createdAt | string | No | — |
updatedAt | string | No | — |
Ticket
12 fields| Field | Type | Nullable | Description |
|---|---|---|---|
id | number | No | — |
ticketNo | string | No | — |
title | string | No | — |
status | "OPEN" | "IN_PROGRESS" | "CLOSED" | No | — |
category | "SERVER" | "NOTIFICATIONS" | "MAPS" | "BILLING" | "INSTALLATION" | "OTHER" | No | — |
priority | "LOW" | "MEDIUM" | "HIGH" | No | — |
fromUserId | number | No | — |
toUserId | number | Yes | — |
messages | TicketMessage[] | No | — |
createdAt | string | No | — |
updatedAt | string | No | — |
closedAt | string | Yes | — |
Telemetry (Live)
16 fields| Field | Type | Nullable | Description |
|---|---|---|---|
imei | string | No | — |
latitude | number | No | — |
longitude | number | No | — |
speed | number | No | km/h |
heading | number | No | 0-360 degrees |
altitude | number | No | — |
accuracy | number | No | — |
ignition | boolean | No | — |
ac | boolean | No | — |
door | boolean | No | — |
satellites | number | No | — |
batteryVoltage | number | No | — |
signalStrength | number | No | — |
serverTime | string | No | ISO 8601 |
deviceTime | string | No | ISO 8601 |
address | string | Yes | — |