Delicias #4105A, Residencial Lincoln
Monterrey, MX 64310
8:00AM - 6:00PM
Lunes a sábado
Atención 24/7
(81) 1125 5793

GDTrack Api Reference

Base URL: /api, Version: 7.4.2

Default request content-types: application/json
Default response content-types: application/json
Schemes: http

Summary

Path Operation Description
/attributes/computed GET

Fetch a list of Attributes

POST

Create an Attribute

/attributes/computed/{id} DELETE

Delete an Attribute

PUT

Update an Attribute

/calendars GET

Fetch a list of Calendars

POST

Create a Calendar

/calendars/{id} DELETE

Delete a Calendar

PUT

Update a Calendar

/commands GET

Fetch a list of Saved Commands

POST

Create a Saved Command

/commands/send GET

Fetch a list of Saved Commands supported by Device at the moment

POST

Dispatch commands to device

/commands/types GET

Fetch a list of available Commands for the Device or all possible Commands if Device ommited

/commands/{id} DELETE

Delete a Saved Command

PUT

Update a Saved Command

/devices GET

Fetch a list of Devices

POST

Create a Device

/devices/{id} DELETE

Delete a Device

PUT

Update a Device

/devices/{id}/accumulators PUT

Update total distance and hours of the Device

/drivers GET

Fetch a list of Drivers

POST

Create a Driver

/drivers/{id} DELETE

Delete a Driver

PUT

Update a Driver

/events/{id} GET
/geofences GET

Fetch a list of Geofences

POST

Create a Geofence

/geofences/{id} DELETE

Delete a Geofence

PUT

Update a Geofence

/groups GET

Fetch a list of Groups

POST

Create a Group

/groups/{id} DELETE

Delete a Group

PUT

Update a Group

/maintenance GET

Fetch a list of Maintenance

POST

Create a Maintenance

/maintenance/{id} DELETE

Delete a Maintenance

PUT

Update a Maintenance

/notifications GET

Fetch a list of Notifications

POST

Create a Notification

/notifications/test POST

Send test notification to current user via Email and SMS

/notifications/types GET

Fetch a list of available Notification types

/notifications/{id} DELETE

Delete a Notification

PUT

Update a Notification

/permissions DELETE

Unlink an Object from another Object

POST

Link an Object to another Object

/positions GET

Fetches a list of Positions

/reports/events GET

Fetch a list of Events within the time period for the Devices or Groups

/reports/route GET

Fetch a list of Positions within the time period for the Devices or Groups

/reports/stops GET

Fetch a list of ReportStops within the time period for the Devices or Groups

/reports/summary GET

Fetch a list of ReportSummary within the time period for the Devices or Groups

/reports/trips GET

Fetch a list of ReportTrips within the time period for the Devices or Groups

/server GET

Fetch Server information

PUT

Update Server information

/session DELETE

Close the Session

GET

Fetch Session information

POST

Create a new Session

/statistics GET

Fetch server Statistics

/users GET

Fetch a list of Users

POST

Create a User

/users/{id} DELETE

Delete a User

PUT

Update a User

Security

basicAuth

Type: basic
Description:

Basic HTTP authorization with email and password

Paths

Fetch a list of Attributes

GET /attributes/computed

Without params, it returns a list of Attributes the user has access to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId
deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer #/parameters/deviceId
groupId

Standard users can use this only with _groupId_s, they have access to

query integer #/parameters/groupId
refresh query boolean #/parameters/refresh

Uses default content-types: application/json

200 OK

OK

Create an Attribute

POST /attributes/computed

body body object #/parameters/Attribute

Uses default content-types: application/json

200 OK

OK

Delete an Attribute

DELETE /attributes/computed/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update an Attribute

PUT /attributes/computed/{id}

id path integer #/parameters/entityId
body body object #/parameters/Attribute

Uses default content-types: application/json

200 OK

OK

Fetch a list of Calendars

GET /calendars

Without params, it returns a list of Calendars the user has access to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId

Uses default content-types: application/json

200 OK

OK

Create a Calendar

POST /calendars

body body object #/parameters/Calendar

Uses default content-types: application/json

200 OK

OK

Delete a Calendar

DELETE /calendars/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Calendar

PUT /calendars/{id}

id path integer #/parameters/entityId
body body object #/parameters/Calendar

Uses default content-types: application/json

200 OK

OK

Fetch a list of Saved Commands

GET /commands

Without params, it returns a list of Drivers the user has access to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId
deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer #/parameters/deviceId
groupId

Standard users can use this only with _groupId_s, they have access to

query integer #/parameters/groupId
refresh query boolean #/parameters/refresh

Uses default content-types: application/json

200 OK

OK

Create a Saved Command

POST /commands

body body object #/parameters/Command

Uses default content-types: application/json

200 OK

OK

Fetch a list of Saved Commands supported by Device at the moment

GET /commands/send

Return a list of saved commands linked to Device and its groups, filtered by current Device protocol support

deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer #/parameters/deviceId

Uses default content-types: application/json

200 OK

OK

400 Bad Request

Could happen when the user doesn't have permission for the device

Dispatch commands to device

POST /commands/send

Dispatch a new command or Saved Command if body.id set

Uses default content-types: application/json

Uses default content-types: application/json

200 OK

Command sent

202 Accepted

Command queued

400 Bad Request

Could happen when the user doesn't have permission or an incorrect command type for the device

Fetch a list of available Commands for the Device or all possible Commands if Device ommited

GET /commands/types

deviceId query integer
textChannel query boolean

Uses default content-types: application/json

200 OK

OK

400 Bad Request

Could happen when trying to fetch from a device the user does not have permission

Delete a Saved Command

DELETE /commands/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Saved Command

PUT /commands/{id}

id path integer #/parameters/entityId
body body object #/parameters/Command

Uses default content-types: application/json

200 OK

OK

Fetch a list of Devices

GET /devices

Without any params, returns a list of the user's devices

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId
id

To fetch one or more devices. Multiple params can be passed like id=31&id=42

query integer , multiple parameters (id=aaa&id=bbb)
uniqueId

To fetch one or more devices. Multiple params can be passed like uniqueId=333331&uniqieId=44442

query string , multiple parameters (uniqueId=aaa&uniqueId=bbb)

Uses default content-types: application/json

200 OK

OK

400 Bad Request

No permission

Create a Device

POST /devices

body body object #/parameters/Device

Uses default content-types: application/json

200 OK

OK

Delete a Device

DELETE /devices/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Device

PUT /devices/{id}

id path integer #/parameters/entityId
body body object #/parameters/Device

Uses default content-types: application/json

200 OK

OK

Update total distance and hours of the Device

PUT /devices/{id}/accumulators

Uses default content-types: application/json

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Fetch a list of Drivers

GET /drivers

Without params, it returns a list of Drivers the user has access to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId
deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer #/parameters/deviceId
groupId

Standard users can use this only with _groupId_s, they have access to

query integer #/parameters/groupId
refresh query boolean #/parameters/refresh

Uses default content-types: application/json

200 OK

OK

Create a Driver

POST /drivers

body body object #/parameters/Driver

Uses default content-types: application/json

200 OK

OK

Delete a Driver

DELETE /drivers/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Driver

PUT /drivers/{id}

id path integer #/parameters/entityId
body body object #/parameters/Driver

Uses default content-types: application/json

200 OK

OK

GET /events/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

200 OK

OK

Fetch a list of Geofences

GET /geofences

Without params, it returns a list of Geofences the user has access to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId
deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer #/parameters/deviceId
groupId

Standard users can use this only with _groupId_s, they have access to

query integer #/parameters/groupId
refresh query boolean #/parameters/refresh

Uses default content-types: application/json

200 OK

OK

Create a Geofence

POST /geofences

body body object #/parameters/Geofence

Uses default content-types: application/json

200 OK

OK

Delete a Geofence

DELETE /geofences/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Geofence

PUT /geofences/{id}

id path integer #/parameters/entityId
body body object #/parameters/Geofence

Uses default content-types: application/json

200 OK

OK

Fetch a list of Groups

GET /groups

Without any params, returns a list of the Groups the user belongs to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId

Uses default content-types: application/json

200 OK

OK

Create a Group

POST /groups

body body object #/parameters/Group

Uses default content-types: application/json

200 OK

OK

400 Bad Request

No permission

Delete a Group

DELETE /groups/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Group

PUT /groups/{id}

id path integer #/parameters/entityId
body body object #/parameters/Group

Uses default content-types: application/json

200 OK

OK

Fetch a list of Maintenance

GET /maintenance

Without params, it returns a list of Maintenance the user has access to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId
deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer #/parameters/deviceId
groupId

Standard users can use this only with _groupId_s, they have access to

query integer #/parameters/groupId
refresh query boolean #/parameters/refresh

Uses default content-types: application/json

200 OK

OK

Create a Maintenance

POST /maintenance

body body object #/parameters/Maintenance

Uses default content-types: application/json

200 OK

OK

Delete a Maintenance

DELETE /maintenance/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Maintenance

PUT /maintenance/{id}

id path integer #/parameters/entityId
body body object #/parameters/Maintenance

Uses default content-types: application/json

200 OK

OK

Fetch a list of Notifications

GET /notifications

Without params, it returns a list of Notifications the user has access to

all

Can only be used by admins or managers to fetch all entities

query boolean #/parameters/all
userId

Standard users can use this only with their own userId

query integer #/parameters/userId
deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer #/parameters/deviceId
groupId

Standard users can use this only with _groupId_s, they have access to

query integer #/parameters/groupId
refresh query boolean #/parameters/refresh

Uses default content-types: application/json

200 OK

OK

Create a Notification

POST /notifications

body body object #/parameters/Notification

Uses default content-types: application/json

200 OK

OK

Send test notification to current user via Email and SMS

POST /notifications/test

Uses default content-types: application/json

204 No Content

Successful sending

400 Bad Request

Could happen if sending has failed

Fetch a list of available Notification types

GET /notifications/types

Delete a Notification

DELETE /notifications/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a Notification

PUT /notifications/{id}

id path integer #/parameters/entityId
body body object #/parameters/Notification

Uses default content-types: application/json

200 OK

OK

Unlink an Object from another Object

DELETE /permissions

body body object #/parameters/Permission

Uses default content-types: application/json

204 No Content

No Content

Link an Object to another Object

POST /permissions

body body object #/parameters/Permission

Uses default content-types: application/json

200 OK

OK

400 Bad Request

No permission

Fetches a list of Positions

GET /positions

Without any params, it returns a list of last known positions for all the user's Devices. from and _to_ fields are not required with _id_

application/json text/csv application/gpx+xml

deviceId

deviceId is optional, but requires the from and _to_ parameters when used

query integer
from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time)
to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time)
id

To fetch one or more positions. Multiple params can be passed like id=31&id=42

query integer , multiple parameters (id=aaa&id=bbb)

application/json text/csv application/gpx+xml

200 OK

OK

Fetch a list of Events within the time period for the Devices or Groups

GET /reports/events

At least one deviceId or one groupId must be passed

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

deviceId query integer[] , multiple parameters (deviceId=aaa&deviceId=bbb) #/parameters/deviceIdArray
groupId query integer[] , multiple parameters (groupId=aaa&groupId=bbb) #/parameters/groupIdArray
type

% can be used to return events of all types

query string[]
from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/fromTime
to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/toTime

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

200 OK

OK

Fetch a list of Positions within the time period for the Devices or Groups

GET /reports/route

At least one deviceId or one groupId must be passed

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

deviceId query integer[] , multiple parameters (deviceId=aaa&deviceId=bbb) #/parameters/deviceIdArray
groupId query integer[] , multiple parameters (groupId=aaa&groupId=bbb) #/parameters/groupIdArray
from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/fromTime
to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/toTime

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

200 OK

OK

Fetch a list of ReportStops within the time period for the Devices or Groups

GET /reports/stops

At least one deviceId or one groupId must be passed

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

deviceId query integer[] , multiple parameters (deviceId=aaa&deviceId=bbb) #/parameters/deviceIdArray
groupId query integer[] , multiple parameters (groupId=aaa&groupId=bbb) #/parameters/groupIdArray
from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/fromTime
to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/toTime

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

200 OK

OK

Fetch a list of ReportSummary within the time period for the Devices or Groups

GET /reports/summary

At least one deviceId or one groupId must be passed

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

deviceId query integer[] , multiple parameters (deviceId=aaa&deviceId=bbb) #/parameters/deviceIdArray
groupId query integer[] , multiple parameters (groupId=aaa&groupId=bbb) #/parameters/groupIdArray
from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/fromTime
to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/toTime

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

200 OK

OK

Fetch a list of ReportTrips within the time period for the Devices or Groups

GET /reports/trips

At least one deviceId or one groupId must be passed

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

deviceId query integer[] , multiple parameters (deviceId=aaa&deviceId=bbb) #/parameters/deviceIdArray
groupId query integer[] , multiple parameters (groupId=aaa&groupId=bbb) #/parameters/groupIdArray
from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/fromTime
to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/toTime

application/json application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

200 OK

OK

Fetch Server information

GET /server

Uses default content-types: application/json

200 OK

OK

Update Server information

PUT /server

Uses default content-types: application/json

Uses default content-types: application/json

200 OK

OK

Close the Session

DELETE /session

application/x-www-form-urlencoded

Uses default content-types: application/json

204 No Content

No Content

Fetch Session information

GET /session

application/x-www-form-urlencoded

token query string

Uses default content-types: application/json

200 OK

OK

404 Not Found

Not Found

Create a new Session

POST /session

application/x-www-form-urlencoded

email formData string
password formData string (password)

Uses default content-types: application/json

200 OK

OK

401 Unauthorized

Unauthorized

Fetch server Statistics

GET /statistics

from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/fromTime
to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time) #/parameters/toTime

Uses default content-types: application/json

200 OK

OK

Fetch a list of Users

GET /users

userId

Can only be used by admin or manager users

query string

Uses default content-types: application/json

200 OK

OK

400 Bad Request

No Permission

Create a User

POST /users

body body object #/parameters/User

Uses default content-types: application/json

200 OK

OK

Delete a User

DELETE /users/{id}

id path integer #/parameters/entityId

Uses default content-types: application/json

204 No Content

No Content

Update a User

PUT /users/{id}

id path integer #/parameters/entityId
body body object #/parameters/User

Uses default content-types: application/json

200 OK

OK

Parameter definitions

entityId id path integer
all all

Can only be used by admins or managers to fetch all entities

query boolean
refresh refresh query boolean
userId userId

Standard users can use this only with their own userId

query integer
deviceId deviceId

Standard users can use this only with _deviceId_s, they have access to

query integer
groupId groupId

Standard users can use this only with _groupId_s, they have access to

query integer
Device body body object
Permission body body object
Group body body object
User body body object
Geofence body body object
Calendar body body object
Attribute body body object
Driver body body object
Command body body object
Notification body body object
Maintenance body body object
deviceIdArray deviceId query integer[] , multiple parameters (deviceId=aaa&deviceId=bbb)
groupIdArray groupId query integer[] , multiple parameters (groupId=aaa&groupId=bbb)
fromTime from

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time)
toTime to

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

query string (date-time)

Schema definitions

Attribute: object

id: integer
description: string
attribute: string
expression: string
type: string

String|Number|Boolean

Calendar: object

id: integer
name: string
data: string

base64 encoded in iCalendar format

atributes: object

Command: object

id: integer
deviceId: integer
description: string
type: string
attributes: object

CommandType: object

type: string

Device: object

id: integer
name: string
uniqueId: string
status: string
disabled: boolean
lastUpdate: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

positionId: integer
groupId: integer
phone: string
model: string
contact: string
category: string
geofenceIds: integer[]
integer
attributes: object

DeviceAccumulators: object

deviceId: integer
totalDistance: number

in meters

hours: number

Driver: object

id: integer
name: string
uniqueId: string
atributes: object

Event: object

id: integer
type: string
serverTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

deviceId: integer
positionId: integer
geofenceId: integer
maintenanceId: integer
attributes: object

Geofence: object

id: integer
name: string
description: string
area: string
calendarId: integer
attributes: object

Group: object

id: integer
name: string
groupId: integer
attributes: object

Maintenance: object

id: integer
name: string
type: string
start: number
period: number
atributes: object

Notification: object

id: integer
type: string
always: boolean
web: boolean
mail: boolean
sms: boolean
calendarId: integer
attributes: object

NotificationType: object

type: string

Permission: object

This is a permission map that contain two object indexes. It is used to link/unlink objects. Order is important. Example: { deviceId:8, geofenceId: 16 }

userId: integer

User Id, can be only first parameter

deviceId: integer

Device Id, can be first parameter or second only in combination with userId

groupId: integer

Group Id, can be first parameter or second only in combination with userId

geofenceId: integer

Geofence Id, can be second parameter only

calendarId: integer

Geofence Id, can be second parameter only and only in combination with userId

attributeId: integer

Computed Attribute Id, can be second parameter only

driverId: integer

Driver Id, can be second parameter only

managedUserId: integer

User Id, can be second parameter only and only in combination with userId

Position: object

id: integer
deviceId: integer
protocol: string
deviceTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

fixTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

serverTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

outdated: boolean
valid: boolean
latitude: number
longitude: number
altitude: number
speed: number

in knots

course: number
address: string
accuracy: number
network: string
attributes: object

ReportStops: object

deviceId: integer
deviceName: string
duration: integer
startTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

address: string
lat: number
lon: number
endTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

spentFuel: number

in liters

engineHours: integer

ReportSummary: object

deviceId: integer
deviceName: string
maxSpeed: number

in knots

averageSpeed: number

in knots

distance: number

in meters

spentFuel: number

in liters

engineHours: integer

ReportTrips: object

deviceId: integer
deviceName: string
maxSpeed: number

in knots

averageSpeed: number

in knots

distance: number

in meters

spentFuel: number

in liters

duration: integer
startTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

startAddress: string
startLat: number
startLon: number
endTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

endAddress: string
endLat: number
endLon: number
driverUniqueId: integer
driverName: string

Server: object

id: integer
registration: boolean
readonly: boolean
deviceReadonly: boolean
limitCommands: boolean
map: string
bingKey: string
mapUrl: string
poiLayer: string
latitude: number
longitude: number
zoom: integer
twelveHourFormat: boolean
version: string
forceSettings: boolean
coordinateFormat: string
attributes: object

Statistics: object

captureTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

activeUsers: integer
activeDevices: integer
requests: integer
messagesReceived: integer
messagesStored: integer

User: object

id: integer
name: string
email: string
readonly: boolean
administrator: boolean
map: string
latitude: number
longitude: number
zoom: integer
password: string
twelveHourFormat: boolean
coordinateFormat: string
disabled: boolean
expirationTime: string (date-time)

in IS0 8601 format. eg. 1963-11-22T18:30:00Z

deviceLimit: integer
userLimit: integer
deviceReadonly: boolean
limitCommands: boolean
poiLayer: string
token: string
attributes: object