Call our help line: 1 866-787-2548

REST Reference

Assets

Behaviours

Billing

Companies

Dispatch

File Hosting

Maintenance

Providers and Configurations

Reports

Users and Groups

API Definitions

GET/timezones

Gets a list of Timezones.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
timezonesArray.<Timezone>The list of valid system Timezones.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"timezones": [
		{
			"code": string,
			"dst": boolean,
			"name": string,
			"offset": number
		}
	]
}
Possible exceptions
HTTP StatusError CodeDescription
5002System Timezone list could not be retrieved.
If you receive this error, please contact technical support.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/timezones/{code}

Gets details of the specified Timezone.
URL Parameters
ParameterTypeRequiredDescription
codestringrequiredUnique identifier of the Timezone.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
timezoneTimezoneThe requested Timezone.
timezone.codecodifiedUnique timezone code
timezone.dstbooleanIndicates whether this timezone abides by daylight savings
timezone.namestringCommon timezone name
timezone.offsetint16Minutes offset from GMT
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"timezone": {
		"code": string,
		"dst": boolean,
		"name": string,
		"offset": number
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a timezone object, or it is invalid.
4003The timezone object does not contain a code, or it is invalid.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40462The Timezone was not found by its codified identifier.

Assets

GET/assets?includeSuspended=boolean&includeMessages=boolean&includeTasks=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets (when no additional query-string parameters are given) or /companies/{your-company-id}/assets?{keys=values} (when at least one additional query-string key/value is given).
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeMessagesbooleanoptionalfalseFalse by default, but when true will include Asset.messages..
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
includeTasksbooleanoptionalfalseFalse by default, but when true will include Asset.tasks..
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/assets

Creates a new, or updates an existing Asset.
HTTP Request body description
PropertyTypeRequiredDescription
assetObject.<string, ?>alwaysA simple object to contain the Asset parameters.
asset.attributesObject.<string, AssetAttribute>optionalAllows you to add, remove, and replace attributes. For each AssetAttribute in the attributes object, the value will be replaced on the Asset. If value is null, the attribute is removed from the Asset. If the key in the attributes object is different from the codified(AssetAttribute.name) in the object, the attribute of the key is removed from the Asset, and one of the codified name is added to the Asset. If a new value or null is not provided for a current attribute, no change is made.
asset.colourcolour
maximum-length: 22
optionalThe pretty-pretty colour of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.companyuint64?createThe identifier of the Company to which this Asset belongs. After creation, this value is read-only.
asset.contactuint64?create (for person)The contact card details for this Asset. Only applicable if asset.kind is AssetType.person.
asset.engineHoursdouble?optionalThe number of hours the engine has been running for this Vehicle. Only applicable if asset.kind is AssetType.vehicle.
asset.iconuint64?
see: Icon.id
createThe identifier of the Icon used to represent this Asset in the UI.
asset.iduint64?updateThe unique identifier of the Asset you want to update.
asset.kindAssetType?createThe kind of Asset being created. After creation, this value is read-only.
asset.labelsArray.<codified>
for values see: LabelStyle.code
optionalA list of codified label names to categorize/organize this Asset.
asset.makestringoptionalThe manufacturer of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.messagingAddressstringoptionalThe email address or phone number of this Asset when a Person's Contact card is blank, or the Provider's PND is not installed.
asset.modelstringoptionalThe model of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.namestring
maximum-length: 100
createName for the Asset.
asset.notesstringoptionalNotes for the Asset.
asset.odometerdouble?optionalThe distance travelled by this Asset. Can be a GPS odometer, OBD-II odometer, or other depending on scripts.
asset.picturesArray.<uint64>
for values see: Picture.id
optionalThe identifiers of Pictures of this Asset.
asset.platestringoptionalThe license plate of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.referencesObject.<string, string>optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Asset.
asset.relationshipsArray.<uint64>
for values see: Asset.id
optionalA list of related asset identifiers like a driver for a Vehicle, or Trailer for a truck.
asset.serialstringoptionalThe manufacturer's identification number of this Trailer. Only applicable if asset.kind is AssetType.vehicle.
asset.tagsArray.<string>optionalReplaces the Asset's status tags with the given list of codified tags.
asset.vArray.<int32>optional
asset.vinstringoptionalThe Vehicle Identification Number of this Vehicle. Only applicable if asset.kind is AssetType.trailer.
asset.yearuint16?optionalThe year this Vehicle or Trailer was built. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"asset": {
		"attributes": {
			string: {
				"asset": number,
				"complex": string,
				"dts": string,
				"global": boolean,
				"name": string,
				"provider": string,
				"raw": Object,
				"simple": string,
				"unit": string
			}
		},
		"colour": string,
		"company": number,
		"contact": number,
		"engineHours": number,
		"icon": number,
		"id": number,
		"kind": string,
		"labels": [
			string
		],
		"make": string,
		"messagingAddress": string,
		"model": string,
		"name": string,
		"notes": string,
		"odometer": number,
		"pictures": [
			number
		],
		"plate": string,
		"references": {
			string: string
		},
		"relationships": [
			number
		],
		"serial": string,
		"tags": [
			string
		],
		"v": [
			number
		],
		"vin": string,
		"year": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetRespIdCompanyAn object which contains the "id" and "company" keys.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003No valid changes would be performed.
4003During create: When creating a new Asset, a name was not given.
4003During create: When creating a new Asset, a company was not given.
4003During create: When creating a new Asset, an icon was not given.
4003During create (for person): When creating a new Person, a contact was not given.
4003During update: When updating an Asset, the name was given as null or blank.
4003During update: When updating an Asset, the v was not an array, or contained too few numbers.
4003During create: The kind value is not a known AssetType.
Returns an ErrorDetailEnum as the errorDetails.
4003One of the asset.attributes names is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the asset.attributes values is not null or an object.
Returns an ErrorDetailInput as the errorDetails.
4003The asset.attributes object is given, but empty.
Returns an ErrorDetailInput as the errorDetails.
4003The asset.messagingAddress contains values that cannot be parsed as a phone number or email address.
Returns an ErrorDetailInput as the errorDetails.
4003One of the asset.pictures given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003The asset.references were not provided as null or an object.
Returns an ErrorDetailInput as the errorDetails.
4003One of the asset.relationships given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003During create: When creating a new Asset, too many asset.references were given as input.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to create a new Asset.
4015You do not have permission to update this Asset.
4006During update: When updating an Asset, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420During update: When updating, the Asset was not found by its unique identifier.
40422One of the Assets given as input in the asset.relationships array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
40431The asset.contact given as input was not found.
40433The asset.icon given as input was not found.
40469One of the asset.pictures given as input in the pictures array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
40171During update: Changing the labels on this Asset in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
40396During update: When updating, the Asset is suspended. Before making changes to an Asset, it must be reactivated.
409130During update: When updating an Asset, the asset.company can not be changed.
409130During update: When updating an Asset, the asset.kind can not be changed.
409130During update: When updating an Asset, the resulting number of asset.references would be too high.

DELETE/assets

Deletes an existing Asset.
Response description
PropertyTypeDescription
assetRespDeletedAn object which contains the Asset's id, owning Company id, and deleted status.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.deletedbooleanFlag showing if the object is deleted.
asset.iduint64?Identifier given as input for the command.
asset.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to delete this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

GET/assets/{assetId}?includeMessages=boolean&includeTasks=boolean&includeDeleted=boolean

Gets details of the specified Asset.
URL Parameters
ParameterTypeRequiredDefaultDescription
assetIduint64requiredUnique identifier of the Asset.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeMessagesbooleanoptionalfalseFalse by default, but when true, the command will also return AssetMessages for the asset.
includeTasksbooleanoptionalfalseFalse by default, but when true the command will also return the AssetDispatch for the asset.
Response description
PropertyTypeDescription
assetAssetThe requested Asset.
asset.attributesObject.<codified, AssetAttribute>
for keys see: AssetAttribute.name
A list of attributes given to this asset by the connection device such as wiring state, VBus, etc.
asset.companyuint64The company to which this asset belongs.
asset.dispatchAssetDispatchCurrent jobs dispatched and driving directions.
asset.dispatch.companyuint64The company to which this asset belongs.
asset.dispatch.directionsArray.<DispatchDirection>Driving directions and route path details.
asset.dispatch.iduint64Unique identifier of this asset.
asset.dispatch.jobsArray.<uint64>The current list of DispatchJobs assigned to the asset.
asset.dispatch.lastDispatcheddatetimeTimestamp from the last update to this AssetDispatch by a User, Machine, Asset, or an assigned DispatchJob.
asset.dispatch.processedUtcdatetimeWhen the was change procesed.
asset.dispatch.tasks
Deprecated
Array.<DispatchTask>The current list of tasks assigned to this asset.
asset.dispatch.updatedby: login, from: monster
asset.dispatch.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
asset.iconuint64
see: Icon.id
The icon that represents this asset on the map and in lists.
asset.iduint64Unique identifier of this asset.
asset.kindAssetTypeType of asset.
asset.labelsArray.<codified>
for values see: LabelStyle.code
Codified label names.
asset.messagesArray.<AssetMessage>A list of messages sent to or from this asset.
asset.messagingAddressstring
maximum-length: 254
The fall-back address which is used to send Messages if the asset is a Person and has no Contact phone or email.
asset.namestring
maximum-length: 100
This thing's name.
asset.notesstringNotes about it.
asset.odometerdoubleThe cumulative distance travelled in kilometres.
asset.picturesArray.<uint64>
for values see: Picture.id
A list of photos of this thing.
asset.placesObject.<uint64, AssetPlaceStatus>
for keys see: Place.id
The current state of this asset's interaction with known Places.
asset.positionPositionThe things GPS coordinates including speed, bearing, and street information.
asset.position.accuracyuint32?Threshold in meters for the accuracy of a position
asset.position.addressstringThe road segment description
asset.position.altitudedouble?Distance in meters from the sea level
asset.position.bearinguint16?Direction of travel
asset.position.dtsdatetimeThe Date/Time of the GPS reading
asset.position.latdouble?Latitude
asset.position.lngdouble?Longitude
asset.position.originstringProvider Identifier
asset.position.speeddouble?Speed
asset.position.speedLimitdouble?The posted speed limit for the road segment
asset.position.streetAddressStreetAddressA better description of the current road-segment
asset.position.streetAddress.citystringCity name.
asset.position.streetAddress.countrystring
fixed length: 2
Country code. Codes should be a value from ISO 3166-1 alpha-2.
asset.position.streetAddress.isTollbooleanIndicates that there is a toll for the current road segment.
asset.position.streetAddress.numberstringHouse number.
asset.position.streetAddress.postalstringPostal or zip code.
asset.position.streetAddress.provincestring
fixed length: 2
Province or state code. Codes should be a value from ISO 3166-2.
asset.position.streetAddress.regionstringRegion name.
asset.position.streetAddress.streetstringFull street name.
asset.processedUtcdatetimeWhen the was change procesed.
asset.providersArray.<string>
for values see: Provider.id
The list of devices providing events for this asset.
asset.reference
Deprecated
string
maximum-length: 100
A custom field used to refer to an external system.
Use asset.references[AssetGeneral.REFERENCE] instead.
asset.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
Name/value collections of custom fields used to refer to external systems.
asset.relationshipsArray.<uint64>
for values see: Asset.id
A list of assets related to this one; like a Person for a Vehicle (driver).
asset.tagsArray.<codified>
for values see: LabelStyle.code
The codified status tag names.
asset.updatedby: login, from: monster
asset.vArray.<int32>
fixed count: 3
Object version keys used to validate synchronization for all object properties.
asset.v[0]int32The first element is for the AssetGeneral properties.
asset.v[1]int32The second element is for the AssetAdvanced properties.
asset.v[2]int32The third element is for the Asset.dispatch properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"attributes": {
			string: {
				"asset": number,
				"complex": string,
				"dts": string,
				"global": boolean,
				"name": string,
				"provider": string,
				"raw": Object,
				"simple": string,
				"unit": string
			}
		},
		"company": number,
		"dispatch": {
			"company": number,
			"directions": [
				{
					"directions": [
						{ /* recursive DispatchDirection objects */ }
					],
					"distance": number,
					"duration": string,
					"instructions": string,
					"job": number,
					"path": string,
					"step": number
				}
			],
			"id": number,
			"jobs": [
				number
			],
			"lastDispatched": string,
			"processedUtc": string,
			"tasks": [
				{
					"address": string,
					"arrived": string,
					"asset": number,
					"attachments": [
						number
					],
					"company": number,
					"completed": string,
					"created": string,
					"duration": string,
					"eta": string,
					"id": number,
					"instructions": string,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"processedUtc": string,
					"reference": string,
					"references": {
						string: string
					},
					"signatory": string,
					"signature": boolean,
					"status": string,
					"updated": {
					},
					"v": [
						number
					]
				}
			],
			"updated": {
			},
			"v": [
				number
			]
		},
		"icon": number,
		"id": number,
		"kind": string,
		"labels": [
			string
		],
		"messages": [
			{
				"asset": number,
				"body": string,
				"company": number,
				"delivered": string,
				"folder": string,
				"from": string,
				"id": number,
				"incoming": boolean,
				"kind": string,
				"processed": string,
				"processedUtc": string,
				"readBy": string,
				"status": string,
				"subject": string,
				"to": string,
				"updated": {
				},
				"user": string,
				"v": [
					number
				]
			}
		],
		"messagingAddress": string,
		"name": string,
		"notes": string,
		"odometer": number,
		"pictures": [
			number
		],
		"places": {
			string: {
				"enter": string,
				"kind": string,
				"latest": string
			}
		},
		"position": {
			"accuracy": number,
			"address": string,
			"altitude": number,
			"bearing": number,
			"dts": string,
			"lat": number,
			"lng": number,
			"origin": string,
			"speed": number,
			"speedLimit": number,
			"streetAddress": {
				"city": string,
				"country": string,
				"isToll": boolean,
				"number": string,
				"postal": string,
				"province": string,
				"region": string,
				"street": string
			}
		},
		"processedUtc": string,
		"providers": [
			string
		],
		"reference": string,
		"references": {
			string: string
		},
		"relationships": [
			number
		],
		"tags": [
			string
		],
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

POST/assets/{assetId}

Creates a new, or updates an existing Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64?optionalUnique identifier of the Asset. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
assetObject.<string, ?>alwaysA simple object to contain the Asset parameters.
asset.attributesObject.<string, AssetAttribute>optionalAllows you to add, remove, and replace attributes. For each AssetAttribute in the attributes object, the value will be replaced on the Asset. If value is null, the attribute is removed from the Asset. If the key in the attributes object is different from the codified(AssetAttribute.name) in the object, the attribute of the key is removed from the Asset, and one of the codified name is added to the Asset. If a new value or null is not provided for a current attribute, no change is made.
asset.colourcolour
maximum-length: 22
optionalThe pretty-pretty colour of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.companyuint64?createThe identifier of the Company to which this Asset belongs. After creation, this value is read-only.
asset.contactuint64?create (for person)The contact card details for this Asset. Only applicable if asset.kind is AssetType.person.
asset.engineHoursdouble?optionalThe number of hours the engine has been running for this Vehicle. Only applicable if asset.kind is AssetType.vehicle.
asset.iconuint64?
see: Icon.id
createThe identifier of the Icon used to represent this Asset in the UI.
asset.iduint64?updateThe unique identifier of the Asset you want to update.
asset.kindAssetType?createThe kind of Asset being created. After creation, this value is read-only.
asset.labelsArray.<codified>
for values see: LabelStyle.code
optionalA list of codified label names to categorize/organize this Asset.
asset.makestringoptionalThe manufacturer of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.messagingAddressstringoptionalThe email address or phone number of this Asset when a Person's Contact card is blank, or the Provider's PND is not installed.
asset.modelstringoptionalThe model of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.namestring
maximum-length: 100
createName for the Asset.
asset.notesstringoptionalNotes for the Asset.
asset.odometerdouble?optionalThe distance travelled by this Asset. Can be a GPS odometer, OBD-II odometer, or other depending on scripts.
asset.picturesArray.<uint64>
for values see: Picture.id
optionalThe identifiers of Pictures of this Asset.
asset.platestringoptionalThe license plate of this Vehicle or Trailer. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
asset.referencesObject.<string, string>optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Asset.
asset.relationshipsArray.<uint64>
for values see: Asset.id
optionalA list of related asset identifiers like a driver for a Vehicle, or Trailer for a truck.
asset.serialstringoptionalThe manufacturer's identification number of this Trailer. Only applicable if asset.kind is AssetType.vehicle.
asset.tagsArray.<string>optionalReplaces the Asset's status tags with the given list of codified tags.
asset.vArray.<int32>optional
asset.vinstringoptionalThe Vehicle Identification Number of this Vehicle. Only applicable if asset.kind is AssetType.trailer.
asset.yearuint16?optionalThe year this Vehicle or Trailer was built. Only applicable if asset.kind is AssetType.vehicle or AssetType.trailer.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"asset": {
		"attributes": {
			string: {
				"asset": number,
				"complex": string,
				"dts": string,
				"global": boolean,
				"name": string,
				"provider": string,
				"raw": Object,
				"simple": string,
				"unit": string
			}
		},
		"colour": string,
		"company": number,
		"contact": number,
		"engineHours": number,
		"icon": number,
		"id": number,
		"kind": string,
		"labels": [
			string
		],
		"make": string,
		"messagingAddress": string,
		"model": string,
		"name": string,
		"notes": string,
		"odometer": number,
		"pictures": [
			number
		],
		"plate": string,
		"references": {
			string: string
		},
		"relationships": [
			number
		],
		"serial": string,
		"tags": [
			string
		],
		"v": [
			number
		],
		"vin": string,
		"year": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetRespIdCompanyAn object which contains the "id" and "company" keys.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003No valid changes would be performed.
4003During create: When creating a new Asset, a name was not given.
4003During create: When creating a new Asset, a company was not given.
4003During create: When creating a new Asset, an icon was not given.
4003During create (for person): When creating a new Person, a contact was not given.
4003During update: When updating an Asset, the name was given as null or blank.
4003During update: When updating an Asset, the v was not an array, or contained too few numbers.
4003During create: The kind value is not a known AssetType.
Returns an ErrorDetailEnum as the errorDetails.
4003One of the asset.attributes names is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the asset.attributes values is not null or an object.
Returns an ErrorDetailInput as the errorDetails.
4003The asset.attributes object is given, but empty.
Returns an ErrorDetailInput as the errorDetails.
4003The asset.messagingAddress contains values that cannot be parsed as a phone number or email address.
Returns an ErrorDetailInput as the errorDetails.
4003One of the asset.pictures given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003The asset.references were not provided as null or an object.
Returns an ErrorDetailInput as the errorDetails.
4003One of the asset.relationships given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003During create: When creating a new Asset, too many asset.references were given as input.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to create a new Asset.
4015You do not have permission to update this Asset.
4006During update: When updating an Asset, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420During update: When updating, the Asset was not found by its unique identifier.
40422One of the Assets given as input in the asset.relationships array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
40431The asset.contact given as input was not found.
40433The asset.icon given as input was not found.
40469One of the asset.pictures given as input in the pictures array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
40171During update: Changing the labels on this Asset in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
40396During update: When updating, the Asset is suspended. Before making changes to an Asset, it must be reactivated.
409130During update: When updating an Asset, the asset.company can not be changed.
409130During update: When updating an Asset, the asset.kind can not be changed.
409130During update: When updating an Asset, the resulting number of asset.references would be too high.

DELETE/assets/{assetId}

Deletes an existing Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the Asset.
Response description
PropertyTypeDescription
assetRespDeletedAn object which contains the Asset's id, owning Company id, and deleted status.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.deletedbooleanFlag showing if the object is deleted.
asset.iduint64?Identifier given as input for the command.
asset.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to delete this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

GET/assets/{assetId}/advanceds?includeDeleted=boolean

Gets details of the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the AssetAdvanced.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
assetAdvancedAssetAdvancedThe requested Asset.
assetAdvanced.attributesObject.<codified, AssetAttribute>
for keys see: AssetAttribute.name
A list of attributes given to this asset by the connection device such as wiring state, VBus, etc.
assetAdvanced.companyuint64The company to which this asset belongs.
assetAdvanced.iduint64Unique identifier of this asset.
assetAdvanced.odometerdoubleThe cumulative distance travelled in kilometres.
assetAdvanced.placesObject.<uint64, AssetPlaceStatus>
for keys see: Place.id
The current state of this asset's interaction with known Places.
assetAdvanced.positionPositionThe things GPS coordinates including speed, bearing, and street information.
assetAdvanced.position.accuracyuint32?Threshold in meters for the accuracy of a position
assetAdvanced.position.addressstringThe road segment description
assetAdvanced.position.altitudedouble?Distance in meters from the sea level
assetAdvanced.position.bearinguint16?Direction of travel
assetAdvanced.position.dtsdatetimeThe Date/Time of the GPS reading
assetAdvanced.position.latdouble?Latitude
assetAdvanced.position.lngdouble?Longitude
assetAdvanced.position.originstringProvider Identifier
assetAdvanced.position.speeddouble?Speed
assetAdvanced.position.speedLimitdouble?The posted speed limit for the road segment
assetAdvanced.position.streetAddressStreetAddressA better description of the current road-segment
assetAdvanced.position.streetAddress.citystringCity name.
assetAdvanced.position.streetAddress.countrystring
fixed length: 2
Country code. Codes should be a value from ISO 3166-1 alpha-2.
assetAdvanced.position.streetAddress.isTollbooleanIndicates that there is a toll for the current road segment.
assetAdvanced.position.streetAddress.numberstringHouse number.
assetAdvanced.position.streetAddress.postalstringPostal or zip code.
assetAdvanced.position.streetAddress.provincestring
fixed length: 2
Province or state code. Codes should be a value from ISO 3166-2.
assetAdvanced.position.streetAddress.regionstringRegion name.
assetAdvanced.position.streetAddress.streetstringFull street name.
assetAdvanced.processedUtcdatetimeWhen the was change procesed.
assetAdvanced.providersArray.<string>
for values see: Provider.id
The list of devices providing events for this asset.
assetAdvanced.relationshipsArray.<uint64>
for values see: Asset.id
A list of assets related to this one; like a Person for a Vehicle (driver).
assetAdvanced.tagsArray.<codified>
for values see: LabelStyle.code
The codified status tag names.
assetAdvanced.updatedby: login, from: monster
assetAdvanced.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetAdvanced": {
		"attributes": {
			string: {
				"asset": number,
				"complex": string,
				"dts": string,
				"global": boolean,
				"name": string,
				"provider": string,
				"raw": Object,
				"simple": string,
				"unit": string
			}
		},
		"company": number,
		"id": number,
		"odometer": number,
		"places": {
			string: {
				"enter": string,
				"kind": string,
				"latest": string
			}
		},
		"position": {
			"accuracy": number,
			"address": string,
			"altitude": number,
			"bearing": number,
			"dts": string,
			"lat": number,
			"lng": number,
			"origin": string,
			"speed": number,
			"speedLimit": number,
			"streetAddress": {
				"city": string,
				"country": string,
				"isToll": boolean,
				"number": string,
				"postal": string,
				"province": string,
				"region": string,
				"street": string
			}
		},
		"processedUtc": string,
		"providers": [
			string
		],
		"relationships": [
			number
		],
		"tags": [
			string
		],
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view this Asset.
4015You do not have permission to view this Asset's advanced details.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

GET/assets/{assetId}/dispatches?includeDeleted=boolean

Gets details of the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the AssetDispatch.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
assetDispatchAssetDispatchThe requested AssetDispatch.
assetDispatch.companyuint64The company to which this asset belongs.
assetDispatch.directionsArray.<DispatchDirection>Driving directions and route path details.
assetDispatch.iduint64Unique identifier of this asset.
assetDispatch.jobsArray.<uint64>The current list of DispatchJobs assigned to the asset.
assetDispatch.lastDispatcheddatetimeTimestamp from the last update to this AssetDispatch by a User, Machine, Asset, or an assigned DispatchJob.
assetDispatch.processedUtcdatetimeWhen the was change procesed.
assetDispatch.tasks
Deprecated
Array.<DispatchTask>The current list of tasks assigned to this asset.
assetDispatch.updatedby: login, from: monster
assetDispatch.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetDispatch": {
		"company": number,
		"directions": [
			{
				"directions": [
					{ /* recursive DispatchDirection objects */ }
				],
				"distance": number,
				"duration": string,
				"instructions": string,
				"job": number,
				"path": string,
				"step": number
			}
		],
		"id": number,
		"jobs": [
			number
		],
		"lastDispatched": string,
		"processedUtc": string,
		"tasks": [
			{
				"address": string,
				"arrived": string,
				"asset": number,
				"attachments": [
					number
				],
				"company": number,
				"completed": string,
				"created": string,
				"duration": string,
				"eta": string,
				"id": number,
				"instructions": string,
				"latlng": {
					"lat": number,
					"lng": number
				},
				"name": string,
				"notes": string,
				"place": number,
				"processedUtc": string,
				"reference": string,
				"references": {
					string: string
				},
				"signatory": string,
				"signature": boolean,
				"status": string,
				"updated": {
				},
				"v": [
					number
				]
			}
		],
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view this Asset.
4015You do not have permission to view this Asset's dispatch details.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

GET/assets/{assetId}/generals?includeDeleted=boolean

Gets details of the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the AssetGeneral.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
assetGeneralAssetGeneralThe requested Asset.
assetGeneral.companyuint64The company to which this asset belongs.
assetGeneral.iconuint64
see: Icon.id
The icon that represents this asset on the map and in lists.
assetGeneral.iduint64Unique identifier of this asset.
assetGeneral.kindAssetTypeType of asset.
assetGeneral.labelsArray.<codified>
for values see: LabelStyle.code
Codified label names.
assetGeneral.messagingAddressstring
maximum-length: 254
The fall-back address which is used to send Messages if the asset is a Person and has no Contact phone or email.
assetGeneral.namestring
maximum-length: 100
This thing's name.
assetGeneral.notesstringNotes about it.
assetGeneral.picturesArray.<uint64>
for values see: Picture.id
A list of photos of this thing.
assetGeneral.processedUtcdatetimeWhen the was change procesed.
assetGeneral.reference
Deprecated
string
maximum-length: 100
A custom field used to refer to an external system.
Use asset.references[AssetGeneral.REFERENCE] instead.
assetGeneral.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
Name/value collections of custom fields used to refer to external systems.
assetGeneral.updatedby: login, from: monster
assetGeneral.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetGeneral": {
		"company": number,
		"icon": number,
		"id": number,
		"kind": string,
		"labels": [
			string
		],
		"messagingAddress": string,
		"name": string,
		"notes": string,
		"pictures": [
			number
		],
		"processedUtc": string,
		"reference": string,
		"references": {
			string: string
		},
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

PATCH/assets/{assetId}/restore

Restores the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the Asset.
HTTP Request body description
PropertyTypeRequiredDescription
assetParamIdalwaysAn object to contain the "id" of the Asset.
asset.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"asset": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetRespDeletedAn object which contains the Asset's id, owning Company id, and deleted status.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.deletedbooleanFlag showing if the object is deleted.
asset.iduint64?Identifier given as input for the command.
asset.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to restore this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40021The Asset was found, but is not marked as deleted.

PATCH/assets/{assetId}/revive

Revives (disables suspension on) an existing Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the Asset.
HTTP Request body description
PropertyTypeRequiredDescription
assetParamIdalwaysAn object to contain the "id" of the Asset.
asset.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"asset": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetRespSuspendedAn object which contains the Asset's unique identifier and suspended status.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
asset.suspendedbooleanFlag showing if the object is suspended.
asset.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number,
		"suspended": boolean,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to revive this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40397The Asset was found, but is not marked as suspended.

PATCH/assets/{assetId}/suspend

Suspends an existing Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the Asset.
HTTP Request body description
PropertyTypeRequiredDescription
assetParamIdalwaysAn object to contain the "id" of the Asset.
asset.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"asset": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetRespSuspendedAn object which contains the Asset's unique identifier and suspended status.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
asset.suspendedbooleanFlag showing if the object is suspended.
asset.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number,
		"suspended": boolean,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to suspended this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40396The Asset was not found, but it is already marked as suspended.
40397The Asset was previously revived within the minimum period.
Returns an ErrorDetailLocked as the errorDetails.

GET/assets/advanceds?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets/advanceds (when no additional query-string parameters are given) or /companies/{your-company-id}/assets/advanceds?{keys=values} (when at least one additional query-string key/value is given).
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/assets/advanceds?labels={string}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets/advanceds?labels={labels}.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
labelsstringoptionalLabels to match the DispatchJob.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/assets/dispatches?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets/dispatches (when no additional query-string parameters are given) or /companies/{your-company-id}/assets/dispatches?{keys=values} (when at least one additional query-string key/value is given).
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/assets/dispatches?labels={string}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets/dispatches?labels={labels}.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
labelsstringoptionalLabels to match the DispatchJob.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/assets/generals?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets/generals (when no additional query-string parameters are given) or /companies/{your-company-id}/assets/generals?{keys=values} (when at least one additional query-string key/value is given).
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/assets/generals?labels={string}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets/generals?labels={labels}.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
labelsstringoptionalLabels to match the DispatchJob.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/assets/revive

Revives (disables suspension on) an existing Asset.
HTTP Request body description
PropertyTypeRequiredDescription
assetParamIdalwaysAn object to contain the "id" of the Asset.
asset.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"asset": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetRespSuspendedAn object which contains the Asset's unique identifier and suspended status.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
asset.suspendedbooleanFlag showing if the object is suspended.
asset.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number,
		"suspended": boolean,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to revive this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40397The Asset was found, but is not marked as suspended.

PATCH/assets/suspend

Suspends an existing Asset.
HTTP Request body description
PropertyTypeRequiredDescription
assetParamIdalwaysAn object to contain the "id" of the Asset.
asset.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"asset": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetRespSuspendedAn object which contains the Asset's unique identifier and suspended status.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
asset.suspendedbooleanFlag showing if the object is suspended.
asset.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number,
		"suspended": boolean,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to suspended this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40396The Asset was not found, but it is already marked as suspended.
40397The Asset was previously revived within the minimum period.
Returns an ErrorDetailLocked as the errorDetails.

GET/assets?labels={string}&includeSuspended=boolean&includeMessages=boolean&includeTasks=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/assets?labels={labels}.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeMessagesbooleanoptionalfalseFalse by default, but when true will include Asset.messages..
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
includeTasksbooleanoptionalfalseFalse by default, but when true will include Asset.tasks..
labelsstringoptionalLabels to match the DispatchJob.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/companies/{companyId}/assets?includeSuspended=boolean&includeMessages=boolean&includeTasks=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeMessagesbooleanoptionalfalseFalse by default, but when true, the command will also return AssetMessages for the asset.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
includeTasksbooleanoptionalfalseFalse by default, but when true, the command will also return the DispatchTasks for the asset.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetsArray.<Asset>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assets": [
		{
			"attributes": {
				string: {
					"asset": number,
					"complex": string,
					"dts": string,
					"global": boolean,
					"name": string,
					"provider": string,
					"raw": Object,
					"simple": string,
					"unit": string
				}
			},
			"company": number,
			"dispatch": {
				"company": number,
				"directions": [
					{
						"directions": [
							{ /* recursive DispatchDirection objects */ }
						],
						"distance": number,
						"duration": string,
						"instructions": string,
						"job": number,
						"path": string,
						"step": number
					}
				],
				"id": number,
				"jobs": [
					number
				],
				"lastDispatched": string,
				"processedUtc": string,
				"tasks": [
					{
						"address": string,
						"arrived": string,
						"asset": number,
						"attachments": [
							number
						],
						"company": number,
						"completed": string,
						"created": string,
						"duration": string,
						"eta": string,
						"id": number,
						"instructions": string,
						"latlng": {
							"lat": number,
							"lng": number
						},
						"name": string,
						"notes": string,
						"place": number,
						"processedUtc": string,
						"reference": string,
						"references": {
							string: string
						},
						"signatory": string,
						"signature": boolean,
						"status": string,
						"updated": {
						},
						"v": [
							number
						]
					}
				],
				"updated": {
				},
				"v": [
					number
				]
			},
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"messages": [
				{
					"asset": number,
					"body": string,
					"company": number,
					"delivered": string,
					"folder": string,
					"from": string,
					"id": number,
					"incoming": boolean,
					"kind": string,
					"processed": string,
					"processedUtc": string,
					"readBy": string,
					"status": string,
					"subject": string,
					"to": string,
					"updated": {
					},
					"user": string,
					"v": [
						number
					]
				}
			],
			"messagingAddress": string,
			"name": string,
			"notes": string,
			"odometer": number,
			"pictures": [
				number
			],
			"places": {
				string: {
					"enter": string,
					"kind": string,
					"latest": string
				}
			},
			"position": {
				"accuracy": number,
				"address": string,
				"altitude": number,
				"bearing": number,
				"dts": string,
				"lat": number,
				"lng": number,
				"origin": string,
				"speed": number,
				"speedLimit": number,
				"streetAddress": {
					"city": string,
					"country": string,
					"isToll": boolean,
					"number": string,
					"postal": string,
					"province": string,
					"region": string,
					"street": string
				}
			},
			"processedUtc": string,
			"providers": [
				string
			],
			"reference": string,
			"references": {
				string: string
			},
			"relationships": [
				number
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets?{keys=values}?includeSuspended=boolean&includeMessages=boolean&includeTasks=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of Assets for the specified Company only if one of the specified Asset.references fields match. If no references are specified, it will match any Asset with no references. If a reference value is null, it will match any Asset without that reference key.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeMessagesbooleanoptionalfalseFalse by default, but when true, the command will also return AssetMessages for the asset.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
includeTasksbooleanoptionalfalseFalse by default, but when true, the command will also return the DispatchTasks for the asset.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetsArray.<Asset>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assets": [
		{
			"attributes": {
				string: {
					"asset": number,
					"complex": string,
					"dts": string,
					"global": boolean,
					"name": string,
					"provider": string,
					"raw": Object,
					"simple": string,
					"unit": string
				}
			},
			"company": number,
			"dispatch": {
				"company": number,
				"directions": [
					{
						"directions": [
							{ /* recursive DispatchDirection objects */ }
						],
						"distance": number,
						"duration": string,
						"instructions": string,
						"job": number,
						"path": string,
						"step": number
					}
				],
				"id": number,
				"jobs": [
					number
				],
				"lastDispatched": string,
				"processedUtc": string,
				"tasks": [
					{
						"address": string,
						"arrived": string,
						"asset": number,
						"attachments": [
							number
						],
						"company": number,
						"completed": string,
						"created": string,
						"duration": string,
						"eta": string,
						"id": number,
						"instructions": string,
						"latlng": {
							"lat": number,
							"lng": number
						},
						"name": string,
						"notes": string,
						"place": number,
						"processedUtc": string,
						"reference": string,
						"references": {
							string: string
						},
						"signatory": string,
						"signature": boolean,
						"status": string,
						"updated": {
						},
						"v": [
							number
						]
					}
				],
				"updated": {
				},
				"v": [
					number
				]
			},
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"messages": [
				{
					"asset": number,
					"body": string,
					"company": number,
					"delivered": string,
					"folder": string,
					"from": string,
					"id": number,
					"incoming": boolean,
					"kind": string,
					"processed": string,
					"processedUtc": string,
					"readBy": string,
					"status": string,
					"subject": string,
					"to": string,
					"updated": {
					},
					"user": string,
					"v": [
						number
					]
				}
			],
			"messagingAddress": string,
			"name": string,
			"notes": string,
			"odometer": number,
			"pictures": [
				number
			],
			"places": {
				string: {
					"enter": string,
					"kind": string,
					"latest": string
				}
			},
			"position": {
				"accuracy": number,
				"address": string,
				"altitude": number,
				"bearing": number,
				"dts": string,
				"lat": number,
				"lng": number,
				"origin": string,
				"speed": number,
				"speedLimit": number,
				"streetAddress": {
					"city": string,
					"country": string,
					"isToll": boolean,
					"number": string,
					"postal": string,
					"province": string,
					"region": string,
					"street": string
				}
			},
			"processedUtc": string,
			"providers": [
				string
			],
			"reference": string,
			"references": {
				string: string
			},
			"relationships": [
				number
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/advanceds?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetAdvancedsArray.<AssetAdvanced>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetAdvanceds": [
		{
			"attributes": {
				string: {
					"asset": number,
					"complex": string,
					"dts": string,
					"global": boolean,
					"name": string,
					"provider": string,
					"raw": Object,
					"simple": string,
					"unit": string
				}
			},
			"company": number,
			"id": number,
			"odometer": number,
			"places": {
				string: {
					"enter": string,
					"kind": string,
					"latest": string
				}
			},
			"position": {
				"accuracy": number,
				"address": string,
				"altitude": number,
				"bearing": number,
				"dts": string,
				"lat": number,
				"lng": number,
				"origin": string,
				"speed": number,
				"speedLimit": number,
				"streetAddress": {
					"city": string,
					"country": string,
					"isToll": boolean,
					"number": string,
					"postal": string,
					"province": string,
					"region": string,
					"street": string
				}
			},
			"processedUtc": string,
			"providers": [
				string
			],
			"relationships": [
				number
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/advanceds?{keys=values}?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of Assets for the specified Company only if one of the specified Asset.references fields match. If no references are specified, it will match any Asset with no references. If a reference value is null, it will match any Asset without that reference key.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetAdvancedsArray.<AssetAdvanced>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetAdvanceds": [
		{
			"attributes": {
				string: {
					"asset": number,
					"complex": string,
					"dts": string,
					"global": boolean,
					"name": string,
					"provider": string,
					"raw": Object,
					"simple": string,
					"unit": string
				}
			},
			"company": number,
			"id": number,
			"odometer": number,
			"places": {
				string: {
					"enter": string,
					"kind": string,
					"latest": string
				}
			},
			"position": {
				"accuracy": number,
				"address": string,
				"altitude": number,
				"bearing": number,
				"dts": string,
				"lat": number,
				"lng": number,
				"origin": string,
				"speed": number,
				"speedLimit": number,
				"streetAddress": {
					"city": string,
					"country": string,
					"isToll": boolean,
					"number": string,
					"postal": string,
					"province": string,
					"region": string,
					"street": string
				}
			},
			"processedUtc": string,
			"providers": [
				string
			],
			"relationships": [
				number
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/advanceds?labels={string}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company only if the Asset.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
labelsstringrequiredLabels to match the DispatchJob.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetAdvancedsArray.<AssetAdvanced>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetAdvanceds": [
		{
			"attributes": {
				string: {
					"asset": number,
					"complex": string,
					"dts": string,
					"global": boolean,
					"name": string,
					"provider": string,
					"raw": Object,
					"simple": string,
					"unit": string
				}
			},
			"company": number,
			"id": number,
			"odometer": number,
			"places": {
				string: {
					"enter": string,
					"kind": string,
					"latest": string
				}
			},
			"position": {
				"accuracy": number,
				"address": string,
				"altitude": number,
				"bearing": number,
				"dts": string,
				"lat": number,
				"lng": number,
				"origin": string,
				"speed": number,
				"speedLimit": number,
				"streetAddress": {
					"city": string,
					"country": string,
					"isToll": boolean,
					"number": string,
					"postal": string,
					"province": string,
					"region": string,
					"street": string
				}
			},
			"processedUtc": string,
			"providers": [
				string
			],
			"relationships": [
				number
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/dispatches?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetDispatchesArray.<AssetDispatch>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetDispatches": [
		{
			"company": number,
			"directions": [
				{
					"directions": [
						{ /* recursive DispatchDirection objects */ }
					],
					"distance": number,
					"duration": string,
					"instructions": string,
					"job": number,
					"path": string,
					"step": number
				}
			],
			"id": number,
			"jobs": [
				number
			],
			"lastDispatched": string,
			"processedUtc": string,
			"tasks": [
				{
					"address": string,
					"arrived": string,
					"asset": number,
					"attachments": [
						number
					],
					"company": number,
					"completed": string,
					"created": string,
					"duration": string,
					"eta": string,
					"id": number,
					"instructions": string,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"processedUtc": string,
					"reference": string,
					"references": {
						string: string
					},
					"signatory": string,
					"signature": boolean,
					"status": string,
					"updated": {
					},
					"v": [
						number
					]
				}
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/dispatches?{keys=values}?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of Assets for the specified Company only if one of the specified Asset.references fields match. If no references are specified, it will match any Asset with no references. If a reference value is null, it will match any Asset without that reference key.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetDispatchesArray.<AssetDispatch>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetDispatches": [
		{
			"company": number,
			"directions": [
				{
					"directions": [
						{ /* recursive DispatchDirection objects */ }
					],
					"distance": number,
					"duration": string,
					"instructions": string,
					"job": number,
					"path": string,
					"step": number
				}
			],
			"id": number,
			"jobs": [
				number
			],
			"lastDispatched": string,
			"processedUtc": string,
			"tasks": [
				{
					"address": string,
					"arrived": string,
					"asset": number,
					"attachments": [
						number
					],
					"company": number,
					"completed": string,
					"created": string,
					"duration": string,
					"eta": string,
					"id": number,
					"instructions": string,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"processedUtc": string,
					"reference": string,
					"references": {
						string: string
					},
					"signatory": string,
					"signature": boolean,
					"status": string,
					"updated": {
					},
					"v": [
						number
					]
				}
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/dispatches?labels={string}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company only if the Asset.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
labelsstringrequiredLabels to match the DispatchJob.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetDispatchesArray.<AssetDispatch>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetDispatches": [
		{
			"company": number,
			"directions": [
				{
					"directions": [
						{ /* recursive DispatchDirection objects */ }
					],
					"distance": number,
					"duration": string,
					"instructions": string,
					"job": number,
					"path": string,
					"step": number
				}
			],
			"id": number,
			"jobs": [
				number
			],
			"lastDispatched": string,
			"processedUtc": string,
			"tasks": [
				{
					"address": string,
					"arrived": string,
					"asset": number,
					"attachments": [
						number
					],
					"company": number,
					"completed": string,
					"created": string,
					"duration": string,
					"eta": string,
					"id": number,
					"instructions": string,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"processedUtc": string,
					"reference": string,
					"references": {
						string: string
					},
					"signatory": string,
					"signature": boolean,
					"status": string,
					"updated": {
					},
					"v": [
						number
					]
				}
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/generals?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetGeneralsArray.<AssetGeneral>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetGenerals": [
		{
			"company": number,
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"messagingAddress": string,
			"name": string,
			"notes": string,
			"pictures": [
				number
			],
			"processedUtc": string,
			"reference": string,
			"references": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/generals?{keys=values}?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of Assets for the specified Company only if one of the specified Asset.references fields match. If no references are specified, it will match any Asset with no references. If a reference value is null, it will match any Asset without that reference key.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetGeneralsArray.<AssetGeneral>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetGenerals": [
		{
			"company": number,
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"messagingAddress": string,
			"name": string,
			"notes": string,
			"pictures": [
				number
			],
			"processedUtc": string,
			"reference": string,
			"references": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/generals?labels={string}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company only if the Asset.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
labelsstringrequiredLabels to match the DispatchJob.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetGeneralsArray.<AssetGeneral>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetGenerals": [
		{
			"company": number,
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"messagingAddress": string,
			"name": string,
			"notes": string,
			"pictures": [
				number
			],
			"processedUtc": string,
			"reference": string,
			"references": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets?labels={string}&includeSuspended=boolean&includeMessages=boolean&includeTasks=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company only if the Asset.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeMessagesbooleanoptionalfalseFalse by default, but when true the command will also return AssetMessages for the asset.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
includeTasksbooleanoptionalfalseFalse by default, but when true the command will also return the DispatchTasks for the asset.
labelsstringrequiredLabels to match the DispatchJob.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetsArray.<Asset>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assets": [
		{
			"attributes": {
				string: {
					"asset": number,
					"complex": string,
					"dts": string,
					"global": boolean,
					"name": string,
					"provider": string,
					"raw": Object,
					"simple": string,
					"unit": string
				}
			},
			"company": number,
			"dispatch": {
				"company": number,
				"directions": [
					{
						"directions": [
							{ /* recursive DispatchDirection objects */ }
						],
						"distance": number,
						"duration": string,
						"instructions": string,
						"job": number,
						"path": string,
						"step": number
					}
				],
				"id": number,
				"jobs": [
					number
				],
				"lastDispatched": string,
				"processedUtc": string,
				"tasks": [
					{
						"address": string,
						"arrived": string,
						"asset": number,
						"attachments": [
							number
						],
						"company": number,
						"completed": string,
						"created": string,
						"duration": string,
						"eta": string,
						"id": number,
						"instructions": string,
						"latlng": {
							"lat": number,
							"lng": number
						},
						"name": string,
						"notes": string,
						"place": number,
						"processedUtc": string,
						"reference": string,
						"references": {
							string: string
						},
						"signatory": string,
						"signature": boolean,
						"status": string,
						"updated": {
						},
						"v": [
							number
						]
					}
				],
				"updated": {
				},
				"v": [
					number
				]
			},
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"messages": [
				{
					"asset": number,
					"body": string,
					"company": number,
					"delivered": string,
					"folder": string,
					"from": string,
					"id": number,
					"incoming": boolean,
					"kind": string,
					"processed": string,
					"processedUtc": string,
					"readBy": string,
					"status": string,
					"subject": string,
					"to": string,
					"updated": {
					},
					"user": string,
					"v": [
						number
					]
				}
			],
			"messagingAddress": string,
			"name": string,
			"notes": string,
			"odometer": number,
			"pictures": [
				number
			],
			"places": {
				string: {
					"enter": string,
					"kind": string,
					"latest": string
				}
			},
			"position": {
				"accuracy": number,
				"address": string,
				"altitude": number,
				"bearing": number,
				"dts": string,
				"lat": number,
				"lng": number,
				"origin": string,
				"speed": number,
				"speedLimit": number,
				"streetAddress": {
					"city": string,
					"country": string,
					"isToll": boolean,
					"number": string,
					"postal": string,
					"province": string,
					"region": string,
					"street": string
				}
			},
			"processedUtc": string,
			"providers": [
				string
			],
			"reference": string,
			"references": {
				string: string
			},
			"relationships": [
				number
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets?reference={string}&includeSuspended=boolean&includeMessages=boolean&includeTasks=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Assets for the specified Company only if one of the specified Asset.references fields match. If no references are specified, it will match any Asset with no references. If a reference value is null, it will match any Asset without that reference key.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
includeMessagesbooleanoptionalfalseFalse by default, but when true the command will also return AssetMessages for the asset.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Assets marked as Asset.suspended.
includeTasksbooleanoptionalfalseFalse by default, but when true the command will also return the DispatchTasks for the asset.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
referencestringrequiredValue to search in the asset.reference["Reference"] field
Response description
PropertyTypeDescription
assetsArray.<Asset>The list of requested Assets.
companyRespIdAn object to contain the "id" of the Company to which the array of Assets belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assets": [
		{
			"attributes": {
				string: {
					"asset": number,
					"complex": string,
					"dts": string,
					"global": boolean,
					"name": string,
					"provider": string,
					"raw": Object,
					"simple": string,
					"unit": string
				}
			},
			"company": number,
			"dispatch": {
				"company": number,
				"directions": [
					{
						"directions": [
							{ /* recursive DispatchDirection objects */ }
						],
						"distance": number,
						"duration": string,
						"instructions": string,
						"job": number,
						"path": string,
						"step": number
					}
				],
				"id": number,
				"jobs": [
					number
				],
				"lastDispatched": string,
				"processedUtc": string,
				"tasks": [
					{
						"address": string,
						"arrived": string,
						"asset": number,
						"attachments": [
							number
						],
						"company": number,
						"completed": string,
						"created": string,
						"duration": string,
						"eta": string,
						"id": number,
						"instructions": string,
						"latlng": {
							"lat": number,
							"lng": number
						},
						"name": string,
						"notes": string,
						"place": number,
						"processedUtc": string,
						"reference": string,
						"references": {
							string: string
						},
						"signatory": string,
						"signature": boolean,
						"status": string,
						"updated": {
						},
						"v": [
							number
						]
					}
				],
				"updated": {
				},
				"v": [
					number
				]
			},
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"messages": [
				{
					"asset": number,
					"body": string,
					"company": number,
					"delivered": string,
					"folder": string,
					"from": string,
					"id": number,
					"incoming": boolean,
					"kind": string,
					"processed": string,
					"processedUtc": string,
					"readBy": string,
					"status": string,
					"subject": string,
					"to": string,
					"updated": {
					},
					"user": string,
					"v": [
						number
					]
				}
			],
			"messagingAddress": string,
			"name": string,
			"notes": string,
			"odometer": number,
			"pictures": [
				number
			],
			"places": {
				string: {
					"enter": string,
					"kind": string,
					"latest": string
				}
			},
			"position": {
				"accuracy": number,
				"address": string,
				"altitude": number,
				"bearing": number,
				"dts": string,
				"lat": number,
				"lng": number,
				"origin": string,
				"speed": number,
				"speedLimit": number,
				"streetAddress": {
					"city": string,
					"country": string,
					"isToll": boolean,
					"number": string,
					"postal": string,
					"province": string,
					"region": string,
					"street": string
				}
			},
			"processedUtc": string,
			"providers": [
				string
			],
			"reference": string,
			"references": {
				string: string
			},
			"relationships": [
				number
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view any Assets for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

Behaviours

GET/behaviours?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/behaviours/.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/behaviours

Creates a new or updates an existing Behaviour.
HTTP Request body description
PropertyTypeRequiredDescription
behaviourObject.<string, ?>alwaysA simple object to contain the Behaviour parameters.
behaviour.companyuint64?create
behaviour.filtersexpressionoptionalA search pattern used to select the assets which will embed this Behaviour in their execution context.
behaviour.iduint64?updateThe unique identifier of the Behaviour you want to update.
behaviour.namestring
maximum-length: 100
createName for the Behaviour.
behaviour.notesstringoptionalNotes for the Behaviour.
behaviour.parametersObject.<string, BehaviourParameter>optionalThe values needed to implement the script. Each key in this object is the name of a required script argument.
behaviour.prioritybyte?optionalThe order in which this Behaviour is executed.
behaviour.scriptuint64?createIdentifier of the BehaviourScript to which this Behaviour belongs. After creation, this value is read-only.
behaviour.targetsexpressionoptionalA search pattern used to select the providers which can implement this Behaviour.
behaviour.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"behaviour": {
		"company": number,
		"filters": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"context": string,
				"notes": string,
				"type": string,
				"value": string
			}
		},
		"priority": number,
		"script": number,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
behaviourRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
behaviour.companyuint64Identifier of the Company to which this object belongs.
behaviour.iduint64?Identifier given as input for the command.
behaviour.scriptuint64Identifier of the script to which this object belongs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"id": number,
		"script": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviour object, or it is invalid.
4003Not enough keys exist in the behaviour object.
4003During create: When creating a new Behaviour, a name was not given, or it is invalid.
4003During create: When creating a new Behaviour, a script was not given.
4003During create: When creating a new Behaviour, a company was not given.
4003During update: When updating a Behaviour, the id was invalid.
4003During update: When updating a Behaviour, the name was given as blank.
4003During update: When updating a Behaviour, the v was not an array, or contained too few numbers.
4003The targets was given as null or blank. The targets must always have a value, or you can not send the targets key.
Returns an ErrorDetailInput as the errorDetails.
4003One of the behaviour.parameters was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the behaviour.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Behaviour.
4015You do not have permission to update this Behaviour.
4006During update: When updating a Behaviour, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423During update: The BehaviourScript was not found by its unique identifier.
40426During update: The Behaviour was not found by its unique identifier.
409130There is one or more missing or invalid parameters required by the BehaviourScript.
Returns an ErrorDetailBadKeys as the errorDetails.
409130During update: When updating a Behaviour, the behaviour.script can not be changed.
Returns an ErrorDetailBadKeys as the errorDetails.
409130During update: When updating a Behaviour, the behaviour.company can not be changed.
Returns an ErrorDetailBadKeys as the errorDetails.

DELETE/behaviours

Deletes a Behaviour.
Response description
PropertyTypeDescription
behaviourRespDeletedAn object which contains the Behaviour's id, owning Company id, and deleted status.
behaviour.companyuint64Identifier of the Company to which this object belongs.
behaviour.deletedbooleanFlag showing if the object is deleted.
behaviour.iduint64?Identifier given as input for the command.
behaviour.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviour object, or it is invalid.
4003The behaviour object does not contain an id, or it is invalid.
4015You do not have permission to delete this Behaviour.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The Behaviour was not found by its unique identifier.

GET/behaviours/{behaviourId}?includeDeleted=boolean

Gets details of the specified Behaviour.
URL Parameters
ParameterTypeRequiredDescription
behaviourIduint64requiredUnique identifier of the Behaviour.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
behaviourBehaviourThe requested Behaviour.
behaviour.companyuint64The company to which this behaviour belongs.
behaviour.filtersexpressionA search pattern used to filter the providers which can implement this behaviour.
behaviour.iduint64Unique identifier of this behaviour.
behaviour.namestring
maximum-length: 100
The name of this behaviour.
behaviour.notesstringNotes.
behaviour.parametersObject.<string, BehaviourParameter>The list of defined variable name/value pairs for the script requires.
behaviour.prioritybyteThe priority flag allows you to define an execution order for all behaviours for a provider.
behaviour.processedUtcdatetimeWhen the was change procesed.
behaviour.scriptuint64The script which this behaviour implements.
behaviour.targetsexpressionThe search pattern used to target the assets which will embed this behaviour in their execution context.
behaviour.updatedby: login, from: monster
behaviour.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"filters": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"context": string,
				"notes": string,
				"type": string,
				"value": string
			}
		},
		"priority": number,
		"processedUtc": string,
		"script": number,
		"targets": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a behaviour object, or it is invalid.
4003The behaviour object does not contain an id, or it is invalid.
4015You do not have permission to view this Behaviour.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The Behaviour was not found by its unique identifier.

POST/behaviours/{behaviourId}

Creates a new or updates an existing Behaviour.
URL Parameters
ParameterTypeRequiredDescription
behaviourIduint64?optionalUnique identifier of the Behaviour. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
behaviourObject.<string, ?>alwaysA simple object to contain the Behaviour parameters.
behaviour.companyuint64?create
behaviour.filtersexpressionoptionalA search pattern used to select the assets which will embed this Behaviour in their execution context.
behaviour.iduint64?updateThe unique identifier of the Behaviour you want to update.
behaviour.namestring
maximum-length: 100
createName for the Behaviour.
behaviour.notesstringoptionalNotes for the Behaviour.
behaviour.parametersObject.<string, BehaviourParameter>optionalThe values needed to implement the script. Each key in this object is the name of a required script argument.
behaviour.prioritybyte?optionalThe order in which this Behaviour is executed.
behaviour.scriptuint64?createIdentifier of the BehaviourScript to which this Behaviour belongs. After creation, this value is read-only.
behaviour.targetsexpressionoptionalA search pattern used to select the providers which can implement this Behaviour.
behaviour.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"behaviour": {
		"company": number,
		"filters": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"context": string,
				"notes": string,
				"type": string,
				"value": string
			}
		},
		"priority": number,
		"script": number,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
behaviourRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
behaviour.companyuint64Identifier of the Company to which this object belongs.
behaviour.iduint64?Identifier given as input for the command.
behaviour.scriptuint64Identifier of the script to which this object belongs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"id": number,
		"script": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviour object, or it is invalid.
4003Not enough keys exist in the behaviour object.
4003During create: When creating a new Behaviour, a name was not given, or it is invalid.
4003During create: When creating a new Behaviour, a script was not given.
4003During create: When creating a new Behaviour, a company was not given.
4003During update: When updating a Behaviour, the id was invalid.
4003During update: When updating a Behaviour, the name was given as blank.
4003During update: When updating a Behaviour, the v was not an array, or contained too few numbers.
4003The targets was given as null or blank. The targets must always have a value, or you can not send the targets key.
Returns an ErrorDetailInput as the errorDetails.
4003One of the behaviour.parameters was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the behaviour.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Behaviour.
4015You do not have permission to update this Behaviour.
4006During update: When updating a Behaviour, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423During update: The BehaviourScript was not found by its unique identifier.
40426During update: The Behaviour was not found by its unique identifier.
409130There is one or more missing or invalid parameters required by the BehaviourScript.
Returns an ErrorDetailBadKeys as the errorDetails.
409130During update: When updating a Behaviour, the behaviour.script can not be changed.
Returns an ErrorDetailBadKeys as the errorDetails.
409130During update: When updating a Behaviour, the behaviour.company can not be changed.
Returns an ErrorDetailBadKeys as the errorDetails.

DELETE/behaviours/{behaviourId}

Deletes a Behaviour.
URL Parameters
ParameterTypeRequiredDescription
behaviourIduint64requiredUnique identifier of the Behaviour.
Response description
PropertyTypeDescription
behaviourRespDeletedAn object which contains the Behaviour's id, owning Company id, and deleted status.
behaviour.companyuint64Identifier of the Company to which this object belongs.
behaviour.deletedbooleanFlag showing if the object is deleted.
behaviour.iduint64?Identifier given as input for the command.
behaviour.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviour object, or it is invalid.
4003The behaviour object does not contain an id, or it is invalid.
4015You do not have permission to delete this Behaviour.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The Behaviour was not found by its unique identifier.

GET/behaviours/{behaviourId}/logs?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of BehaviourLog for the specified Behaviour.
URL Parameters
ParameterTypeRequiredDescription
behaviourIduint64requiredUnique identifier of the Behaviour.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
behaviourRespIdScriptAn object to contain the "id" of the Behaviour to which the array of BehaviourLogs belong.
behaviour.companyuint64Identifier of the Company to which this object belongs.
behaviour.iduint64?Identifier given as input for the command.
behaviour.scriptuint64Identifier of the script to which this object belongs.
behaviourLogsArray.<BehaviourLog>The list of requested BehaviourLogs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"id": number,
		"script": number
	},
	"behaviourLogs": [
		{
			"asset": number,
			"behaviour": number,
			"character": number,
			"company": number,
			"dts": string,
			"id": number,
			"kind": string,
			"line": number,
			"message": string,
			"processedUtc": string,
			"script": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviour object, or it is invalid.
4003The behaviour object does not contain an id, or it is invalid.
4015You do not have permission to view BehaviourLogs for this Behaviour.
4015You do not have permission to view Behaviours for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The Behaviour was not found by its unique identifier.

DELETE/behaviours/{behaviourId}/logs

Gets the list of BehaviourLogs for the specified Behaviour.
URL Parameters
ParameterTypeRequiredDescription
behaviourIduint64requiredUnique identifier of the Behaviour.
Response description
PropertyTypeDescription
behaviourRespIdScriptAn object to contain the "id" of the Behaviour to which the array of BehaviourLogs belong.
behaviour.companyuint64Identifier of the Company to which this object belongs.
behaviour.iduint64?Identifier given as input for the command.
behaviour.scriptuint64Identifier of the script to which this object belongs.
countint32The total number of behaviour logs cleared.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"id": number,
		"script": number
	},
	"count": number,
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviour object, or it is invalid.
4003The behaviour object does not contain an id, or it is invalid.
4015You do not have permission to view BehaviourLogs for this Behaviour.
4015You do not have permission to clear Behaviours for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The Behaviour was not found by its unique identifier.

PATCH/behaviours/{behaviourId}/restore

Restores a deleted Behaviour.
URL Parameters
ParameterTypeRequiredDescription
behaviourIduint64requiredUnique identifier of the Behaviour.
HTTP Request body description
PropertyTypeRequiredDescription
behaviourParamIdalwaysAn object to contain the "id" key.
behaviour.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"behaviour": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
behaviourRespDeletedAn object which contains the Behaviour's id, owning Company id, and deleted status.
behaviour.companyuint64Identifier of the Company to which this object belongs.
behaviour.deletedbooleanFlag showing if the object is deleted.
behaviour.iduint64?Identifier given as input for the command.
behaviour.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviour": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviour object, or it is invalid.
4003The behaviour object does not contain an id, or it is invalid.
4015You do not have permission to restore this Behaviour.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The Behaviour was not found by its unique identifier.
40027The Behaviour was found, but is not marked as deleted.

GET/behaviours/logs?asset={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of BehaviourLogs for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
assetuint64requiredUnique identifier of the Asset.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of BehaviourLogs relates.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
behaviourLogsArray.<BehaviourLog>The list of requested BehaviourLogs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"behaviourLogs": [
		{
			"asset": number,
			"behaviour": number,
			"character": number,
			"company": number,
			"dts": string,
			"id": number,
			"kind": string,
			"line": number,
			"message": string,
			"processedUtc": string,
			"script": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view this Asset.
4015You do not have permission to view BehaviourLogs for this Asset's Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

DELETE/behaviours/logs?asset={uint64}

Gets the list of BehaviourLogs for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
assetuint64requiredUnique identifier of the Asset.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of BehaviourLogs relates.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
countint32The total number of behaviour logs cleared.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"count": number,
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view this Asset.
4015You do not have permission to clear Behaviours for this Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

GET/behaviours/scripts?tree=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/behaviours/scripts?tree=true.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
treebooleanoptionaltrueDefaults to true for this alias.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/behaviours/scripts

Creates a new or updates an existing BehaviourScript.
HTTP Request body description
PropertyTypeRequiredDescription
behaviourScriptObject.<string, ?>alwaysA simple object to contain the BehaviourScript parameters.
behaviourScript.companyuint64?createIdentifier of the Company to which this BehaviourScript belongs. After creation, this value is read-only.
behaviourScript.fillstringoptionalBackground and fill colour in the UI.
behaviourScript.filtersexpressionoptionalA search pattern used to select the providers.
behaviourScript.globalbooleanoptionalWhen set to true, this Company as well as all child companies will be able to implement this BehaviourScript for that companies assets.
behaviourScript.graphicstringoptionalThe name of the symbol shown in the UI.
behaviourScript.iduint64?updateThe unique identifier of the BehaviourScript you want to update.
behaviourScript.namestring
maximum-length: 100
createName for the BehaviourScript.
behaviourScript.notesstringoptionalNotes for the BehaviourScript.
behaviourScript.parametersObject.<string, BehaviourParameter>optionalThe defined arguments for this BehaviourScript. Each key in the object is the name of an argument.
behaviourScript.sourcestringcreateSource code of the BehaviourScript.
behaviourScript.strokestringoptionalText and outline colour in the UI.
behaviourScript.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"behaviourScript": {
		"company": number,
		"fill": string,
		"filters": string,
		"global": boolean,
		"graphic": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"context": string,
				"notes": string,
				"type": string,
				"value": string
			}
		},
		"source": string,
		"stroke": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
behaviourScriptRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScript": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003Not enough keys exist in the behaviourScript object.
4003During create: When creating a new BehaviourScript, a name was not given, or it is invalid.
4003During create: When creating a new BehaviourScript, a company was not given.
4003During create: When creating a new BehaviourScript, the source was not given, or it is blank.
4003During update: When updating a BehaviourScript, the id was invalid.
4003During update: When updating a BehaviourScript, the name was given as blank.
4003During update: When updating a BehaviourScript, the v was not an array, or contained too few numbers.
4003One of the behaviourScript.parameters default values' was not valid.
Returns an ErrorDetailBadKeys as the errorDetails.
4003One of the behaviourScript.parameters was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the behaviourScript.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new BehaviourScript.
4015You do not have permission to update this BehaviourScript.
4006During update: When updating a BehaviourScript, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423During update: The BehaviourScript was not found by its unique identifier.
40925During update: When updating a BehaviourScript which is marked as global, but is being set as private, but is implemented by Behaviours from child companies..
Returns an ErrorDetailCount as the errorDetails.
409130During update: When updating a BehaviourScript, the behaviourScript.company can not be changed.

DELETE/behaviours/scripts

Deletes an existing BehaviourScript.
Response description
PropertyTypeDescription
behaviourScriptRespDeletedAn object which contains the BehaviourScript's id, owning Company id, and deleted status.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.deletedbooleanFlag showing if the object is deleted.
behaviourScript.iduint64?Identifier given as input for the command.
behaviourScript.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScript": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003The behaviourScript object does not contain an id, or it is invalid.
4015You do not have permission to delete this BehaviourScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423The BehaviourScript was not found by its unique identifier.
40925This BehaviourScript is still being used by one of more Behaviours.
Returns an ErrorDetailCount as the errorDetails.

GET/behaviours/scripts/{scriptId}?includeDeleted=boolean

Gets details of the specified BehaviourScript.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
scriptIduint64requiredUnique identifier of the BehaviourScript.
Response description
PropertyTypeDescription
behaviourScriptBehaviourScriptThe requested BehaviourScript.
behaviourScript.companyuint64The company to which this script belongs.
behaviourScript.compilesbooleanFlag set by the compiler if this code compiles
behaviourScript.fillcolour
maximum-length: 22
The background colour given to this script for easy visual identification.
behaviourScript.filtersexpressionA list of targeting expressions. These expressions are defaults for derived Behaviours.
behaviourScript.globalbooleanIndicates whether this script is available to child companies.
behaviourScript.graphiccodified
maximum-length: 22
The codified graphic name given to this script for easy visual identification.
behaviourScript.iduint64Unique identifier of this script.
behaviourScript.namestring
maximum-length: 100
The nickname given to this script.
behaviourScript.notesstringUsage notes and instructions for users on how best to setup this script.
behaviourScript.parametersObject.<string, BehaviourParameter>Listed parameters for the Behaviour function.
behaviourScript.processedUtcdatetimeWhen the was change procesed.
behaviourScript.sourcestring
maximum-length: 8060
The source code.
behaviourScript.strokecolour
maximum-length: 22
The text/graphic colour given to this script for easy visual identification.
behaviourScript.updatedby: login, from: monster
behaviourScript.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScript": {
		"company": number,
		"compiles": boolean,
		"fill": string,
		"filters": string,
		"global": boolean,
		"graphic": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"context": string,
				"notes": string,
				"type": string,
				"value": string
			}
		},
		"processedUtc": string,
		"source": string,
		"stroke": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a behaviourScript object, or it is invalid.
4003The behaviourScript object does not contain an id, or it is invalid.
4015You do not have permission to view this BehaviourScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423The BehaviourScript was not found by its unique identifier.

POST/behaviours/scripts/{scriptId}

Creates a new or updates an existing BehaviourScript.
URL Parameters
ParameterTypeRequiredDescription
scriptIduint64?optionalUnique identifier of the BehaviourScript. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
behaviourScriptObject.<string, ?>alwaysA simple object to contain the BehaviourScript parameters.
behaviourScript.companyuint64?createIdentifier of the Company to which this BehaviourScript belongs. After creation, this value is read-only.
behaviourScript.fillstringoptionalBackground and fill colour in the UI.
behaviourScript.filtersexpressionoptionalA search pattern used to select the providers.
behaviourScript.globalbooleanoptionalWhen set to true, this Company as well as all child companies will be able to implement this BehaviourScript for that companies assets.
behaviourScript.graphicstringoptionalThe name of the symbol shown in the UI.
behaviourScript.iduint64?updateThe unique identifier of the BehaviourScript you want to update.
behaviourScript.namestring
maximum-length: 100
createName for the BehaviourScript.
behaviourScript.notesstringoptionalNotes for the BehaviourScript.
behaviourScript.parametersObject.<string, BehaviourParameter>optionalThe defined arguments for this BehaviourScript. Each key in the object is the name of an argument.
behaviourScript.sourcestringcreateSource code of the BehaviourScript.
behaviourScript.strokestringoptionalText and outline colour in the UI.
behaviourScript.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"behaviourScript": {
		"company": number,
		"fill": string,
		"filters": string,
		"global": boolean,
		"graphic": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"context": string,
				"notes": string,
				"type": string,
				"value": string
			}
		},
		"source": string,
		"stroke": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
behaviourScriptRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScript": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003Not enough keys exist in the behaviourScript object.
4003During create: When creating a new BehaviourScript, a name was not given, or it is invalid.
4003During create: When creating a new BehaviourScript, a company was not given.
4003During create: When creating a new BehaviourScript, the source was not given, or it is blank.
4003During update: When updating a BehaviourScript, the id was invalid.
4003During update: When updating a BehaviourScript, the name was given as blank.
4003During update: When updating a BehaviourScript, the v was not an array, or contained too few numbers.
4003One of the behaviourScript.parameters default values' was not valid.
Returns an ErrorDetailBadKeys as the errorDetails.
4003One of the behaviourScript.parameters was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the behaviourScript.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new BehaviourScript.
4015You do not have permission to update this BehaviourScript.
4006During update: When updating a BehaviourScript, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423During update: The BehaviourScript was not found by its unique identifier.
40925During update: When updating a BehaviourScript which is marked as global, but is being set as private, but is implemented by Behaviours from child companies..
Returns an ErrorDetailCount as the errorDetails.
409130During update: When updating a BehaviourScript, the behaviourScript.company can not be changed.

DELETE/behaviours/scripts/{scriptId}

Deletes an existing BehaviourScript.
URL Parameters
ParameterTypeRequiredDescription
scriptIduint64requiredUnique identifier of the BehaviourScript.
Response description
PropertyTypeDescription
behaviourScriptRespDeletedAn object which contains the BehaviourScript's id, owning Company id, and deleted status.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.deletedbooleanFlag showing if the object is deleted.
behaviourScript.iduint64?Identifier given as input for the command.
behaviourScript.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScript": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003The behaviourScript object does not contain an id, or it is invalid.
4015You do not have permission to delete this BehaviourScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423The BehaviourScript was not found by its unique identifier.
40925This BehaviourScript is still being used by one of more Behaviours.
Returns an ErrorDetailCount as the errorDetails.

GET/behaviours/scripts/{scriptId}/logs?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of BehaviourLogs for the specified BehaviourScript.
URL Parameters
ParameterTypeRequiredDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
scriptIduint64requiredUnique identifier of the BehaviourScript.
Response description
PropertyTypeDescription
behaviourLogsArray.<BehaviourLog>The list of requested BehaviourLogs.
behaviourScriptRespIdCompanyAn object to contain the "id" of the BehaviourScript to which the array of BehaviourLogs belong.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourLogs": [
		{
			"asset": number,
			"behaviour": number,
			"character": number,
			"company": number,
			"dts": string,
			"id": number,
			"kind": string,
			"line": number,
			"message": string,
			"processedUtc": string,
			"script": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"behaviourScript": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003The behaviourScript object does not contain an id, or it is invalid.
4015You do not have permission to view BehaviourLogs for the BehaviourScript's Company.
4015You do not have permission to view BehaviourScripts for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423The BehaviourScript was not found by its unique identifier.

DELETE/behaviours/scripts/{scriptId}/logs

Gets the list of BehaviourLogs for the specified BehaviourScript.
URL Parameters
ParameterTypeRequiredDescription
scriptIduint64requiredUnique identifier of the BehaviourScript.
Response description
PropertyTypeDescription
behaviourScriptRespIdCompanyAn object to contain the "id" of the BehaviourScript to which the array of BehaviourLogs belong.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.iduint64?Identifier given as input for the command.
countint32The total number of behaviour logs cleared.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScript": {
		"company": number,
		"id": number
	},
	"count": number,
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003The behaviourScript object does not contain an id, or it is invalid.
4015You do not have permission to view BehaviourLogs for the BehaviourScript's Company.
4015You do not have permission to clear behaviours for this BehaviourScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423The BehaviourScript was not found by its unique identifier.

PATCH/behaviours/scripts/{scriptId}/restore

Restores the specified BehaviourScript.
URL Parameters
ParameterTypeRequiredDescription
scriptIduint64requiredUnique identifier of the BehaviourScript.
HTTP Request body description
PropertyTypeRequiredDescription
behaviourScriptParamIdalwaysAn object to contain the "id" key.
behaviourScript.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"behaviourScript": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
behaviourScriptRespDeletedAn object which contains the BehaviourScript's id, owning Company id, and deleted status.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.deletedbooleanFlag showing if the object is deleted.
behaviourScript.iduint64?Identifier given as input for the command.
behaviourScript.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScript": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003The behaviourScript object does not contain an id, or it is invalid.
4015You do not have permission to restore this BehaviourScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423The BehaviourScript was not found by its unique identifier.
40024The BehaviourScript was found, but is not marked as deleted.

GET/behaviours?script={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Behaviours for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
scriptuint64requiredUnique identifier of the BehaviourScript.
Response description
PropertyTypeDescription
behavioursArray.<Behaviour>The list of reqested Behaviours.
behaviourScriptRespIdCompanyAn object to contain the "id" of the Company to which the array of Behaviours belong.
behaviourScript.companyuint64Identifier of the Company to which this object belongs.
behaviourScript.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviours": [
		{
			"company": number,
			"filters": string,
			"id": number,
			"name": string,
			"notes": string,
			"parameters": {
				string: {
					"context": string,
					"notes": string,
					"type": string,
					"value": string
				}
			},
			"priority": number,
			"processedUtc": string,
			"script": number,
			"targets": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"behaviourScript": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a behaviourScript object, or it is invalid.
4003The behaviourScript object does not contain an id, or it is invalid.
4015You do not have permission to view Behaviours for this Company.
4015You do not have permission to view BehaviourScripts for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40423The BehaviourScript was not found by its unique identifier.

GET/companies/{companyId}/behaviours?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Behaviours for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
behavioursArray.<Behaviour>The list of reqested Behaviours.
companyRespIdAn object to contain the "id" of the Company to which the array of Behaviours belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviours": [
		{
			"company": number,
			"filters": string,
			"id": number,
			"name": string,
			"notes": string,
			"parameters": {
				string: {
					"context": string,
					"notes": string,
					"type": string,
					"value": string
				}
			},
			"priority": number,
			"processedUtc": string,
			"script": number,
			"targets": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view Behaviours for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/behaviours/scripts?tree=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of BehaviourScripts for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
treebooleanoptionaltrueWhen true (default) the getter to retrieve the given Company's list of BehaviourScripts as well as any publicly available BehaviourScripts for the Company's parent(s).
Response description
PropertyTypeDescription
behaviourScriptsArray.<BehaviourScript>The list of requested BehaviourScripts.
companyRespIdAn object to contain the "id" of the Company to which the array of BehaviourScripts belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"behaviourScripts": [
		{
			"company": number,
			"compiles": boolean,
			"fill": string,
			"filters": string,
			"global": boolean,
			"graphic": string,
			"id": number,
			"name": string,
			"notes": string,
			"parameters": {
				string: {
					"context": string,
					"notes": string,
					"type": string,
					"value": string
				}
			},
			"processedUtc": string,
			"source": string,
			"stroke": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view BehaviourScripts for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

Billing

GET/billing/profiles?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/billing/profiles.
URL Parameters
ParameterTypeRequiredDefaultDescription
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/billing/profiles

Creates new or updates an existing BillingProfile.
HTTP Request body description
PropertyTypeRequiredDescription
billingProfileObject.<string, ?>alwaysA simple object to contain the BillingProfile parameters.
billingProfile.billeeuint64?optionalUnique identifier of the Company receiving the bill.
billingProfile.companyuint64?optionalUnique identifier of the Company that owns this BillingProfile and is sending the bill.
billingProfile.currencyBillingCurrency?optionalKind of money.
billingProfile.cycleBillingCycle?optionalRepeating cycle used for generating bills.
billingProfile.cycleEnddatetimeoptionalWhen should the cycle end (customer cancelled); null means it never ends.
billingProfile.cyclePostDatedbooleanoptionalPro-rated, or post-dated.
billingProfile.cycleStartdatetimeoptionalWhen is the first day of the billing cycle.
billingProfile.googleServicesEnabledbooleanoptionalAre the Google services available to be proxied by the service?
billingProfile.iduint64?optionalUnique identifier of the BillingProfile you want to update.
billingProfile.messagesArray.<BillableSmsProfile>optionalSMS messaging tiers.
billingProfile.namestringoptionalName for the BillingProfile
billingProfile.notesstringoptionalNotes about the BillingProfile for the billee or target.
billingProfile.targetuint64?optionalUnique identifier of the Company to which this rule pertains.
billingProfile.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"billingProfile": {
		"billee": number,
		"company": number,
		"currency": string,
		"cycle": string,
		"cycleEnd": string,
		"cyclePostDated": boolean,
		"cycleStart": string,
		"googleServicesEnabled": boolean,
		"id": number,
		"messages": [
			{
				"amount": number,
				"limit": number
			}
		],
		"name": string,
		"notes": string,
		"target": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
billingProfileRespIdCompanyAn object which contains the "id", "company", and "profile" keys.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003Not enough keys exist in the billingProfile object.
4003The messages are invalid.
4003The cycle is invalid.
4003The currency is invalid.
4003The cycleStart date is invalid.
4003The cycleEnd date is invalid.
4003During create: When creating a new BillingProfile, start date is invalid.
4003During create: When creating a new BillingProfile, end date is invalid.
4003During create: When creating a new BillingProfile, kind is invalid.
4003During create: When creating a new BillingProfile, a name was not given, or it is invalid.
4003During create: When creating a new BillingProfile, company is invalid.
4003During create: When creating a new BillingProfile, target is invalid.
4003During create: When creating a new BillingProfile, billee is invalid.
4003During update: When updating a BillingProfile, the name was invalid.
4003During update: When updating a BillingProfile, the v was invalid.
4015During create: You do not have permission to create new BillingProfile.
4015During update: You do not have permission to update BillingProfile.
4006During update: When updating a BillingProfile, the v was not an array, or contained too few numbers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The company was not found by its unique identifier.
40428The target was not found by its unique identifier.
40428The billee was not found by its unique identifier.
404111The BillingProfile was not found by its unique identifier.
If you receive this error, please contact technical support.
409130During update: When updating a BillingProfile, the billingProfile.company can not be changed.

DELETE/billing/profiles

Deletes an existing BillingProfile.
Response description
PropertyTypeDescription
billingProfileRespDeletedAn object which contains the BillingProfile's unique identifier and deleted status.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.deletedbooleanFlag showing if the object is deleted.
billingProfile.iduint64?Identifier given as input for the command.
billingProfile.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillingProfile was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003The requested billingProfile id was invalid.
4015You do not have permission to delete this Company's BillingProfiles.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.

GET/billing/profiles/{profileId}?includeDeleted=boolean

Gets details of the specified BillingProfile.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
profileIduint64requiredUnique identifier of the BillingProfile.
Response description
PropertyTypeDescription
billingProfileBillingProfileThe requested BillingProfile.
billingProfile.billeeuint64Unique identifier of the Company receiving the bill. Most of the time, this value is the same as the target.
billingProfile.companyuint64Unique identifier of the Company that owns this profile and is sending the bill.
billingProfile.currencyBillingCurrencykind of money
billingProfile.cycleBillingCycleRepeating cycle used for generating bills
billingProfile.cycleEnddatetimeWhen should the cycle end (customer cancelled)
billingProfile.cyclePostDatedbooleanPro-rated, or post-dated.
billingProfile.cycleStartdatetimeWhen is the first day of the billing cycle
billingProfile.googleServicesEnabledbooleanAre the Google services available to be proxied by the service?
billingProfile.iduint64Unique identifier of this billing profile
billingProfile.messagesArray.<BillableSmsProfile>SMS messaging tiers
billingProfile.namestring
maximum-length: 254
The name for this profile
billingProfile.notesstring
maximum-length: 1000
Notes about the billing profile for the billee or target.
billingProfile.processedUtcdatetimeWhen the was change procesed.
billingProfile.targetuint64Unique identifier of the Company to which this rule pertains.
billingProfile.updatedby: login, from: monster
billingProfile.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"billee": number,
		"company": number,
		"currency": string,
		"cycle": string,
		"cycleEnd": string,
		"cyclePostDated": boolean,
		"cycleStart": string,
		"googleServicesEnabled": boolean,
		"id": number,
		"messages": [
			{
				"amount": number,
				"limit": number
			}
		],
		"name": string,
		"notes": string,
		"processedUtc": string,
		"target": number,
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a billingProfile object, or it is invalid.
4003The requested billingProfile id was invalid.
4015You do not have permission to view this Company's BillingProfiles.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.

POST/billing/profiles/{profileId}

Creates new or updates an existing BillingProfile.
URL Parameters
ParameterTypeRequiredDescription
profileIduint64?optionalUnique identifier of the BillingProfile. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
billingProfileObject.<string, ?>alwaysA simple object to contain the BillingProfile parameters.
billingProfile.billeeuint64?optionalUnique identifier of the Company receiving the bill.
billingProfile.companyuint64?optionalUnique identifier of the Company that owns this BillingProfile and is sending the bill.
billingProfile.currencyBillingCurrency?optionalKind of money.
billingProfile.cycleBillingCycle?optionalRepeating cycle used for generating bills.
billingProfile.cycleEnddatetimeoptionalWhen should the cycle end (customer cancelled); null means it never ends.
billingProfile.cyclePostDatedbooleanoptionalPro-rated, or post-dated.
billingProfile.cycleStartdatetimeoptionalWhen is the first day of the billing cycle.
billingProfile.googleServicesEnabledbooleanoptionalAre the Google services available to be proxied by the service?
billingProfile.iduint64?optionalUnique identifier of the BillingProfile you want to update.
billingProfile.messagesArray.<BillableSmsProfile>optionalSMS messaging tiers.
billingProfile.namestringoptionalName for the BillingProfile
billingProfile.notesstringoptionalNotes about the BillingProfile for the billee or target.
billingProfile.targetuint64?optionalUnique identifier of the Company to which this rule pertains.
billingProfile.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"billingProfile": {
		"billee": number,
		"company": number,
		"currency": string,
		"cycle": string,
		"cycleEnd": string,
		"cyclePostDated": boolean,
		"cycleStart": string,
		"googleServicesEnabled": boolean,
		"id": number,
		"messages": [
			{
				"amount": number,
				"limit": number
			}
		],
		"name": string,
		"notes": string,
		"target": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
billingProfileRespIdCompanyAn object which contains the "id", "company", and "profile" keys.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003Not enough keys exist in the billingProfile object.
4003The messages are invalid.
4003The cycle is invalid.
4003The currency is invalid.
4003The cycleStart date is invalid.
4003The cycleEnd date is invalid.
4003During create: When creating a new BillingProfile, start date is invalid.
4003During create: When creating a new BillingProfile, end date is invalid.
4003During create: When creating a new BillingProfile, kind is invalid.
4003During create: When creating a new BillingProfile, a name was not given, or it is invalid.
4003During create: When creating a new BillingProfile, company is invalid.
4003During create: When creating a new BillingProfile, target is invalid.
4003During create: When creating a new BillingProfile, billee is invalid.
4003During update: When updating a BillingProfile, the name was invalid.
4003During update: When updating a BillingProfile, the v was invalid.
4015During create: You do not have permission to create new BillingProfile.
4015During update: You do not have permission to update BillingProfile.
4006During update: When updating a BillingProfile, the v was not an array, or contained too few numbers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The company was not found by its unique identifier.
40428The target was not found by its unique identifier.
40428The billee was not found by its unique identifier.
404111The BillingProfile was not found by its unique identifier.
If you receive this error, please contact technical support.
409130During update: When updating a BillingProfile, the billingProfile.company can not be changed.

DELETE/billing/profiles/{profileId}

Deletes an existing BillingProfile.
URL Parameters
ParameterTypeRequiredDescription
profileIduint64requiredUnique identifier of the BillingProfile.
Response description
PropertyTypeDescription
billingProfileRespDeletedAn object which contains the BillingProfile's unique identifier and deleted status.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.deletedbooleanFlag showing if the object is deleted.
billingProfile.iduint64?Identifier given as input for the command.
billingProfile.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillingProfile was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003The requested billingProfile id was invalid.
4015You do not have permission to delete this Company's BillingProfiles.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.

GET/billing/profiles/{profileId}/licenses?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of BillableHostingLicenses for the specified BillingProfile.
URL Parameters
ParameterTypeRequiredDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
profileIduint64requiredUnique identifier of the BillingProfile.
Response description
PropertyTypeDescription
billingProfileRespIdCompanyAn object to contain the "id" of the BillingProfile to which the array of BillableHostingLicenses belong.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingLicensesArray.<BillableHostingLicense>The list of BillableHostingLicenses.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingLicenses": [
		{
			"amount": number,
			"company": number,
			"end": string,
			"id": number,
			"kind": string,
			"limit": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"profile": number,
			"reference": string,
			"sku": string,
			"start": string,
			"suspended": boolean,
			"targets": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003The billingProfile object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's BillableHostingLicenses.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
If you receive this error, please contact technical support.
404111The BillingProfile was not found by its unique identifier.

GET/billing/profiles/{profileId}/reports?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of BillingReports for the specified BillingProfile.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
profileIduint64requiredUnique identifier of the BillingProfile.
Response description
PropertyTypeDescription
billingProfileRespIdCompanyAn object to contain the "id" of the BillingProfile to which the array of BillableHostingRules belong.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.iduint64?Identifier given as input for the command.
billingReportsArray.<BillingReport>The list of requested BillingReports.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"id": number
	},
	"billingReports": [
		{
			"billee": number,
			"breakdown": [
				{
					"licenses": [
						{
							"billableDays": number,
							"cost": number,
							"created": string,
							"deleted": string,
							"firmware": string,
							"kind": string,
							"name": string,
							"notes": string,
							"phoneNumber": number,
							"provider": string,
							"total": number
						}
					],
					"services": [
						{
							"asset": number,
							"billableDays": number,
							"cost": number,
							"created": string,
							"deleted": string,
							"kind": string,
							"labels": [
								string
							],
							"name": string,
							"notes": string,
							"phoneNumbers": [
								number
							],
							"providers": [
								string
							],
							"restored": string,
							"revived": string,
							"suspended": string,
							"suspendedCost": number,
							"suspendedDays": number,
							"total": number,
							"updatedDts": string
						}
					],
					"target": number
				}
			],
			"company": number,
			"currency": string,
			"endDate": string,
			"error": string,
			"id": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"profile": number,
			"startDate": string,
			"status": string,
			"summary": [
				{
					"hosting": [
						{
							"cost": number,
							"count": number,
							"sku": string,
							"total": number
						}
					],
					"name": string,
					"notes": string,
					"parent": number,
					"target": number
				}
			],
			"total": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003The billingProfile object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's BillingReports.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
404111The BillingProfile was not found by its unique identifier.

PATCH/billing/profiles/{profileId}/restore

Restores the specified BillingProfile to its previous version.
URL Parameters
ParameterTypeRequiredDescription
profileIduint64requiredUnique identifier of the BillingProfile.
HTTP Request body description
PropertyTypeRequiredDescription
billingProfileParamIdalwaysAn object to contain the "id" of the BillingProfile.
billingProfile.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"billingProfile": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
billingProfileRespDeletedAn object which contains the BillingProfile's unique identifier and deleted status.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.deletedbooleanFlag showing if the object is deleted.
billingProfile.iduint64?Identifier given as input for the command.
billingProfile.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003The requested billingProfile id was invalid.
4015You do not have permission to restore BillingProfiles.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.
400112The BillingProfile was found, but is not marked as deleted.

GET/billing/profiles/{profileId}/rules?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of BillableHostingRule for the specified BillingProfile.
URL Parameters
ParameterTypeRequiredDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
profileIduint64requiredUnique identifier of the BillingProfile.
Response description
PropertyTypeDescription
billingProfileRespIdCompanyAn object to contain the "id" of the BillingProfile to which the array of BillableHostingRules belong.
billingProfile.companyuint64Identifier of the Company to which this object belongs.
billingProfile.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingRulesArray.<BillableHostingRule>The list of requested BillableHostingRules.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfile": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingRules": [
		{
			"amount": number,
			"company": number,
			"end": string,
			"id": number,
			"limit": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"profile": number,
			"reference": string,
			"service": string,
			"sku": string,
			"start": string,
			"suspended": boolean,
			"targets": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a billingProfile object, or it is invalid.
4003The billingProfile object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's BillableHostingRules.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
If you receive this error, please contact technical support.
404111The BillingProfile was not found by its unique identifier.

PATCH/billing/profiles/licenses

Creates new or updates an existing BillableHostingLicense.
HTTP Request body description
PropertyTypeRequiredDescription
hostingLicenseObject.<string, ?>alwaysA simple object to contain the BillableHostingLicense parameters.
hostingLicense.amountdouble?optionalCost per cycle for this plan
hostingLicense.enddatetimeoptionalDate this BillableHostingLicense is applied until; null means it never ends.
hostingLicense.iduint64?updateUnique identifier of the BillableHostingLicense you want to update.
hostingLicense.kindBillableLicenseType?createThe type of hardware BillableLicenseType.
hostingLicense.limituint32?optionalThe number of units to which this BillableHostingLicense applies. Should be a non-zero value; null means unlimited
hostingLicense.namestringcreateName for the BillableHostingLicense
hostingLicense.notesstringoptionalNotes about the BillableHostingLicense.
hostingLicense.profileuint64?createUnique identifier of this BillableHostingLicense's BillingProfile.
hostingLicense.referencestringoptionalA custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
hostingLicense.startdatetimeoptionalDate this BillableHostingLicense takes effect.
hostingLicense.suspendedbooleanoptionalDoes this BillableHostingLicense apply to suspended resources
hostingLicense.targetsexpressionoptionalWhich assets are targetted by this BillableHostingLicense
hostingLicense.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"hostingLicense": {
		"amount": number,
		"end": string,
		"id": number,
		"kind": string,
		"limit": number,
		"name": string,
		"notes": string,
		"profile": number,
		"reference": string,
		"start": string,
		"suspended": boolean,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingLicenseRespIdBillingProfileAn object which contains the "id", "company", and "profile" keys.
hostingLicense.companyuint64Identifier of the Company to which this object belongs.
hostingLicense.iduint64?Identifier given as input for the command.
hostingLicense.profileuint64Identifier of the BillingProfile to which this object belongs
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingLicense": {
		"company": number,
		"id": number,
		"profile": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a hostingLicense object, or it is invalid.
4003Not enough keys exist in the hostingLicense object.
4003During create: When creating a new BillableHostingLicense, start date is invalid.
4003During create: When creating a new BillableHostingLicense, end date is invalid.
4003During create: When creating a new BillableHostingLicense, kind is invalid.
4003During create: When creating a new BillableHostingLicense, a name was not given, or it is invalid.
4003During create: When creating a new BillableHostingLicense, profile is invalid.
4003During update: When updating a BillableHostingLicense, the name was invalid.
4003During update: When updating a BillableHostingLicense, the v was invalid.
4015During create: You do not have permission to create new BillableHostingLicenses.
4015During update: You do not have permission to update BillableHostingLicenses.
4006During update: When updating a BillableHostingLicense, the v was not an array, or contained too few numbers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.
If you receive this error, please contact technical support.
404117During update: The BillableHostingLicense was not found by its unique identifier.
409130During update: When updating a BillableHostingLicense, the hostingLicense.profile can not be changed.

DELETE/billing/profiles/licenses

Deletes an existing BillableHostingLicense.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingLicenseRespDeletedAn object which contains the BillableHostingLicense's unique identifier and deleted status.
hostingLicense.companyuint64Identifier of the Company to which this object belongs.
hostingLicense.deletedbooleanFlag showing if the object is deleted.
hostingLicense.iduint64?Identifier given as input for the command.
hostingLicense.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingLicense": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillableHostingLicense was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a hostingLicense object, or it is invalid.
4003The requested hostingLicense id was invalid.
4015You do not have permission to delete this Company's BillableHostingLicenses.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404117The BillableHostingLicense was not found by its unique identifier.

GET/billing/profiles/licenses/{licenseId}?includeDeleted=boolean

Gets details of the specified BillableHostingLicense.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
licenseIduint64requiredUnique identifier of the BillableHostingLicense.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingLicenseBillableHostingLicenseThe requested BillableHostingLicense.
hostingLicense.amountdoubleCost per cycle for this plan
hostingLicense.companyuint64Unique identifier of the Company that owns this hosting rule.
hostingLicense.enddatetimeDate this billing rule is applied until; null means it never ends. These dates are used to determine how much of the cycle is billed.
hostingLicense.iduint64Unique identifier of this hosting rule.
hostingLicense.kindBillableLicenseTypeThe type of hardware license
hostingLicense.limituint32?The number of units to which this billing rule applies. Should be a non-zero value; null means unlimited
hostingLicense.namestring
maximum-length: 254
The name of this billing rule.
hostingLicense.notesstringNotes about billing this rule.
hostingLicense.processedUtcdatetimeWhen the was change procesed.
hostingLicense.profileuint64Unique identifier of this rule's billing profile.
hostingLicense.referencestring
maximum-length: 100
A custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
hostingLicense.skustring
maximum-length: 20
SKU or SOC code
hostingLicense.startdatetimeDate this billing rule takes effect. These dates are used to determine how much of the cycle is billed.
hostingLicense.suspendedbooleanDoes this hosting rule apply to suspended resources
hostingLicense.targetsexpressionWhich assets are targeted by this hosting rule
hostingLicense.updatedby: login, from: monster
hostingLicense.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingLicense": {
		"amount": number,
		"company": number,
		"end": string,
		"id": number,
		"kind": string,
		"limit": number,
		"name": string,
		"notes": string,
		"processedUtc": string,
		"profile": number,
		"reference": string,
		"sku": string,
		"start": string,
		"suspended": boolean,
		"targets": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a hostingLicense object, or it is invalid.
4003The requested hostingLicense id was invalid.
4015You do not have permission to view this Company's BillableHostingLicenses.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404117The BillableHostingLicense was not found by its unique identifier.

POST/billing/profiles/licenses/{licenseId}

Creates new or updates an existing BillableHostingLicense.
URL Parameters
ParameterTypeRequiredDescription
licenseIduint64?optionalUnique identifier of the BillableHostingLicense. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
hostingLicenseObject.<string, ?>alwaysA simple object to contain the BillableHostingLicense parameters.
hostingLicense.amountdouble?optionalCost per cycle for this plan
hostingLicense.enddatetimeoptionalDate this BillableHostingLicense is applied until; null means it never ends.
hostingLicense.iduint64?updateUnique identifier of the BillableHostingLicense you want to update.
hostingLicense.kindBillableLicenseType?createThe type of hardware BillableLicenseType.
hostingLicense.limituint32?optionalThe number of units to which this BillableHostingLicense applies. Should be a non-zero value; null means unlimited
hostingLicense.namestringcreateName for the BillableHostingLicense
hostingLicense.notesstringoptionalNotes about the BillableHostingLicense.
hostingLicense.profileuint64?createUnique identifier of this BillableHostingLicense's BillingProfile.
hostingLicense.referencestringoptionalA custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
hostingLicense.startdatetimeoptionalDate this BillableHostingLicense takes effect.
hostingLicense.suspendedbooleanoptionalDoes this BillableHostingLicense apply to suspended resources
hostingLicense.targetsexpressionoptionalWhich assets are targetted by this BillableHostingLicense
hostingLicense.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"hostingLicense": {
		"amount": number,
		"end": string,
		"id": number,
		"kind": string,
		"limit": number,
		"name": string,
		"notes": string,
		"profile": number,
		"reference": string,
		"start": string,
		"suspended": boolean,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingLicenseRespIdBillingProfileAn object which contains the "id", "company", and "profile" keys.
hostingLicense.companyuint64Identifier of the Company to which this object belongs.
hostingLicense.iduint64?Identifier given as input for the command.
hostingLicense.profileuint64Identifier of the BillingProfile to which this object belongs
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingLicense": {
		"company": number,
		"id": number,
		"profile": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a hostingLicense object, or it is invalid.
4003Not enough keys exist in the hostingLicense object.
4003During create: When creating a new BillableHostingLicense, start date is invalid.
4003During create: When creating a new BillableHostingLicense, end date is invalid.
4003During create: When creating a new BillableHostingLicense, kind is invalid.
4003During create: When creating a new BillableHostingLicense, a name was not given, or it is invalid.
4003During create: When creating a new BillableHostingLicense, profile is invalid.
4003During update: When updating a BillableHostingLicense, the name was invalid.
4003During update: When updating a BillableHostingLicense, the v was invalid.
4015During create: You do not have permission to create new BillableHostingLicenses.
4015During update: You do not have permission to update BillableHostingLicenses.
4006During update: When updating a BillableHostingLicense, the v was not an array, or contained too few numbers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.
If you receive this error, please contact technical support.
404117During update: The BillableHostingLicense was not found by its unique identifier.
409130During update: When updating a BillableHostingLicense, the hostingLicense.profile can not be changed.

DELETE/billing/profiles/licenses/{licenseId}

Deletes an existing BillableHostingLicense.
URL Parameters
ParameterTypeRequiredDescription
licenseIduint64requiredUnique identifier of the BillableHostingLicense.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingLicenseRespDeletedAn object which contains the BillableHostingLicense's unique identifier and deleted status.
hostingLicense.companyuint64Identifier of the Company to which this object belongs.
hostingLicense.deletedbooleanFlag showing if the object is deleted.
hostingLicense.iduint64?Identifier given as input for the command.
hostingLicense.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingLicense": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillableHostingLicense was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a hostingLicense object, or it is invalid.
4003The requested hostingLicense id was invalid.
4015You do not have permission to delete this Company's BillableHostingLicenses.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404117The BillableHostingLicense was not found by its unique identifier.

PATCH/billing/profiles/licenses/{licenseId}/restore

Restores the specified BillableHostingLicense to its previous version.
URL Parameters
ParameterTypeRequiredDescription
licenseIduint64requiredUnique identifier of the BillableHostingLicense.
HTTP Request body description
PropertyTypeRequiredDescription
hostingLicenseParamIdalwaysAn object to contain the "id" of the BillableHostingLicense.
hostingLicense.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"hostingLicense": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingLicenseRespDeletedAn object which contains the BillableHostingLicense's unique identifier and deleted status.
hostingLicense.companyuint64Identifier of the Company to which this object belongs.
hostingLicense.deletedbooleanFlag showing if the object is deleted.
hostingLicense.iduint64?Identifier given as input for the command.
hostingLicense.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingLicense": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a hostingLicense object, or it is invalid.
4003The requested hostingLicense id was invalid.
4015You do not have permission to delete BillableHostingLicenses.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404117The BillableHostingLicense was not found by its unique identifier.
400118The BillableHostingLicense was found, but is not marked as deleted.

GET/billing/profiles/reports?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/billing/profiles/reports.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects retrieved from the archive.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

DELETE/billing/profiles/reports

Deletes an existing BillingReport.
Response description
PropertyTypeDescription
billingReportRespDeletedAn object which contains the BillingReport's unique identifier and deleted status.
billingReport.companyuint64Identifier of the Company to which this object belongs.
billingReport.deletedbooleanFlag showing if the object is deleted.
billingReport.iduint64?Identifier given as input for the command.
billingReport.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingReport": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillingReport was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a billingReport object, or it is invalid.
4003The requested billingReport id was invalid.
4015You do not have permission to delete this Company's BillingReports.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404119The BillingReport was not found by its unique identifier.

GET/billing/profiles/reports/{reportId}?includeDeleted=boolean

Gets details of the specified BillingReport.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
reportIduint64requiredUnique identifier of the BillingReport.
Response description
PropertyTypeDescription
billingReportBillingReportThe requested BillingReport.
billingReport.billeeuint64Unique identifier of the Company receiving the bill.
billingReport.breakdownArray.<BillingReportBreakdown>Individual amounts per company, used to calculate the results of the report.
billingReport.companyuint64The company to which this report belongs and is sending the bill.
billingReport.currencyBillingCurrencyCurrency being billed in
billingReport.endDatedatetimeLast day of the billing cycle
billingReport.errorstring
maximum-length: 250
A field which contains report error details if the BillingReport.status is BillingReportStatus.failed.
billingReport.iduint64Unique identifier
billingReport.namestring
maximum-length: 100
Name of this report.
billingReport.notesstringNotes about this report.
billingReport.processedUtcdatetimeWhen the was change procesed.
billingReport.profileuint64The profile to which this report belongs
billingReport.startDatedatetimeFirst day of the billing cycle
billingReport.statusBillingReportStatusThe processing status of this report.
billingReport.summaryArray.<BillingReportSummary>Summary contains totals per target for this billee
billingReport.totaldoubleTotal amount being billed.
billingReport.updatedby: login, from: monster
billingReport.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingReport": {
		"billee": number,
		"breakdown": [
			{
				"licenses": [
					{
						"billableDays": number,
						"cost": number,
						"created": string,
						"deleted": string,
						"firmware": string,
						"kind": string,
						"name": string,
						"notes": string,
						"phoneNumber": number,
						"provider": string,
						"total": number
					}
				],
				"services": [
					{
						"asset": number,
						"billableDays": number,
						"cost": number,
						"created": string,
						"deleted": string,
						"kind": string,
						"labels": [
							string
						],
						"name": string,
						"notes": string,
						"phoneNumbers": [
							number
						],
						"providers": [
							string
						],
						"restored": string,
						"revived": string,
						"suspended": string,
						"suspendedCost": number,
						"suspendedDays": number,
						"total": number,
						"updatedDts": string
					}
				],
				"target": number
			}
		],
		"company": number,
		"currency": string,
		"endDate": string,
		"error": string,
		"id": number,
		"name": string,
		"notes": string,
		"processedUtc": string,
		"profile": number,
		"startDate": string,
		"status": string,
		"summary": [
			{
				"hosting": [
					{
						"cost": number,
						"count": number,
						"sku": string,
						"total": number
					}
				],
				"name": string,
				"notes": string,
				"parent": number,
				"target": number
			}
		],
		"total": number,
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a billingReport object, or it is invalid.
4003The requested billingReport id was invalid.
4015You do not have permission to view this Company's BillingReports.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404119The BillingReport was not found by its unique identifier.

DELETE/billing/profiles/reports/{reportId}

Deletes an existing BillingReport.
URL Parameters
ParameterTypeRequiredDescription
reportIduint64requiredUnique identifier of the BillingReport.
Response description
PropertyTypeDescription
billingReportRespDeletedAn object which contains the BillingReport's unique identifier and deleted status.
billingReport.companyuint64Identifier of the Company to which this object belongs.
billingReport.deletedbooleanFlag showing if the object is deleted.
billingReport.iduint64?Identifier given as input for the command.
billingReport.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingReport": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillingReport was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a billingReport object, or it is invalid.
4003The requested billingReport id was invalid.
4015You do not have permission to delete this Company's BillingReports.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404119The BillingReport was not found by its unique identifier.

PATCH/billing/profiles/reports/{reportId}/restore

Restores the specified BillingReport to its previous version.
URL Parameters
ParameterTypeRequiredDescription
reportIduint64requiredUnique identifier of the BillingReport.
HTTP Request body description
PropertyTypeRequiredDescription
billingReportParamIdalwaysAn object to contain the "id" of the BillingReport.
billingReport.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"billingReport": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
billingReportRespDeletedAn object which contains the BillingReport's unique identifier and deleted status.
billingReport.companyuint64Identifier of the Company to which this object belongs.
billingReport.deletedbooleanFlag showing if the object is deleted.
billingReport.iduint64?Identifier given as input for the command.
billingReport.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingReport": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a billingReport object, or it is invalid.
4003The requested billingReport id was invalid.
4015You do not have permission to restore BillingReports.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404119The BillingReport was not found by its unique identifier.
400120The BillingReport was found, but is not marked as deleted.

PATCH/billing/profiles/rules

Creates new or updates an existing BillableHostingRule.
HTTP Request body description
PropertyTypeRequiredDescription
hostingRuleObject.<string, ?>alwaysA simple object to contain the BillableHostingRule parameters.
hostingRule.amountdouble?optionalCost per cycle for this plan
hostingRule.enddatetimecreateDate this BillableHostingRule is applied until; null means it never ends.
hostingRule.iduint64?updateUnique identifier of the BillableHostingRule you want to update.
hostingRule.limituint32?optionalThe number of units to which this BillableHostingRule applies. Should be a non-zero value; null means unlimited
hostingRule.namestringcreateName for the BillableHostingRule
hostingRule.notesstringoptionalNotes about the BillableHostingRule.
hostingRule.profileuint64?createUnique identifier of this BillableHostingRule's BillingProfile.
hostingRule.referencestringoptionalA custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
hostingRule.serviceBillableHostingType?createThe type of service being billed.
hostingRule.startdatetimecreateDate this BillableHostingRule takes effect.
hostingRule.suspendedbooleanoptionalDoes this BillableHostingRule apply to suspended resources
hostingRule.targetsexpressionoptionalWhich assets are targetted by this BillableHostingRule
hostingRule.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"hostingRule": {
		"amount": number,
		"end": string,
		"id": number,
		"limit": number,
		"name": string,
		"notes": string,
		"profile": number,
		"reference": string,
		"service": string,
		"start": string,
		"suspended": boolean,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingRuleRespIdBillingProfileAn object which contains the "id", "company", and "profile" keys.
hostingRule.companyuint64Identifier of the Company to which this object belongs.
hostingRule.iduint64?Identifier given as input for the command.
hostingRule.profileuint64Identifier of the BillingProfile to which this object belongs
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingRule": {
		"company": number,
		"id": number,
		"profile": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a hostingRule object, or it is invalid.
4003Not enough keys exist in the hostingRule object.
4003During create: When creating a new BillableHostingRule, start date is invalid.
4003During create: When creating a new BillableHostingRule, end date is invalid.
4003During create: When creating a new BillableHostingRule, a name was not given, or it is invalid.
4003During create: When creating a new BillableHostingRule, profile is invalid.
4003During create: When creating a new BillableHostingRule, service is invalid.
4003During update: When updating a BillableHostingRule, the name was invalid.
4003During update: When updating a BillableHostingRule, the v was invalid.
4015During create: You do not have permission to create new BillableHostingRules.
4015During update: You do not have permission to update BillableHostingRules.
4006During update: When updating a BillableHostingRule, the v was not an array, or contained too few numbers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.
If you receive this error, please contact technical support.
404113During update: The BillableHostingRule was not found by its unique identifier.
409130During update: When updating a BillableHostingRule, the hostingRule.profile can not be changed.

DELETE/billing/profiles/rules

Deletes an existing BillableHostingRule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingRuleRespDeletedAn object which contains the BillableHostingRule's unique identifier and deleted status.
hostingRule.companyuint64Identifier of the Company to which this object belongs.
hostingRule.deletedbooleanFlag showing if the object is deleted.
hostingRule.iduint64?Identifier given as input for the command.
hostingRule.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingRule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillableHostingRule was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a hostingRule object, or it is invalid.
4003The requested hostingRule id was invalid.
4015You do not have permission to delete this Company's BillableHostingRules.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404113The BillableHostingRule was not found by its unique identifier.

GET/billing/profiles/rules/{ruleId}?includeDeleted=boolean

Gets details of the specified BillableHostingRule.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
ruleIduint64requiredUnique identifier of the BillableHostingRule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingRuleBillableHostingRuleThe requested BillableHostingRule.
hostingRule.amountdoubleCost per cycle for this plan
hostingRule.companyuint64Unique identifier of the Company that owns this hosting rule.
hostingRule.enddatetimeDate this billing rule is applied until; null means it never ends. These dates are used to determine how much of the cycle is billed.
hostingRule.iduint64Unique identifier of this hosting rule.
hostingRule.limituint32?The number of units to which this billing rule applies. Should be a non-zero value; null means unlimited
hostingRule.namestring
maximum-length: 254
The name of this billing rule.
hostingRule.notesstringNotes about billing this rule.
hostingRule.processedUtcdatetimeWhen the was change procesed.
hostingRule.profileuint64Unique identifier of this rule's billing profile.
hostingRule.referencestring
maximum-length: 100
A custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
hostingRule.serviceBillableHostingTypeThe type of service being billed.
hostingRule.skustring
maximum-length: 20
SKU or SOC code
hostingRule.startdatetimeDate this billing rule takes effect. These dates are used to determine how much of the cycle is billed.
hostingRule.suspendedbooleanDoes this hosting rule apply to suspended resources
hostingRule.targetsexpressionWhich assets are targeted by this hosting rule
hostingRule.updatedby: login, from: monster
hostingRule.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingRule": {
		"amount": number,
		"company": number,
		"end": string,
		"id": number,
		"limit": number,
		"name": string,
		"notes": string,
		"processedUtc": string,
		"profile": number,
		"reference": string,
		"service": string,
		"sku": string,
		"start": string,
		"suspended": boolean,
		"targets": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a hostingRule object, or it is invalid.
4003The requested hostingRule id was invalid.
4015You do not have permission to view this Company's BillableHostingRules.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404113The BillableHostingRule was not found by its unique identifier.

POST/billing/profiles/rules/{ruleId}

Creates new or updates an existing BillableHostingRule.
URL Parameters
ParameterTypeRequiredDescription
ruleIduint64?optionalUnique identifier of the BillableHostingRule. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
hostingRuleObject.<string, ?>alwaysA simple object to contain the BillableHostingRule parameters.
hostingRule.amountdouble?optionalCost per cycle for this plan
hostingRule.enddatetimecreateDate this BillableHostingRule is applied until; null means it never ends.
hostingRule.iduint64?updateUnique identifier of the BillableHostingRule you want to update.
hostingRule.limituint32?optionalThe number of units to which this BillableHostingRule applies. Should be a non-zero value; null means unlimited
hostingRule.namestringcreateName for the BillableHostingRule
hostingRule.notesstringoptionalNotes about the BillableHostingRule.
hostingRule.profileuint64?createUnique identifier of this BillableHostingRule's BillingProfile.
hostingRule.referencestringoptionalA custom field used to refer to an external system. Examples are a cost codes, SOCs, discount plans...
hostingRule.serviceBillableHostingType?createThe type of service being billed.
hostingRule.startdatetimecreateDate this BillableHostingRule takes effect.
hostingRule.suspendedbooleanoptionalDoes this BillableHostingRule apply to suspended resources
hostingRule.targetsexpressionoptionalWhich assets are targetted by this BillableHostingRule
hostingRule.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"hostingRule": {
		"amount": number,
		"end": string,
		"id": number,
		"limit": number,
		"name": string,
		"notes": string,
		"profile": number,
		"reference": string,
		"service": string,
		"start": string,
		"suspended": boolean,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingRuleRespIdBillingProfileAn object which contains the "id", "company", and "profile" keys.
hostingRule.companyuint64Identifier of the Company to which this object belongs.
hostingRule.iduint64?Identifier given as input for the command.
hostingRule.profileuint64Identifier of the BillingProfile to which this object belongs
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingRule": {
		"company": number,
		"id": number,
		"profile": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a hostingRule object, or it is invalid.
4003Not enough keys exist in the hostingRule object.
4003During create: When creating a new BillableHostingRule, start date is invalid.
4003During create: When creating a new BillableHostingRule, end date is invalid.
4003During create: When creating a new BillableHostingRule, a name was not given, or it is invalid.
4003During create: When creating a new BillableHostingRule, profile is invalid.
4003During create: When creating a new BillableHostingRule, service is invalid.
4003During update: When updating a BillableHostingRule, the name was invalid.
4003During update: When updating a BillableHostingRule, the v was invalid.
4015During create: You do not have permission to create new BillableHostingRules.
4015During update: You do not have permission to update BillableHostingRules.
4006During update: When updating a BillableHostingRule, the v was not an array, or contained too few numbers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404111The BillingProfile was not found by its unique identifier.
If you receive this error, please contact technical support.
404113During update: The BillableHostingRule was not found by its unique identifier.
409130During update: When updating a BillableHostingRule, the hostingRule.profile can not be changed.

DELETE/billing/profiles/rules/{ruleId}

Deletes an existing BillableHostingRule.
URL Parameters
ParameterTypeRequiredDescription
ruleIduint64requiredUnique identifier of the BillableHostingRule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingRuleRespDeletedAn object which contains the BillableHostingRule's unique identifier and deleted status.
hostingRule.companyuint64Identifier of the Company to which this object belongs.
hostingRule.deletedbooleanFlag showing if the object is deleted.
hostingRule.iduint64?Identifier given as input for the command.
hostingRule.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingRule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred, the BillableHostingRule was not deleted.
If you receive this error, please contact technical support.
4003The request does not contain a hostingRule object, or it is invalid.
4003The requested hostingRule id was invalid.
4015You do not have permission to delete this Company's BillableHostingRules.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404113The BillableHostingRule was not found by its unique identifier.

PATCH/billing/profiles/rules/{ruleId}/restore

Restores the specified BillableHostingRule to its previous version.
URL Parameters
ParameterTypeRequiredDescription
ruleIduint64requiredUnique identifier of the BillableHostingRule.
HTTP Request body description
PropertyTypeRequiredDescription
hostingRuleParamIdalwaysAn object to contain the "id" of the BillableHostingRule.
hostingRule.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"hostingRule": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
hostingRuleRespDeletedAn object which contains the BillableHostingRule's unique identifier and deleted status.
hostingRule.companyuint64Identifier of the Company to which this object belongs.
hostingRule.deletedbooleanFlag showing if the object is deleted.
hostingRule.iduint64?Identifier given as input for the command.
hostingRule.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"hostingRule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a hostingRule object, or it is invalid.
4003The requested hostingRule id was invalid.
4015You do not have permission to restore BillableHostingRules.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404113The BillableHostingRule was not found by its unique identifier.
400114The BillableHostingRule was found, but is not marked as deleted.

GET/companies/{companyId}/billing/profiles?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of BillingProfiles for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
billingProfilesArray.<BillingProfile>The list of requested BillingProfiles.
companyRespIdAn object to contain the "id" of the Company to which the array of BillingProfiles belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingProfiles": [
		{
			"billee": number,
			"company": number,
			"currency": string,
			"cycle": string,
			"cycleEnd": string,
			"cyclePostDated": boolean,
			"cycleStart": string,
			"googleServicesEnabled": boolean,
			"id": number,
			"messages": [
				{
					"amount": number,
					"limit": number
				}
			],
			"name": string,
			"notes": string,
			"processedUtc": string,
			"target": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's BillingProfiles.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/billing/profiles/reports?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of BillingReports for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
billingReportsArray.<BillingReport>The list of requested BillingReports.
companyRespIdAn object to contain the "id" of the Company to which the array of BillingReports belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"billingReports": [
		{
			"billee": number,
			"breakdown": [
				{
					"licenses": [
						{
							"billableDays": number,
							"cost": number,
							"created": string,
							"deleted": string,
							"firmware": string,
							"kind": string,
							"name": string,
							"notes": string,
							"phoneNumber": number,
							"provider": string,
							"total": number
						}
					],
					"services": [
						{
							"asset": number,
							"billableDays": number,
							"cost": number,
							"created": string,
							"deleted": string,
							"kind": string,
							"labels": [
								string
							],
							"name": string,
							"notes": string,
							"phoneNumbers": [
								number
							],
							"providers": [
								string
							],
							"restored": string,
							"revived": string,
							"suspended": string,
							"suspendedCost": number,
							"suspendedDays": number,
							"total": number,
							"updatedDts": string
						}
					],
					"target": number
				}
			],
			"company": number,
			"currency": string,
			"endDate": string,
			"error": string,
			"id": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"profile": number,
			"startDate": string,
			"status": string,
			"summary": [
				{
					"hosting": [
						{
							"cost": number,
							"count": number,
							"sku": string,
							"total": number
						}
					],
					"name": string,
					"notes": string,
					"parent": number,
					"target": number
				}
			],
			"total": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's BillingReports.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

Companies

GET/companies?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of child-companies for the specified Company. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companiesArray.<CompanyGeneral>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companies": [
		{
			"id": number,
			"name": string,
			"notes": string,
			"parent": number,
			"processedUtc": string,
			"references": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies?{keys=values}?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of companies only if one of the specified Company.references fields match. If no references are specified, it will match any Company with no references. If a reference value is null, it will match any Company without that reference key. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companiesArray.<CompanyGeneral>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companies": [
		{
			"id": number,
			"name": string,
			"notes": string,
			"parent": number,
			"processedUtc": string,
			"references": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

PATCH/companies

Creates a new or updates an existing Company.
HTTP Request body description
PropertyTypeRequiredDescription
companyObject.<string, ?>alwaysA simple object to contain the company parameters.
company.directoryObject.<string, Array.<uint64>>
for value-values see: Contact.id
optionalThe list of Contacts from this and other companies broken down by contact role.
company.iduint64?updateUnique identifier of the Company.
company.labelsObject.<string, LabelStyle>optionalThe styles for labels added to Assets, Places, and other things.
company.namestring
maximum-length: 100
createThe organizational name.
company.notesstringoptionalNotes.
company.parentuint64?createThe unique identifier of this company's parent organization.
company.passwordPolicyObject.<string, ?>alwaysThe password complexity and expiry policy.
company.passwordPolicy.expireModePasswordExpiryMode?optionalDefines how passwords expire.
company.passwordPolicy.expireThresholdbyte?optionalThe threshold for expiry (in days).
company.passwordPolicy.includeLettersbooleanoptionalDo passwords require alphabetical characters.
company.passwordPolicy.includeNumbersbooleanoptionalDo passwords require numeric characters.
company.passwordPolicy.includeSpecialbooleanoptionalDo passwords require non-alphanumeric characters.
company.passwordPolicy.includeUpperLowerbooleanoptionalDo passwords require upper-case and lower-case letters.
company.passwordPolicy.minimumLengthbyte?optionalThe minimum number of characters required.
company.referencesObject.<string, string>optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Company.
company.sessionPolicyObject.<string, ?>alwaysThe session lifetime policy.
company.sessionPolicy.applicationsArray.<string>optionalThe list of applications users are allowed to use to create sessions.
company.sessionPolicy.expireTimeoutuint16?optionalThe lifetime duration of a session in minutes.
company.sessionPolicy.idleAllowedbooleanoptionalDefines whether a session should be automatically killed when the connection breaks.
company.sessionPolicy.ipv4RangesArray.<ipv4>
maximum-length of values: 19
optionalRestrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
company.sessionPolicy.maxSessionsbyte?optionalThe maximum number of sessions allowed per user.
company.sessionPolicy.multiUserSessionMultiUser?optionalDefines the behaviour of the system when a user creates multiple sessions.
company.tagsObject.<string, LabelStyle>optionalThe styles for status tags added to Assets.
company.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"company": {
		"directory": {
			string: [
				number
			]
		},
		"id": number,
		"labels": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"name": string,
		"notes": string,
		"parent": number,
		"passwordPolicy": {
			"expireMode": string,
			"expireThreshold": number,
			"includeLetters": boolean,
			"includeNumbers": boolean,
			"includeSpecial": boolean,
			"includeUpperLower": boolean,
			"minimumLength": number
		},
		"references": {
			string: string
		},
		"sessionPolicy": {
			"applications": [
				string
			],
			"expireTimeout": number,
			"idleAllowed": boolean,
			"ipv4Ranges": [
				string
			],
			"maxSessions": number,
			"multiUser": string
		},
		"tags": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
companyRespIdParentAn object which contains the "id" and "parent" keys.
company.iduint64?Identifier given as input for the command.
company.parentuint64?Identifier of the parent to which this company belongs
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number,
		"parent": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003No valid changes would be performed.
4003One of the keys in the company.labels object is blank.
4003One of the values in the company.labels object is not valid.
4003One of the keys in the company.tags object is blank.
4003One of the values in the company.tags object is not valid.
4003One of the keys in the company.directory object is blank.
4003One of the values in the company.directory object is not an array.
4003One of the arrays in the company.directory object contains an invalid value.
4003One of the values in the company.sessionPolicy.applications array contains an invalid regular expression.
4003One of the values in the company.sessionPolicy.ipv4Ranges array contains an invalid IP address or CIDR range.
4003The given value for the company.sessionPolicy.multiUser is invalid.
4003The given value for the company.sessionPolicy.expireTimeout is invalid.
4003The given value for the company.sessionPolicy.maxSessions is invalid.
4003The given value for the company.passwordPolicy.minimumLength is invalid.
4003The given value for the company.passwordPolicy.expireMode is invalid.
4003The given value for the company.passwordPolicy.expireThreshold is invalid.
4003The company.passwordPolicy.expireThreshold is zero, and the company.passwordPolicy.expireMode is anything but PasswordExpiryMode.never.
4003The company.references were not provided as null or an object.
4003During create: When creating a new Company, a name was not given.
4003During update: When updating a Company, the name was given as null or blank.
4003During update: When updating a Company, the v was not an array, or contained too few numbers.
4003During create: When creating a new Company, too many company.references were given as input.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to create a new Company.
4015You do not have permission to update the CompanyGeneral.
4015You do not have permission to update the CompanyDirectory.
4015You do not have permission to update the CompanyStyles.
4015You do not have permission to update the CompanyPolicies.
4006During update: When updating a Company, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428During update: The Company was not found by its unique identifier.
409130The given parent cannot be the same as the Company id.
Returns an ErrorDetailParent as the errorDetails.
409130The given parent would create a circular reference in the Company tree.
Returns an ErrorDetailParent as the errorDetails.
409130During update: When updating an Company, the resulting number of company.references would be too high.
Returns an ErrorDetailParent as the errorDetails.

DELETE/companies

Deletes an existing Company.
Response description
PropertyTypeDescription
companyRespParentDeletedAn object which contains the Company's unique identifier and deleted status.
company.deletedbooleanFlag showing if the object is deleted.
company.iduint64?Identifier given as input for the command.
company.parentuint64Identifier of the parent to which the Company is a child.
company.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"deleted": boolean,
		"id": number,
		"parent": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to delete this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}?includeDeleted=boolean

Gets details of the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
companyCompanyThe requested Company.
company.directoryObject.<string, Array.<uint64>>
for value-values see: Contact.id
The list of Contacts from this and other companies broken down by contact role.
company.iduint64Unique identifier of the Company.
company.labelsObject.<codified, LabelStyle>
for keys see: LabelStyle.code
The styles for labels added to Assets, Places, and other things.
company.namestring
maximum-length: 100
The organizational name.
company.notesstringNotes.
company.parentuint64The unique identifier of this company's parent organization.
company.passwordPolicyPasswordPolicyThe password complexity and expiry policy.
company.passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
company.passwordPolicy.expireThresholdbyteThe threshold for expiry.
company.passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
company.passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
company.passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
company.passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
company.passwordPolicy.minimumLengthbyteThe minimum number of characters required.
company.processedUtcdatetimeWhen the was change procesed.
company.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
Name/value collections of custom fields used to refer to external systems.
company.resellerCompanyResellerIf this company is a reseller, then they have their own theme, support and billing information.
company.reseller.contactInfoObject.<string, uint64>
maximum-count of keys: 100
for values see: Contact.id
A list of Contacts for company specific things like Technical Support, Billing, etc...
company.reseller.domainstring
maximum-length: 100
The URN and path to the instance of v4. It does not contain the protocol because all instances are required to be HTTPS.
company.reseller.favouritestring
maximum-length: 200
The name of the icon file used for browser bookmarks.
company.reseller.gamutObject.<string, ColourStyle>
maximum-length of keys: 25
Colours used as templates for status tags, labels, and places.
company.reseller.graphicsObject.<string, codified>
maximum-length of keys: 25
maximum-length of values: 30
A list of symbol names and their corresponding FontAwesome icon names.
company.reseller.iconstring
maximum-length: 200
The name of the image uploaded as the logo (used for collapsed/mobile view).
company.reseller.iduint64Unique identifier of the Company.
company.reseller.languagesArray.<codified>
maximum-length of values: 5
A list of supported languages for your customers.
company.reseller.notifyEmailNotificationServerEmailThe server used for notification and conversational email messages sent and received by the system.
company.reseller.notifyEmail.incomingAddressstringThe domain or IP address of the incoming email server.
company.reseller.notifyEmail.incomingLoginstringThe username used to login to the incoming email server.
company.reseller.notifyEmail.incomingMessageNumberuint32IMAP message sequence number so only recent messages are retrieved.
company.reseller.notifyEmail.incomingPortuint16The port number of the incoming email server.
company.reseller.notifyEmail.incomingSecurebooleanIs the incoming email server using a secure SSL/TLS connection (it should).
company.reseller.notifyEmail.incomingTypestringThe type of incoming protocol to use (IMAP or POP3).
company.reseller.notifyEmail.outgoingAddressstringThe domain or IP address of the outgoing email server.
company.reseller.notifyEmail.outgoingLoginstringThe username used to login to the outgoing email server.
company.reseller.notifyEmail.outgoingPortuint16The port number of the outgoing email server.
company.reseller.notifyEmail.outgoingReplyToemailAn optional field which can be set as the "sent from" and/or "reply-to" address.
company.reseller.notifyEmail.outgoingSecurebooleanIs the outgoing email server using a secure SSL/TLS connection (it should).
company.reseller.notifyEmail.outgoingTypestringThe type of outgoing protocol to use (only SMTP).
company.reseller.notifySmsNotificationServerSmsDefinition for load-balanced outbound SMS numbers for the reseller.
company.reseller.notifySms.notifyLimituint16A per-number/per-day limit on the amount of Notifications sent.
company.reseller.notifySms.phoneNumbersObject.<string, Array.<phone>>
fixed length of keys: 2
All phone numbers listed by the country (using two-digit ISO 3166-1 alpha-2 country codes) they each serve.
company.reseller.parentuint64The unique identifier of this company's parent organization.
company.reseller.processedUtcdatetimeWhen the was change procesed.
company.reseller.recoverBodystringThe body of the email sent to a user requesting a password reset.
company.reseller.recoverIsHtmlboolean
company.reseller.recoverSubjectstringThe subject of the email sent to a user requesting a password reset.
company.reseller.serviceNamestring
maximum-length: 150
The name of the branded service being provided to the seller's customers.
company.reseller.termsPreamblestringA preamble to the general terms and conditions offered by Fleet Freedom.
company.reseller.termsUpdateddatetimeThe date and time when the terms were updated. This will promt users who are logging-in to re-agree to the new terms
company.reseller.updatedby: login, from: monster
company.reseller.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
company.reseller.websiteObject.<string, colour>
maximum-length of keys: 25
maximum-length of values: 22
Themed colours used in the web-based UI.
company.sessionPolicySessionPolicyThe session lifetime policy.
company.sessionPolicy.applicationsArray.<string>The list of applications users are allowed to use to create sessions.
company.sessionPolicy.expireTimeoutuint16The lifetime duration of a session in minutes.
company.sessionPolicy.idleAllowedbooleanDefines whether a session should be automatically killed when the connection breaks.
company.sessionPolicy.ipv4RangesArray.<ipv4>
maximum-length of values: 19
Restrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
company.sessionPolicy.maxSessionsbyteThe maximum number of sessions allowed per user.
company.sessionPolicy.multiUserSessionMultiUserDefines the behaviour of the system when a user creates multiple sessions.
company.tagsObject.<codified, LabelStyle>
for keys see: LabelStyle.code
The styles for status tags added to Assets.
company.updatedby: login, from: monster
company.userGroupsArray.<UserGroup>A list of user groups that belong to this company. A user can only belong to groups from their own company.
company.vArray.<int32>
fixed count: 6
Object version keys used to validate synchronization for all object properties.
company.v[0]int32The first element is for the general properties
company.v[1]int32The second element is not used (yet)
company.v[2]int32The third element is not used (yet)
company.v[3]int32The fourth element is for the style properties
company.v[4]int32The fifth element is for the policy properties
company.v[5]int32The sixth element is for the reseller properties
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"directory": {
			string: [
				number
			]
		},
		"id": number,
		"labels": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"name": string,
		"notes": string,
		"parent": number,
		"passwordPolicy": {
			"expireMode": string,
			"expireThreshold": number,
			"includeLetters": boolean,
			"includeNumbers": boolean,
			"includeSpecial": boolean,
			"includeUpperLower": boolean,
			"minimumLength": number
		},
		"processedUtc": string,
		"references": {
			string: string
		},
		"reseller": {
			"contactInfo": {
				string: number
			},
			"domain": string,
			"favourite": string,
			"gamut": {
				string: {
					"fill": string,
					"stroke": string
				}
			},
			"graphics": {
				string: string
			},
			"icon": string,
			"id": number,
			"languages": [
				string
			],
			"logo": string,
			"notifyEmail": {
				"incomingAddress": string,
				"incomingLogin": string,
				"incomingMessageNumber": number,
				"incomingPort": number,
				"incomingSecure": boolean,
				"incomingType": string,
				"outgoingAddress": string,
				"outgoingLogin": string,
				"outgoingPort": number,
				"outgoingReplyTo": string,
				"outgoingSecure": boolean,
				"outgoingType": string
			},
			"notifySms": {
				"notifyLimit": number,
				"phoneNumbers": {
					string: [
						number
					]
				}
			},
			"parent": number,
			"processedUtc": string,
			"recoverBody": string,
			"recoverIsHtml": boolean,
			"recoverSubject": string,
			"serviceName": string,
			"termsPreamble": string,
			"termsUpdated": string,
			"updated": {
			},
			"v": [
				number
			],
			"website": {
				string: string
			}
		},
		"sessionPolicy": {
			"applications": [
				string
			],
			"expireTimeout": number,
			"idleAllowed": boolean,
			"ipv4Ranges": [
				string
			],
			"maxSessions": number,
			"multiUser": string
		},
		"tags": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"updated": {
		},
		"userGroups": [
			{
				"company": number,
				"id": number,
				"name": string,
				"notes": string,
				"permissions": [
					{
						"company": number,
						"kind": string,
						"labels": [
							string
						],
						"level": string,
						"method": string,
						"type": string
					}
				],
				"processedUtc": string,
				"updated": {
				},
				"v": [
					number
				]
			}
		],
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

POST/companies/{companyId}

Creates a new or updates an existing Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64?optionalUnique identifier of the Company. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
companyObject.<string, ?>alwaysA simple object to contain the company parameters.
company.directoryObject.<string, Array.<uint64>>
for value-values see: Contact.id
optionalThe list of Contacts from this and other companies broken down by contact role.
company.iduint64?updateUnique identifier of the Company.
company.labelsObject.<string, LabelStyle>optionalThe styles for labels added to Assets, Places, and other things.
company.namestring
maximum-length: 100
createThe organizational name.
company.notesstringoptionalNotes.
company.parentuint64?createThe unique identifier of this company's parent organization.
company.passwordPolicyObject.<string, ?>alwaysThe password complexity and expiry policy.
company.passwordPolicy.expireModePasswordExpiryMode?optionalDefines how passwords expire.
company.passwordPolicy.expireThresholdbyte?optionalThe threshold for expiry (in days).
company.passwordPolicy.includeLettersbooleanoptionalDo passwords require alphabetical characters.
company.passwordPolicy.includeNumbersbooleanoptionalDo passwords require numeric characters.
company.passwordPolicy.includeSpecialbooleanoptionalDo passwords require non-alphanumeric characters.
company.passwordPolicy.includeUpperLowerbooleanoptionalDo passwords require upper-case and lower-case letters.
company.passwordPolicy.minimumLengthbyte?optionalThe minimum number of characters required.
company.referencesObject.<string, string>optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Company.
company.sessionPolicyObject.<string, ?>alwaysThe session lifetime policy.
company.sessionPolicy.applicationsArray.<string>optionalThe list of applications users are allowed to use to create sessions.
company.sessionPolicy.expireTimeoutuint16?optionalThe lifetime duration of a session in minutes.
company.sessionPolicy.idleAllowedbooleanoptionalDefines whether a session should be automatically killed when the connection breaks.
company.sessionPolicy.ipv4RangesArray.<ipv4>
maximum-length of values: 19
optionalRestrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
company.sessionPolicy.maxSessionsbyte?optionalThe maximum number of sessions allowed per user.
company.sessionPolicy.multiUserSessionMultiUser?optionalDefines the behaviour of the system when a user creates multiple sessions.
company.tagsObject.<string, LabelStyle>optionalThe styles for status tags added to Assets.
company.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"company": {
		"directory": {
			string: [
				number
			]
		},
		"id": number,
		"labels": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"name": string,
		"notes": string,
		"parent": number,
		"passwordPolicy": {
			"expireMode": string,
			"expireThreshold": number,
			"includeLetters": boolean,
			"includeNumbers": boolean,
			"includeSpecial": boolean,
			"includeUpperLower": boolean,
			"minimumLength": number
		},
		"references": {
			string: string
		},
		"sessionPolicy": {
			"applications": [
				string
			],
			"expireTimeout": number,
			"idleAllowed": boolean,
			"ipv4Ranges": [
				string
			],
			"maxSessions": number,
			"multiUser": string
		},
		"tags": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
companyRespIdParentAn object which contains the "id" and "parent" keys.
company.iduint64?Identifier given as input for the command.
company.parentuint64?Identifier of the parent to which this company belongs
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number,
		"parent": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003No valid changes would be performed.
4003One of the keys in the company.labels object is blank.
4003One of the values in the company.labels object is not valid.
4003One of the keys in the company.tags object is blank.
4003One of the values in the company.tags object is not valid.
4003One of the keys in the company.directory object is blank.
4003One of the values in the company.directory object is not an array.
4003One of the arrays in the company.directory object contains an invalid value.
4003One of the values in the company.sessionPolicy.applications array contains an invalid regular expression.
4003One of the values in the company.sessionPolicy.ipv4Ranges array contains an invalid IP address or CIDR range.
4003The given value for the company.sessionPolicy.multiUser is invalid.
4003The given value for the company.sessionPolicy.expireTimeout is invalid.
4003The given value for the company.sessionPolicy.maxSessions is invalid.
4003The given value for the company.passwordPolicy.minimumLength is invalid.
4003The given value for the company.passwordPolicy.expireMode is invalid.
4003The given value for the company.passwordPolicy.expireThreshold is invalid.
4003The company.passwordPolicy.expireThreshold is zero, and the company.passwordPolicy.expireMode is anything but PasswordExpiryMode.never.
4003The company.references were not provided as null or an object.
4003During create: When creating a new Company, a name was not given.
4003During update: When updating a Company, the name was given as null or blank.
4003During update: When updating a Company, the v was not an array, or contained too few numbers.
4003During create: When creating a new Company, too many company.references were given as input.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to create a new Company.
4015You do not have permission to update the CompanyGeneral.
4015You do not have permission to update the CompanyDirectory.
4015You do not have permission to update the CompanyStyles.
4015You do not have permission to update the CompanyPolicies.
4006During update: When updating a Company, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428During update: The Company was not found by its unique identifier.
409130The given parent cannot be the same as the Company id.
Returns an ErrorDetailParent as the errorDetails.
409130The given parent would create a circular reference in the Company tree.
Returns an ErrorDetailParent as the errorDetails.
409130During update: When updating an Company, the resulting number of company.references would be too high.
Returns an ErrorDetailParent as the errorDetails.

DELETE/companies/{companyId}

Deletes an existing Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
Response description
PropertyTypeDescription
companyRespParentDeletedAn object which contains the Company's unique identifier and deleted status.
company.deletedbooleanFlag showing if the object is deleted.
company.iduint64?Identifier given as input for the command.
company.parentuint64Identifier of the parent to which the Company is a child.
company.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"deleted": boolean,
		"id": number,
		"parent": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to delete this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/directories?includeDeleted=boolean

Gets details of the specified CompanyDirectory.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
companyDirectoryThe requested CompanyDirectory.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyDirectory": {
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view this CompanyDirectory.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
40428The CompanyDirectory was not found by its unique identifier.

GET/companies/{companyId}/generals?includeDeleted=boolean

Gets details of the specified CompanyGeneral.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
companyGeneralCompanyGeneralThe requested CompanyGeneral.
companyGeneral.iduint64Unique identifier of the Company.
companyGeneral.namestring
maximum-length: 100
The organizational name.
companyGeneral.notesstringNotes.
companyGeneral.parentuint64The unique identifier of this company's parent organization.
companyGeneral.processedUtcdatetimeWhen the was change procesed.
companyGeneral.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
Name/value collections of custom fields used to refer to external systems.
companyGeneral.updatedby: login, from: monster
companyGeneral.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyGeneral": {
		"id": number,
		"name": string,
		"notes": string,
		"parent": number,
		"processedUtc": string,
		"references": {
			string: string
		},
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view this CompanyGeneral.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
40428The CompanyGeneral was not found by its unique identifier.

GET/companies/{companyId}/policies?includeDeleted=boolean

Gets details of the specified CompanyPolicies.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
companyPoliciesCompanyPoliciesThe requested CompanyPolicies.
companyPolicies.iduint64Unique identifier of the Company.
companyPolicies.parentuint64The unique identifier of this company's parent organization.
companyPolicies.passwordPolicyPasswordPolicyThe password complexity and expiry policy.
companyPolicies.passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
companyPolicies.passwordPolicy.expireThresholdbyteThe threshold for expiry.
companyPolicies.passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
companyPolicies.passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
companyPolicies.passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
companyPolicies.passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
companyPolicies.passwordPolicy.minimumLengthbyteThe minimum number of characters required.
companyPolicies.processedUtcdatetimeWhen the was change procesed.
companyPolicies.sessionPolicySessionPolicyThe session lifetime policy.
companyPolicies.sessionPolicy.applicationsArray.<string>The list of applications users are allowed to use to create sessions.
companyPolicies.sessionPolicy.expireTimeoutuint16The lifetime duration of a session in minutes.
companyPolicies.sessionPolicy.idleAllowedbooleanDefines whether a session should be automatically killed when the connection breaks.
companyPolicies.sessionPolicy.ipv4RangesArray.<ipv4>
maximum-length of values: 19
Restrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
companyPolicies.sessionPolicy.maxSessionsbyteThe maximum number of sessions allowed per user.
companyPolicies.sessionPolicy.multiUserSessionMultiUserDefines the behaviour of the system when a user creates multiple sessions.
companyPolicies.updatedby: login, from: monster
companyPolicies.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyPolicies": {
		"id": number,
		"parent": number,
		"passwordPolicy": {
			"expireMode": string,
			"expireThreshold": number,
			"includeLetters": boolean,
			"includeNumbers": boolean,
			"includeSpecial": boolean,
			"includeUpperLower": boolean,
			"minimumLength": number
		},
		"processedUtc": string,
		"sessionPolicy": {
			"applications": [
				string
			],
			"expireTimeout": number,
			"idleAllowed": boolean,
			"ipv4Ranges": [
				string
			],
			"maxSessions": number,
			"multiUser": string
		},
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view this CompanyPolicies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
40428The CompanyPolicies was not found by its unique identifier.

PATCH/companies/{companyId}/restore

Restores the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
HTTP Request body description
PropertyTypeRequiredDescription
companyParamIdalwaysAn object to contain the "id" key.
company.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"company": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
companyRespParentDeletedAn object which contains the Company's unique identifier and deleted status.
company.deletedbooleanFlag showing if the object is deleted.
company.iduint64?Identifier given as input for the command.
company.parentuint64Identifier of the parent to which the Company is a child.
company.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"deleted": boolean,
		"id": number,
		"parent": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to restore this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
40029The Company was found, but is not marked as deleted.

GET/companies/{companyId}/styles?includeDeleted=boolean

Gets details of the specified CompanyStyles.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
companyLabelsCompanyStylesThe requested CompanyStyles.
companyLabels.iduint64Unique identifier of the Company.
companyLabels.labelsObject.<codified, LabelStyle>
for keys see: LabelStyle.code
The styles for labels added to Assets, Places, and other things.
companyLabels.parentuint64The unique identifier of this company's parent organization.
companyLabels.processedUtcdatetimeWhen the was change procesed.
companyLabels.tagsObject.<codified, LabelStyle>
for keys see: LabelStyle.code
The styles for status tags added to Assets.
companyLabels.updatedby: login, from: monster
companyLabels.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyLabels": {
		"id": number,
		"labels": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"parent": number,
		"processedUtc": string,
		"tags": {
			string: {
				"code": string,
				"fill": string,
				"graphic": string,
				"name": string,
				"notes": string,
				"stroke": string
			}
		},
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view this CompanyStyles.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
40428The CompanyStyles was not found by its unique identifier.

Deprecated GET/companies/{companyId}/tree?tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies?parent={your-company-id}&tree=true&includeParent=true (when no additional query-string parameters are given) or /companies?parent={your-company-id}&tree=true&includeParent=true?{keys=values} (when at least one additional query-string key/value is given).
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeParentbooleanoptionaltrueDefaults to true for this alias.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
treebooleanoptionaltrueDefaults to true for this alias.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/companies/directories?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of child-companies for the specified Company. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companyDirectoriesArray.<>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyDirectories": [
		{
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/directories?{keys=values}?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of companies only if one of the specified Company.references fields match. If no references are specified, it will match any Company with no references. If a reference value is null, it will match any Company without that reference key. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companyDirectoriesArray.<>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyDirectories": [
		{
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/generals?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of child-companies for the specified Company. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companiesArray.<CompanyGeneral>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companies": [
		{
			"id": number,
			"name": string,
			"notes": string,
			"parent": number,
			"processedUtc": string,
			"references": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/generals?{keys=values}?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of companies only if one of the specified Company.references fields match. If no references are specified, it will match any Company with no references. If a reference value is null, it will match any Company without that reference key. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companiesArray.<CompanyGeneral>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companies": [
		{
			"id": number,
			"name": string,
			"notes": string,
			"parent": number,
			"processedUtc": string,
			"references": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/policies?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of child-companies for the specified Company. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companyPoliciesArray.<CompanyPolicies>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyPolicies": [
		{
			"id": number,
			"parent": number,
			"passwordPolicy": {
				"expireMode": string,
				"expireThreshold": number,
				"includeLetters": boolean,
				"includeNumbers": boolean,
				"includeSpecial": boolean,
				"includeUpperLower": boolean,
				"minimumLength": number
			},
			"processedUtc": string,
			"sessionPolicy": {
				"applications": [
					string
				],
				"expireTimeout": number,
				"idleAllowed": boolean,
				"ipv4Ranges": [
					string
				],
				"maxSessions": number,
				"multiUser": string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/policies?{keys=values}?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of companies only if one of the specified Company.references fields match. If no references are specified, it will match any Company with no references. If a reference value is null, it will match any Company without that reference key. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companyPoliciesArray.<CompanyPolicies>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyPolicies": [
		{
			"id": number,
			"parent": number,
			"passwordPolicy": {
				"expireMode": string,
				"expireThreshold": number,
				"includeLetters": boolean,
				"includeNumbers": boolean,
				"includeSpecial": boolean,
				"includeUpperLower": boolean,
				"minimumLength": number
			},
			"processedUtc": string,
			"sessionPolicy": {
				"applications": [
					string
				],
				"expireTimeout": number,
				"idleAllowed": boolean,
				"ipv4Ranges": [
					string
				],
				"maxSessions": number,
				"multiUser": string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/styles?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of child-companies for the specified Company. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companyLabelsArray.<CompanyStyles>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyLabels": [
		{
			"id": number,
			"labels": {
				string: {
					"code": string,
					"fill": string,
					"graphic": string,
					"name": string,
					"notes": string,
					"stroke": string
				}
			},
			"parent": number,
			"processedUtc": string,
			"tags": {
				string: {
					"code": string,
					"fill": string,
					"graphic": string,
					"name": string,
					"notes": string,
					"stroke": string
				}
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/styles?{keys=values}?parent=number&tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of companies only if one of the specified Company.references fields match. If no references are specified, it will match any Company with no references. If a reference value is null, it will match any Company without that reference key. By default the full tree of companies is returned, but this can be overridden using tree. By default it does not include the parent Company, but this can be overridden using includeParent.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeParentbooleanoptionaltrueWhen set to true (default), the parent Company is included in the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
parentuint64?optional{your-company-id}Unique identifier of the Company.
treebooleanoptionaltrueWhen set to true, the full tree of companies is returned. Otherwise, only the first-level child-companies are included.
Response description
PropertyTypeDescription
companyLabelsArray.<CompanyStyles>The list of requested companies.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyLabels": [
		{
			"id": number,
			"labels": {
				string: {
					"code": string,
					"fill": string,
					"graphic": string,
					"name": string,
					"notes": string,
					"stroke": string
				}
			},
			"parent": number,
			"processedUtc": string,
			"tags": {
				string: {
					"code": string,
					"fill": string,
					"graphic": string,
					"name": string,
					"notes": string,
					"stroke": string
				}
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view this Company or child companies.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

Deprecated GET/companies/tree?tree=boolean&includeParent=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies?parent={your-company-id}&tree=true&includeParent=true (when no additional query-string parameters are given) or /companies?parent={your-company-id}&tree=true&includeParent=true?{keys=values} (when at least one additional query-string key/value is given).
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
includeParentbooleanoptionaltrueDefaults to true for this alias.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
treebooleanoptionaltrueDefaults to true for this alias.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

Dispatch

POST/assets/{assetId}/dispatch

Updates an existing AssetDispatch.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64?optionalUnique identifier of the Asset. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
assetDispatchObject.<string, ?>alwaysA simple object to contain the AssetDispatch parameters.
assetDispatch.directionsArray.<DispatchDirection>optionalDriving directions and route path details.
assetDispatch.iduint64alwaysThe unique identifier of the asset you want to update.
assetDispatch.jobsArray.<uint64>optionalThe list of DispatchJobs to be assigned to this asset.
assetDispatch.optimizebooleanoptionalIndicates whether the jobs should be optimized based on distance and priority.
assetDispatch.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"assetDispatch": {
		"directions": [
			{
				"directions": [
					{ /* recursive DispatchDirection objects */ }
				],
				"distance": number,
				"duration": string,
				"instructions": string,
				"job": number,
				"path": string,
				"step": number
			}
		],
		"id": number,
		"jobs": [
			number
		],
		"optimize": boolean,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetDispatchRespIdCompanyAn object which contains the "id" and "company" keys.
assetDispatch.companyuint64Identifier of the Company to which this object belongs.
assetDispatch.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetDispatch": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain an assetDispatch object, or it is invalid.
4003Not enough keys exist in the assetDispatch object.
4003The assetDispatch.id is invalid.
4003The v was not an array, or contained too few numbers.
4003One of the assetDispatch.jobs given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003One of the assetDispatch.directions given in the array cannot be parsed.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to update the AssetDispatch.
4015You do not have permission to view this Asset.
4006During update: When updating an AssetDispatch, the wrong version key was given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420This Asset was not found by its unique identifier.
40420The Asset for one of the assetDispatch.jobs was not found.
50282An error occured while optimizing the job steps.
40396This Asset is suspended. Before updating AssetDispatch, it must be reactivated.
40396The Asset for one of the assetDispatch.jobs is suspended.
409130One or more of the assetDispatch.jobs cannot be re-assigned to this Asset as they are completed.
409130One or more of the assetDispatch.jobs don't belong to the same Company as this Asset
409130One or more of the assetDispatch.jobs don't have any matching labels with this Asset
404139One of the assetDispatch.jobs was not found.
404141One or more of the assetDispatch.jobs given as input in the jobs array was not found.
Returns an ErrorDetailBadIds as the errorDetails.

GET/assets/{assetId}/dispatch/jobs?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of DispatchJobs for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of DispatchJobs belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
dispatchJobsArray.<DispatchJob>The list of requested DispatchJobs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"dispatchJobs": [
		{
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"created": string,
			"driver": string,
			"forms": [
				number
			],
			"id": number,
			"instructions": string,
			"labels": [
				string
			],
			"name": string,
			"priority": string,
			"processedUtc": string,
			"references": {
				string: string
			},
			"steps": [
				{
					"address": string,
					"duration": string,
					"eta": string,
					"id": number,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"signatory": string,
					"signature": boolean,
					"states": {
						string: {
							"latlng": {
								"lat": number,
								"lng": number
							},
							"updated": string
						}
					}
				}
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchJobs.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40428The Company containing the DispatchJobs was not found.
40396The Asset was found, but it is suspended. Before using any Asset resources, it must be reactivated.

GET/assets/{assetId}/dispatch/jobs?{keys=values}?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string&{keys=values}

Gets the list of DispatchJobs for the specified Asset only if the specified reference fields match. If no references are specified, it will match any DispatchJob with no references. If a reference value is null, it will match any DispatchJob without that reference key.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of DispatchJobs belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
dispatchJobsArray.<DispatchJob>The list of requested DispatchJobs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"dispatchJobs": [
		{
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"created": string,
			"driver": string,
			"forms": [
				number
			],
			"id": number,
			"instructions": string,
			"labels": [
				string
			],
			"name": string,
			"priority": string,
			"processedUtc": string,
			"references": {
				string: string
			},
			"steps": [
				{
					"address": string,
					"duration": string,
					"eta": string,
					"id": number,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"signatory": string,
					"signature": boolean,
					"states": {
						string: {
							"latlng": {
								"lat": number,
								"lng": number
							},
							"updated": string
						}
					}
				}
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The request does not contain a references object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchJobs.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40428The Company containing the DispatchJobs was not found.
40396The Asset was found, but it is suspended. Before using any Asset resources, it must be reactivated.

GET/assets/{assetId}/dispatch/tasks?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of DispatchTasks for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of DispatchTasks belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"dispatchTasks": [
		{
			"address": string,
			"arrived": string,
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"completed": string,
			"created": string,
			"duration": string,
			"eta": string,
			"id": number,
			"instructions": string,
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"place": number,
			"processedUtc": string,
			"reference": string,
			"references": {
				string: string
			},
			"signatory": string,
			"signature": boolean,
			"status": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchTasks.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40428The Company containing the DispatchTasks was not found.
40396The Asset was found, but it is suspended. Before using any Asset resources, it must be reactivated.

GET/assets/{assetId}/dispatch/tasks?{keys=values}?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string&{keys=values}

Gets the list of DispatchTasks for the specified Asset only if the specified reference fields match. If no references are specified, it will match any DispatchTask with no references. If a reference value is null, it will match any DispatchTask without that reference key.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of DispatchTasks belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"dispatchTasks": [
		{
			"address": string,
			"arrived": string,
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"completed": string,
			"created": string,
			"duration": string,
			"eta": string,
			"id": number,
			"instructions": string,
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"place": number,
			"processedUtc": string,
			"reference": string,
			"references": {
				string: string
			},
			"signatory": string,
			"signature": boolean,
			"status": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a asset object, or it is invalid.
4003The request does not contain a references object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchTasks.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40428The Company containing the DispatchTasks was not found.
40396The Asset was found, but it is suspended. Before using any Asset resources, it must be reactivated.

PATCH/assets/dispatch

Updates an existing AssetDispatch.
HTTP Request body description
PropertyTypeRequiredDescription
assetDispatchObject.<string, ?>alwaysA simple object to contain the AssetDispatch parameters.
assetDispatch.directionsArray.<DispatchDirection>optionalDriving directions and route path details.
assetDispatch.iduint64alwaysThe unique identifier of the asset you want to update.
assetDispatch.jobsArray.<uint64>optionalThe list of DispatchJobs to be assigned to this asset.
assetDispatch.optimizebooleanoptionalIndicates whether the jobs should be optimized based on distance and priority.
assetDispatch.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"assetDispatch": {
		"directions": [
			{
				"directions": [
					{ /* recursive DispatchDirection objects */ }
				],
				"distance": number,
				"duration": string,
				"instructions": string,
				"job": number,
				"path": string,
				"step": number
			}
		],
		"id": number,
		"jobs": [
			number
		],
		"optimize": boolean,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetDispatchRespIdCompanyAn object which contains the "id" and "company" keys.
assetDispatch.companyuint64Identifier of the Company to which this object belongs.
assetDispatch.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetDispatch": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain an assetDispatch object, or it is invalid.
4003Not enough keys exist in the assetDispatch object.
4003The assetDispatch.id is invalid.
4003The v was not an array, or contained too few numbers.
4003One of the assetDispatch.jobs given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003One of the assetDispatch.directions given in the array cannot be parsed.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to update the AssetDispatch.
4015You do not have permission to view this Asset.
4006During update: When updating an AssetDispatch, the wrong version key was given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420This Asset was not found by its unique identifier.
40420The Asset for one of the assetDispatch.jobs was not found.
50282An error occured while optimizing the job steps.
40396This Asset is suspended. Before updating AssetDispatch, it must be reactivated.
40396The Asset for one of the assetDispatch.jobs is suspended.
409130One or more of the assetDispatch.jobs cannot be re-assigned to this Asset as they are completed.
409130One or more of the assetDispatch.jobs don't belong to the same Company as this Asset
409130One or more of the assetDispatch.jobs don't have any matching labels with this Asset
404139One of the assetDispatch.jobs was not found.
404141One or more of the assetDispatch.jobs given as input in the jobs array was not found.
Returns an ErrorDetailBadIds as the errorDetails.

GET/companies/{companyId}/assets/dispatch/jobs?{keys=values}?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string&{keys=values}

Gets the list of DispatchJobs for the specified Company only if the specified reference fields match. If no references are specified, it will match any DispatchJob with no references. If a reference value is null, it will match any DispatchJob without that reference key.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of DispatchJobs belong.
company.iduint64?Identifier given as input for the command.
dispatchJobsArray.<DispatchJob>The list of requested DispatchJobs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"dispatchJobs": [
		{
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"created": string,
			"driver": string,
			"forms": [
				number
			],
			"id": number,
			"instructions": string,
			"labels": [
				string
			],
			"name": string,
			"priority": string,
			"processedUtc": string,
			"references": {
				string: string
			},
			"steps": [
				{
					"address": string,
					"duration": string,
					"eta": string,
					"id": number,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"signatory": string,
					"signature": boolean,
					"states": {
						string: {
							"latlng": {
								"lat": number,
								"lng": number
							},
							"updated": string
						}
					}
				}
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The request does not contain a references object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchJobs.
4015You do not have permission to view Assets.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company containing the DispatchJobs was not found.

GET/companies/{companyId}/assets/dispatch/jobs?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of DispatchJobs for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of DispatchJobs belong.
company.iduint64?Identifier given as input for the command.
dispatchJobsArray.<DispatchJob>The list of requested DispatchJobs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"dispatchJobs": [
		{
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"created": string,
			"driver": string,
			"forms": [
				number
			],
			"id": number,
			"instructions": string,
			"labels": [
				string
			],
			"name": string,
			"priority": string,
			"processedUtc": string,
			"references": {
				string: string
			},
			"steps": [
				{
					"address": string,
					"duration": string,
					"eta": string,
					"id": number,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"signatory": string,
					"signature": boolean,
					"states": {
						string: {
							"latlng": {
								"lat": number,
								"lng": number
							},
							"updated": string
						}
					}
				}
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchJobs.
4015You do not have permission to view Assets.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company containing the DispatchJobs was not found.

GET/companies/{companyId}/assets/dispatch/jobs?labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of DispatchJobs for the specified Company only if the DispatchJob.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
labelsstringrequiredLabels to match the DispatchJob.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of DispatchJobs belong.
company.iduint64?Identifier given as input for the command.
dispatchJobsArray.<DispatchJob>The list of requested DispatchJobs.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"dispatchJobs": [
		{
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"created": string,
			"driver": string,
			"forms": [
				number
			],
			"id": number,
			"instructions": string,
			"labels": [
				string
			],
			"name": string,
			"priority": string,
			"processedUtc": string,
			"references": {
				string: string
			},
			"steps": [
				{
					"address": string,
					"duration": string,
					"eta": string,
					"id": number,
					"latlng": {
						"lat": number,
						"lng": number
					},
					"name": string,
					"notes": string,
					"place": number,
					"signatory": string,
					"signature": boolean,
					"states": {
						string: {
							"latlng": {
								"lat": number,
								"lng": number
							},
							"updated": string
						}
					}
				}
			],
			"tags": [
				string
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view any DispatchJobs for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/assets/dispatch/tasks?{keys=values}?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string&{keys=values}

Gets the list of DispatchTasks for the specified Company only if the specified reference fields match. If no references are specified, it will match any DispatchTask with no references. If a reference value is null, it will match any DispatchTask without that reference key.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of DispatchTasks belong.
company.iduint64?Identifier given as input for the command.
dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"dispatchTasks": [
		{
			"address": string,
			"arrived": string,
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"completed": string,
			"created": string,
			"duration": string,
			"eta": string,
			"id": number,
			"instructions": string,
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"place": number,
			"processedUtc": string,
			"reference": string,
			"references": {
				string: string
			},
			"signatory": string,
			"signature": boolean,
			"status": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The request does not contain a references object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchTasks.
4015You do not have permission to view Assets.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company containing the DispatchTasks was not found.

GET/companies/{companyId}/assets/dispatch/tasks?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of DispatchTasks for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of DispatchTasks belong.
company.iduint64?Identifier given as input for the command.
dispatchTasksArray.<DispatchTask>The list of requested DispatchTasks.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"dispatchTasks": [
		{
			"address": string,
			"arrived": string,
			"asset": number,
			"attachments": [
				number
			],
			"company": number,
			"completed": string,
			"created": string,
			"duration": string,
			"eta": string,
			"id": number,
			"instructions": string,
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"place": number,
			"processedUtc": string,
			"reference": string,
			"references": {
				string: string
			},
			"signatory": string,
			"signature": boolean,
			"status": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchTasks.
4015You do not have permission to view Assets.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company containing the DispatchTasks was not found.

GET/dispatch/jobs?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/assets/dispatch/jobs?{keys=values} (when No at least query-string key/value is given) or /companies/{your-company-id}/assets/dispatch/jobs (when No query-string parameters are given).
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects retrieved from the archive.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/dispatch/jobs

Creates a new or updates an existing DispatchJob.
HTTP Request body description
PropertyTypeRequiredDescription
dispatchJobObject.<string, ?>alwaysThe details of a DispatchJob either for creation or update.
dispatchJob.assetuint64?optionalThe identifier of the Asset assigned to the DispatchJob.
dispatchJob.attachmentsArray.<uint64>
for values see: Document.id
optionalA list of Document identifiers to attach to the DispatchJob.
dispatchJob.companyuint64?createThe identifier of the Company to which the DispatchJob belongs. After creation, this value is read-only.
dispatchJob.formsArray.<uint64>
for values see: FormResult.id
optionalA list of FormResult identifiers to attach to the DispatchJob.
dispatchJob.iduint64?updateThe unique identifier of the DispatchJob you want to update.
dispatchJob.instructionsstringoptionalInstructions for the driver to help them complete the DispatchJob. Such as which door to use, a buzz code to enter the facility, etc...
dispatchJob.labelsArray.<codified>
for values see: LabelStyle.code
optionalA list of codified label names used to relate (unassigned) DispatchJobs to Assets.
dispatchJob.namestring
maximum-length: 100
createName for the DispatchJob.
dispatchJob.priorityDispatchJobPriority?optionalThe importance of the DispatchJob when scheduling for an asset.
dispatchJob.referencesObject.<string, string>optionalA custom field used to refer the DispatchJob to an external system. Examples are a work order, pick-up, waybill, etc... If value is null, the field is removed from the DispatchJob. If a new value or null is not provided for a current attribute, no change is made.
dispatchJob.stepsArray.<ParamDispatchStep>createA list of coordinates to visit in order to carry out the work for the DispatchJob.
dispatchJob.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"dispatchJob": {
		"asset": number,
		"attachments": [
			number
		],
		"company": number,
		"forms": [
			number
		],
		"id": number,
		"instructions": string,
		"labels": [
			string
		],
		"name": string,
		"priority": string,
		"references": {
			string: string
		},
		"steps": [
			{
				"address": string,
				"duration": string,
				"eta": string,
				"id": number,
				"latlng": {
					"lat": number,
					"lng": number
				},
				"name": string,
				"place": number,
				"signature": boolean
			}
		],
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
dispatchJobRespIdCompanyThe id, owning Company id and owning Asset id of the object requested/created.
dispatchJob.companyuint64Identifier of the Company to which this object belongs.
dispatchJob.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchJob": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a dispatchJob object, or it is invalid.
4003Not enough keys exist in the dispatchJob object.
4003The request contains an invalid dispatchJob.steps array.
4003The request contains an invalid dispatchJob.references object.
4003The request contains an invalid dispatchJob.attachments array.
4003The request contains an invalid dispatchJob.forms array.
4003During create: When creating a new DispatchJob, a name was not given, or was blank.
4003During create: When creating a new DispatchJob, company was not given.
4003During create: When creating a new DispatchJob, not enough steps were given.
4003During create: When creating a new DispatchJob, a place, a latlng, or an address must be given for each step.
4003During update: When updating a DispatchJob, the new name cannot be blank.
4003During update: When updating a DispatchJob, not enough v values were given.
4003During update: When updating a DispatchJob, latlng cannot be set to null.
4003The dispatchJob.priority value is not a known DispatchJobPriority.
Returns an ErrorDetailEnum as the errorDetails.
4003When adding a step, the ParamDispatchStep.name was not given, or was blank, and a ParamDispatchStep.place was also not given.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.eta value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.duration value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.place value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.latlng value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.signature value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003Too many DispatchJob steps were given.
Returns an ErrorDetailMinMax as the errorDetails.
4003Too many DispatchJob references were given.
Returns an ErrorDetailMinMax as the errorDetails.
4003Too many DispatchJob attachements and forms were given.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to view the Asset to which the DispatchJob belongs.
4015During create: You do not have permission to create new DispatchJobs.
4015During update: You do not have permission to update DispatchJobs.
4006During update: When updating a DispatchJob, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset to which this DispatchJob is assigned was not found.
40440The Place being given for the DispatchJob was not found.
40171During update: Changing the labels on this DispatchJob in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
40481When giving only an address (not a Place or ParamDispatchStep.latlng), the address could not be geocoded.
40481When giving only an address (not a Place or ParamDispatchStep.latlng), the address was not street-level accurate enough.
Returns an ErrorDetailExternals as the errorDetails.
40396The Asset to which this DispatchJob is assigned is suspended. Before sending or updating DispatchJobs for a Asset, it must be reactivated.
404124One or more of the given attachments could not be found.
Returns an ErrorDetailBadIds as the errorDetails.
409130The dispatchJob.asset doesn't belong to the same Company as this DispatchJob
409130The dispatchJob.asset doesn't have any matching labels with this DispatchJob.
409130When adding a step, the order of DispatchStepStatus.completedDispatchJob.steps cannot be changed.
409130During update: When updating a DispatchJob, you cannot change the Company.
409130During update: When updating a DispatchJob, you cannot change the Asset to which it is assigned if any of the steps are underway.
409130During update: One or more of the DispatchJob.steps is DispatchStepStatus.completed and is being removed.
409130During update: There are too many combined dispatchJob.references after adding the newly given keys.
Returns an ErrorDetailMinMax as the errorDetails.
404136One or more of the given FormResults could not be found.
Returns an ErrorDetailBadIds as the errorDetails.
404139During update: The DispatchJob was not found.

DELETE/dispatch/jobs

Deletes an existing DispatchJob.
Response description
PropertyTypeDescription
dispatchJobRespDeletedThe id, owning Asset id, owning Company id, and deleted state.
dispatchJob.companyuint64Identifier of the Company to which this object belongs.
dispatchJob.deletedbooleanFlag showing if the object is deleted.
dispatchJob.iduint64?Identifier given as input for the command.
dispatchJob.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchJob": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchJob object, or it is invalid.
4003The dispatchJob object does not contain an id, or it is invalid.
4015You do not have permission to delete DispatchJobs.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The DispatchJob was found, but the associated Asset was not found.
40396The DispatchJob was found, but the associated Asset is suspended. Before using any Asset resources, it must be reactivated.
404139The DispatchJob was not found by its unique identifier.

GET/dispatch/jobs/{jobId}?includeDeleted=boolean

Gets details of the specified DispatchJob.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
jobIduint64requiredUnique identifier of the DispatchJob.
Response description
PropertyTypeDescription
dispatchJobDispatchJobThe requested DispatchJob.
dispatchJob.assetuint64?The Asset to which this job belongs. This value is null when unassigned.
dispatchJob.attachmentsArray.<uint64>
maximum-count: 10
for values see: Document.id
A list of hosted Document identifiers attached to this job.
dispatchJob.companyuint64The company to which this job belongs.
dispatchJob.createddatetimeWhen this job was originally created.
dispatchJob.driverstringClocked-in driver name who made the update. Null if not clocked-in, or no changes have been made.
dispatchJob.formsArray.<uint64>
maximum-count: 10
for values see: FormResult.id
A list of hosted FormResult identifiers attached to this job.
dispatchJob.iduint64Unique identifier of this job.
dispatchJob.instructionsstringInstructions (filled out by dispatcher) for the field-employee to help them complete the job.
dispatchJob.labelsArray.<codified>
for values see: LabelStyle.code
Codified label names used to relate (unassigned) jobs to Assets.
dispatchJob.namestring
maximum-length: 100
A name for the work needed to be performed.
dispatchJob.priorityDispatchJobPriorityThe importance of this job when scheduling for an asset.
dispatchJob.processedUtcdatetimeWhen the was change procesed.
dispatchJob.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
Name/value collections of custom fields used to refer to external systems.
dispatchJob.stepsArray.<DispatchStep>A list of coordinates to visit in order to carry out the work for this job.
dispatchJob.tagsArray.<codified>
for values see: LabelStyle.code
The codified status tag names reflecting the conditions of this job.
dispatchJob.updatedby: login, from: monster
dispatchJob.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchJob": {
		"asset": number,
		"attachments": [
			number
		],
		"company": number,
		"created": string,
		"driver": string,
		"forms": [
			number
		],
		"id": number,
		"instructions": string,
		"labels": [
			string
		],
		"name": string,
		"priority": string,
		"processedUtc": string,
		"references": {
			string: string
		},
		"steps": [
			{
				"address": string,
				"duration": string,
				"eta": string,
				"id": number,
				"latlng": {
					"lat": number,
					"lng": number
				},
				"name": string,
				"notes": string,
				"place": number,
				"signatory": string,
				"signature": boolean,
				"states": {
					string: {
						"latlng": {
							"lat": number,
							"lng": number
						},
						"updated": string
					}
				}
			}
		],
		"tags": [
			string
		],
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchJob object, or it is invalid.
4003The dispatchJob object does not contain an id, or it is invalid.
4015You do not have permission to view this DispatchJob.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The DispatchJob was found, but the associated asset was not found.
40396The DispatchJob was found, but the associated asset is suspended. Before using any asset resources, it must be reactivated.
404139The DispatchJob was not found by its unique identifier.

PUT/dispatch/jobs/{jobId}

Completes or modifies an existing DispatchJob from a driver's perspective. This can be used by dispatchers to accomodate thrid-party delivery systems, or correcting errors from drivers.
URL Parameters
ParameterTypeRequiredDescription
jobIduint64?optional
HTTP Request body description
PropertyTypeRequiredDescription
dispatchJobObject.<string, ?>alwaysThe details of a DispatchJob either for creation or update.
dispatchJob.driverstringoptionalName of the driver who completed the DispatchJob.
dispatchJob.iduint64alwaysThe unique identifier of the DispatchJob you want to update.
dispatchJob.stepsArray.<ParamDispatchStepChange>optionalA list of notes and signatories from the completion of the DispatchJob.
dispatchJob.tagsArray.<codified>
for values see: LabelStyle.code
optionalThe codified status tag names reflecting the conditions of the DispatchJob.
dispatchJob.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"dispatchJob": {
		"driver": string,
		"id": number,
		"steps": [
			{
				"id": number,
				"notes": string,
				"signatory": string,
				"status": string
			}
		],
		"tags": [
			string
		],
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
dispatchJobRespIdCompanyThe id, owning Company id and owning Asset id of the object requested/created.
dispatchJob.companyuint64Identifier of the Company to which this object belongs.
dispatchJob.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchJob": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a dispatchJob object, or it is invalid.
4003Not enough keys exist in the dispatchJob object.
4003The dispatchJob.id is invalid.
4003The dispatchJob does not have enough v values.
4003One or more of the dispatchJob.steps array values is not an object.
4003One or more of the dispatchJob.steps has an invalid id.
4003One or more of the dispatchJob.steps has an invalid status.
4003The dispatchJob.steps contains duplicate ids.
Returns an ErrorDetailBadIds as the errorDetails.
4015You do not have permission to update the DispatchJob.
4015You do not have permission to view the Asset to which the DispatchJob belongs.
4006When updating a DispatchJob, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
409130One or more of the dispatchJob.steps are DispatchStepStatus.completed and cannot be changed.
409130One or more of the dispatchJob.steps has a more advanced lifetime status than a preceding step.
409130The order of DispatchStepStatus.completed DispatchJob.steps cannot be changed.
409130A step was marked DispatchStepStatus.completed, but a DispatchStep.signature is required and the ParamDispatchStepChange.signatory was not given.
409130All dispatchJob.steps are already completed.
Returns an ErrorDetailBadIds as the errorDetails.
409130There are too many dispatchJob.steps.
Returns an ErrorDetailMinMax as the errorDetails.
404139The DispatchJob was not found.

POST/dispatch/jobs/{jobId}

Creates a new or updates an existing DispatchJob.
URL Parameters
ParameterTypeRequiredDescription
jobIduint64?optionalUnique identifier of the DispatchJob. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
dispatchJobObject.<string, ?>alwaysThe details of a DispatchJob either for creation or update.
dispatchJob.assetuint64?optionalThe identifier of the Asset assigned to the DispatchJob.
dispatchJob.attachmentsArray.<uint64>
for values see: Document.id
optionalA list of Document identifiers to attach to the DispatchJob.
dispatchJob.companyuint64?createThe identifier of the Company to which the DispatchJob belongs. After creation, this value is read-only.
dispatchJob.formsArray.<uint64>
for values see: FormResult.id
optionalA list of FormResult identifiers to attach to the DispatchJob.
dispatchJob.iduint64?updateThe unique identifier of the DispatchJob you want to update.
dispatchJob.instructionsstringoptionalInstructions for the driver to help them complete the DispatchJob. Such as which door to use, a buzz code to enter the facility, etc...
dispatchJob.labelsArray.<codified>
for values see: LabelStyle.code
optionalA list of codified label names used to relate (unassigned) DispatchJobs to Assets.
dispatchJob.namestring
maximum-length: 100
createName for the DispatchJob.
dispatchJob.priorityDispatchJobPriority?optionalThe importance of the DispatchJob when scheduling for an asset.
dispatchJob.referencesObject.<string, string>optionalA custom field used to refer the DispatchJob to an external system. Examples are a work order, pick-up, waybill, etc... If value is null, the field is removed from the DispatchJob. If a new value or null is not provided for a current attribute, no change is made.
dispatchJob.stepsArray.<ParamDispatchStep>createA list of coordinates to visit in order to carry out the work for the DispatchJob.
dispatchJob.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"dispatchJob": {
		"asset": number,
		"attachments": [
			number
		],
		"company": number,
		"forms": [
			number
		],
		"id": number,
		"instructions": string,
		"labels": [
			string
		],
		"name": string,
		"priority": string,
		"references": {
			string: string
		},
		"steps": [
			{
				"address": string,
				"duration": string,
				"eta": string,
				"id": number,
				"latlng": {
					"lat": number,
					"lng": number
				},
				"name": string,
				"place": number,
				"signature": boolean
			}
		],
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
dispatchJobRespIdCompanyThe id, owning Company id and owning Asset id of the object requested/created.
dispatchJob.companyuint64Identifier of the Company to which this object belongs.
dispatchJob.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchJob": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a dispatchJob object, or it is invalid.
4003Not enough keys exist in the dispatchJob object.
4003The request contains an invalid dispatchJob.steps array.
4003The request contains an invalid dispatchJob.references object.
4003The request contains an invalid dispatchJob.attachments array.
4003The request contains an invalid dispatchJob.forms array.
4003During create: When creating a new DispatchJob, a name was not given, or was blank.
4003During create: When creating a new DispatchJob, company was not given.
4003During create: When creating a new DispatchJob, not enough steps were given.
4003During create: When creating a new DispatchJob, a place, a latlng, or an address must be given for each step.
4003During update: When updating a DispatchJob, the new name cannot be blank.
4003During update: When updating a DispatchJob, not enough v values were given.
4003During update: When updating a DispatchJob, latlng cannot be set to null.
4003The dispatchJob.priority value is not a known DispatchJobPriority.
Returns an ErrorDetailEnum as the errorDetails.
4003When adding a step, the ParamDispatchStep.name was not given, or was blank, and a ParamDispatchStep.place was also not given.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.eta value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.duration value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.place value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.latlng value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The ParamDispatchStep.signature value is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003Too many DispatchJob steps were given.
Returns an ErrorDetailMinMax as the errorDetails.
4003Too many DispatchJob references were given.
Returns an ErrorDetailMinMax as the errorDetails.
4003Too many DispatchJob attachements and forms were given.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to view the Asset to which the DispatchJob belongs.
4015During create: You do not have permission to create new DispatchJobs.
4015During update: You do not have permission to update DispatchJobs.
4006During update: When updating a DispatchJob, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset to which this DispatchJob is assigned was not found.
40440The Place being given for the DispatchJob was not found.
40171During update: Changing the labels on this DispatchJob in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
40481When giving only an address (not a Place or ParamDispatchStep.latlng), the address could not be geocoded.
40481When giving only an address (not a Place or ParamDispatchStep.latlng), the address was not street-level accurate enough.
Returns an ErrorDetailExternals as the errorDetails.
40396The Asset to which this DispatchJob is assigned is suspended. Before sending or updating DispatchJobs for a Asset, it must be reactivated.
404124One or more of the given attachments could not be found.
Returns an ErrorDetailBadIds as the errorDetails.
409130The dispatchJob.asset doesn't belong to the same Company as this DispatchJob
409130The dispatchJob.asset doesn't have any matching labels with this DispatchJob.
409130When adding a step, the order of DispatchStepStatus.completedDispatchJob.steps cannot be changed.
409130During update: When updating a DispatchJob, you cannot change the Company.
409130During update: When updating a DispatchJob, you cannot change the Asset to which it is assigned if any of the steps are underway.
409130During update: One or more of the DispatchJob.steps is DispatchStepStatus.completed and is being removed.
409130During update: There are too many combined dispatchJob.references after adding the newly given keys.
Returns an ErrorDetailMinMax as the errorDetails.
404136One or more of the given FormResults could not be found.
Returns an ErrorDetailBadIds as the errorDetails.
404139During update: The DispatchJob was not found.

DELETE/dispatch/jobs/{jobId}

Deletes an existing DispatchJob.
URL Parameters
ParameterTypeRequiredDescription
jobIduint64requiredUnique identifier of the DispatchJob.
Response description
PropertyTypeDescription
dispatchJobRespDeletedThe id, owning Asset id, owning Company id, and deleted state.
dispatchJob.companyuint64Identifier of the Company to which this object belongs.
dispatchJob.deletedbooleanFlag showing if the object is deleted.
dispatchJob.iduint64?Identifier given as input for the command.
dispatchJob.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchJob": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchJob object, or it is invalid.
4003The dispatchJob object does not contain an id, or it is invalid.
4015You do not have permission to delete DispatchJobs.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The DispatchJob was found, but the associated Asset was not found.
40396The DispatchJob was found, but the associated Asset is suspended. Before using any Asset resources, it must be reactivated.
404139The DispatchJob was not found by its unique identifier.

PATCH/dispatch/jobs/{jobId}/restore

Restores a deleted DispatchJob.
URL Parameters
ParameterTypeRequiredDescription
jobIduint64requiredUnique identifier of the DispatchJob.
HTTP Request body description
PropertyTypeRequiredDescription
dispatchJobParamIdalwaysIdentifier object to contain the DispatchJob's identifier.
dispatchJob.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"dispatchJob": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
dispatchJobRespDeletedThe id, owning Asset id, owning Company id, and deleted state.
dispatchJob.companyuint64Identifier of the Company to which this object belongs.
dispatchJob.deletedbooleanFlag showing if the object is deleted.
dispatchJob.iduint64?Identifier given as input for the command.
dispatchJob.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchJob": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchJob object, or it is invalid.
4003The dispatchJob object does not contain an id, or it is invalid.
4015You do not have permission to create DispatchJobs.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404139The DispatchJob was not found by its unique identifier.
400140The DispatchJob was found, but is not marked as deleted.

GET/dispatch/jobs?labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/assets/dispatch/jobs?labels={labels}.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
labelsstringoptionalLabels to match the DispatchJob.
limituint16optionalWhen using , sets the maximum number of objects retrieved from the archive.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/dispatch/tasks?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/assets/dispatch/tasks?{keys=values} (when No at least query-string key/value is given) or /companies/{your-company-id}/assets/dispatch/tasks (when No query-string parameters are given).
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects retrieved from the archive.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/dispatch/tasks

Creates a new or updates an existing DispatchTask.
HTTP Request body description
PropertyTypeRequiredDescription
dispatchTaskObject.<string, ?>alwaysThe details of a DispatchTask either for creation or update.
dispatchTask.addressstringcreate (conditional)The street address of this DispatchTask. Condition: You must provide a place, a latlng, or an address. Note: If you ommit the address, the geocoder attempts to populate the field, but will not return an error if it fails.
dispatchTask.assetuint64?createThe identifier of the Asset assigned to this DispatchTask.
dispatchTask.attachmentsArray.<uint64>
for values see: Document.id
optionalA list of Document identifiers to attach to this DispatchTask for both driver and dispatcher review.
dispatchTask.durationtimespanoptionalThe duration on site, or how much time is expected to complete the DispatchTask. Used to help calculate other DispatchTask ETAs when routing is performed.
dispatchTask.etadatetimeoptionalEstimated time of arrival.
dispatchTask.iduint64?updateThe unique identifier of the DispatchTask you want to update.
dispatchTask.instructionsstringoptionalInstructions for the driver to help them complete the DispatchTask. Such as which door to use, a buzz code to enter the facility, etc...
dispatchTask.latlngLatLngcreate (conditional)The lat/long coordinates of the street address. Condition: You must provide a place, a latlng, or an address. Note: If you invoke the geocoder, the address is also replaced with the geocoded value.
dispatchTask.latlng.latdoubleoptionalLatitude
dispatchTask.latlng.lngdoubleoptionalLongitude
dispatchTask.namestring
maximum-length: 100
createName for the DispatchTask.
dispatchTask.notesstringoptionalNotes completed by the driver about the DispatchTask. Such as service notes, damaged goods upon pick-up, etc...
dispatchTask.placeuint64?create (conditional)An optional identifier of a Place for this DispatchTask. Using a Place makes detecting the "arrived" status more reliable. Condition: You must provide a place, a latlng, or an address. Note: If you invoke the geocoder, the address is also replaced with the geocoded value.
dispatchTask.referencesObject.<string, string>optionalA custom field used to refer this DispatchTask an external system. Examples are a work order, pick-up, waybill, etc... If value is null, the field is removed from the DispatchTask. If a new value or null is not provided for a current attribute, no change is made.
dispatchTask.statusTaskStatus?optionalDispatchTasks have a lifetime and each status represents a DispatchTask's progress through it's life.
dispatchTask.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"dispatchTask": {
		"address": string,
		"asset": number,
		"attachments": [
			number
		],
		"duration": string,
		"eta": string,
		"id": number,
		"instructions": string,
		"latlng": {
			"lat": number,
			"lng": number
		},
		"name": string,
		"notes": string,
		"place": number,
		"references": {
			string: string
		},
		"status": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
dispatchTaskRespIdAssetThe id, owning Asset id, and owning Company id of the object requested/created.
dispatchTask.assetuint64Identifier of the Asset to which this object belongs
dispatchTask.companyuint64Identifier of the Company to which this object belongs.
dispatchTask.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchTask": {
		"asset": number,
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a dispatchTask object, or it is invalid.
4003Not enough keys exist in the dispatchTask object.
4003Too many DispatchTask references were given.
4003Too many DispatchTask attachements were given.
4003The request contains an invalid dispatchTask.references object.
4003The request contains an invalid dispatchTask.place id.
4003The request contains an invalid dispatchTask.attachments array.
4003The request contains an invalid dispatchTask.latlng object.
4003The request contains an invalid dispatchTask.eta date time.
4003The request contains an invalid dispatchTask.duration timespan.
4003The request contains an invalid dispatchTask.status TaskStatus.
4003During create: When creating a new DispatchTask, a name was not given, or was blank.
4003During create: When creating a new DispatchTask, an asset was not given.
4003During create: When creating a new DispatchTask, a place, a latlng, or an address must be given.
4003During update: When updating a DispatchTask, the new name cannot be blank.
4003During update: When updating a DispatchTask, not enough v values were given.
4003During update: There are too many combined dispatchTask.references after adding the newly given keys.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to view the Asset to which the DispatchTask belongs.
4015During create: You do not have permission to create new DispatchTasks.
4015During update: You do not have permission to update DispatchTasks.
4006During update: When updating a DispatchTask, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset to which this DispatchTask is assigned was not found.
40440The Place being given for the DispatchTask was not found.
40464The DispatchTask was not found.
40464The DispatchTask was cancelled.
40481When giving only an address (not a Place or dispatchTask.latlng), the address could not be geocoded.
40481When giving only an address (not a Place or dispatchTask.latlng), the address was not street-level accurate enough.
Returns an ErrorDetailExternals as the errorDetails.
40396The Asset to which this DispatchTask is assigned is suspended. Before sending or updating DispatchTasks for an Asset, it must be reactivated.
404124One or more of the given attachments could not be found.
Returns an ErrorDetailBadIds as the errorDetails.
409130During update: When updating a DispatchTask, you cannot change the Asset to which it is assigned.

DELETE/dispatch/tasks

Deletes an existing DispatchTask.
Response description
PropertyTypeDescription
dispatchTaskRespAssetDeletedThe id, owning Asset id, owning Company id, and deleted state.
dispatchTask.assetuint64Identifier of the Asset to which this object belongs.
dispatchTask.companyuint64Identifier of the Company to which this object belongs.
dispatchTask.deletedbooleanFlag showing if the object is deleted.
dispatchTask.iduint64?Identifier given as input for the command.
dispatchTask.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchTask": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchTask object, or it is invalid.
4003The dispatchTask object does not contain an id, or it is invalid.
4015You do not have permission to delete DispatchTasks.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The DispatchTask was found, but the associated Asset was not found.
40464The DispatchTask was not found by its unique identifier.
40396The DispatchTask was found, but the associated Asset is suspended. Before using any Asset resources, it must be reactivated.

GET/dispatch/tasks/{taskId}?includeDeleted=boolean

Gets details of the specified DispatchTask.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
taskIduint64requiredUnique identifier of the DispatchTask.
Response description
PropertyTypeDescription
dispatchTask
Deprecated
DispatchTaskThe requested DispatchTask.
Use DispatchJob instead.
dispatchTask.addressstring
maximum-length: 500
The street address of where the task must be completed.
dispatchTask.arriveddatetimeThe date/time stamp of when the asset arrived at this task.
dispatchTask.assetuint64The asset to which this task belongs.
dispatchTask.attachmentsArray.<uint64>
maximum-count: 10
for values see: Document.id
A list of hosted Document identifiers attached to this task.
dispatchTask.companyuint64The company to which this task belongs.
dispatchTask.completeddatetimeThe date/time stamp of when this task was completed.
dispatchTask.createddatetimeWhen this task was created.
dispatchTask.durationtimespanThe optional expected duration of the work for this task.
dispatchTask.etadatetimeThe optional estimated time of arrival for the asset.
dispatchTask.iduint64Unique identifier of this task.
dispatchTask.instructionsstringInstructions (filled out by dispatcher) for the field-employee to help them completed the task.
dispatchTask.latlngLatLngThe lat/long coordinates of where the task must be completed.
dispatchTask.latlng.latdoubleLatitude
dispatchTask.latlng.lngdoubleLongitude
dispatchTask.namestring
maximum-length: 100
The name of this task or the work needed to be performed.
dispatchTask.notesstringNotes about the status of the work filled in by field-employee.
dispatchTask.placeuint64?An optional place which can be used as a template instead of providing lat/long coordinates and a street address.
dispatchTask.processedUtcdatetimeWhen the was change procesed.
dispatchTask.reference
Deprecated
string
maximum-length: 100
A custom field used to refer to an external system. Examples are a work order, pick-up, waybill, etc...
Use dispatchTask.references[DispatchTask.REFERENCE] instead.
dispatchTask.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
Name/value collections of custom fields used to refer to external systems.
dispatchTask.signatorystring
maximum-length: 100
The name of the person who signed the task's completion.
dispatchTask.signaturebooleanIndicates whether the task has a signature.
dispatchTask.status
Deprecated
TaskStatusThe progress of this task.
Use DispatchStepStatus instead.
dispatchTask.updatedby: login, from: monster
dispatchTask.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchTask": {
		"address": string,
		"arrived": string,
		"asset": number,
		"attachments": [
			number
		],
		"company": number,
		"completed": string,
		"created": string,
		"duration": string,
		"eta": string,
		"id": number,
		"instructions": string,
		"latlng": {
			"lat": number,
			"lng": number
		},
		"name": string,
		"notes": string,
		"place": number,
		"processedUtc": string,
		"reference": string,
		"references": {
			string: string
		},
		"signatory": string,
		"signature": boolean,
		"status": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchTask object, or it is invalid.
4003The dispatchTask object does not contain an id, or it is invalid.
4015You do not have permission to view DispatchTasks.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The DispatchTask was found, but the associated asset was not found.
40464The DispatchTask was not found by its unique identifier.
40396The DispatchTask was found, but the associated asset is suspended. Before using any asset resources, it must be reactivated.

POST/dispatch/tasks/{taskId}

Creates a new or updates an existing DispatchTask.
URL Parameters
ParameterTypeRequiredDescription
taskIduint64?optionalUnique identifier of the DispatchTask. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
dispatchTaskObject.<string, ?>alwaysThe details of a DispatchTask either for creation or update.
dispatchTask.addressstringcreate (conditional)The street address of this DispatchTask. Condition: You must provide a place, a latlng, or an address. Note: If you ommit the address, the geocoder attempts to populate the field, but will not return an error if it fails.
dispatchTask.assetuint64?createThe identifier of the Asset assigned to this DispatchTask.
dispatchTask.attachmentsArray.<uint64>
for values see: Document.id
optionalA list of Document identifiers to attach to this DispatchTask for both driver and dispatcher review.
dispatchTask.durationtimespanoptionalThe duration on site, or how much time is expected to complete the DispatchTask. Used to help calculate other DispatchTask ETAs when routing is performed.
dispatchTask.etadatetimeoptionalEstimated time of arrival.
dispatchTask.iduint64?updateThe unique identifier of the DispatchTask you want to update.
dispatchTask.instructionsstringoptionalInstructions for the driver to help them complete the DispatchTask. Such as which door to use, a buzz code to enter the facility, etc...
dispatchTask.latlngLatLngcreate (conditional)The lat/long coordinates of the street address. Condition: You must provide a place, a latlng, or an address. Note: If you invoke the geocoder, the address is also replaced with the geocoded value.
dispatchTask.latlng.latdoubleoptionalLatitude
dispatchTask.latlng.lngdoubleoptionalLongitude
dispatchTask.namestring
maximum-length: 100
createName for the DispatchTask.
dispatchTask.notesstringoptionalNotes completed by the driver about the DispatchTask. Such as service notes, damaged goods upon pick-up, etc...
dispatchTask.placeuint64?create (conditional)An optional identifier of a Place for this DispatchTask. Using a Place makes detecting the "arrived" status more reliable. Condition: You must provide a place, a latlng, or an address. Note: If you invoke the geocoder, the address is also replaced with the geocoded value.
dispatchTask.referencesObject.<string, string>optionalA custom field used to refer this DispatchTask an external system. Examples are a work order, pick-up, waybill, etc... If value is null, the field is removed from the DispatchTask. If a new value or null is not provided for a current attribute, no change is made.
dispatchTask.statusTaskStatus?optionalDispatchTasks have a lifetime and each status represents a DispatchTask's progress through it's life.
dispatchTask.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"dispatchTask": {
		"address": string,
		"asset": number,
		"attachments": [
			number
		],
		"duration": string,
		"eta": string,
		"id": number,
		"instructions": string,
		"latlng": {
			"lat": number,
			"lng": number
		},
		"name": string,
		"notes": string,
		"place": number,
		"references": {
			string: string
		},
		"status": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
dispatchTaskRespIdAssetThe id, owning Asset id, and owning Company id of the object requested/created.
dispatchTask.assetuint64Identifier of the Asset to which this object belongs
dispatchTask.companyuint64Identifier of the Company to which this object belongs.
dispatchTask.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchTask": {
		"asset": number,
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a dispatchTask object, or it is invalid.
4003Not enough keys exist in the dispatchTask object.
4003Too many DispatchTask references were given.
4003Too many DispatchTask attachements were given.
4003The request contains an invalid dispatchTask.references object.
4003The request contains an invalid dispatchTask.place id.
4003The request contains an invalid dispatchTask.attachments array.
4003The request contains an invalid dispatchTask.latlng object.
4003The request contains an invalid dispatchTask.eta date time.
4003The request contains an invalid dispatchTask.duration timespan.
4003The request contains an invalid dispatchTask.status TaskStatus.
4003During create: When creating a new DispatchTask, a name was not given, or was blank.
4003During create: When creating a new DispatchTask, an asset was not given.
4003During create: When creating a new DispatchTask, a place, a latlng, or an address must be given.
4003During update: When updating a DispatchTask, the new name cannot be blank.
4003During update: When updating a DispatchTask, not enough v values were given.
4003During update: There are too many combined dispatchTask.references after adding the newly given keys.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to view the Asset to which the DispatchTask belongs.
4015During create: You do not have permission to create new DispatchTasks.
4015During update: You do not have permission to update DispatchTasks.
4006During update: When updating a DispatchTask, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset to which this DispatchTask is assigned was not found.
40440The Place being given for the DispatchTask was not found.
40464The DispatchTask was not found.
40464The DispatchTask was cancelled.
40481When giving only an address (not a Place or dispatchTask.latlng), the address could not be geocoded.
40481When giving only an address (not a Place or dispatchTask.latlng), the address was not street-level accurate enough.
Returns an ErrorDetailExternals as the errorDetails.
40396The Asset to which this DispatchTask is assigned is suspended. Before sending or updating DispatchTasks for an Asset, it must be reactivated.
404124One or more of the given attachments could not be found.
Returns an ErrorDetailBadIds as the errorDetails.
409130During update: When updating a DispatchTask, you cannot change the Asset to which it is assigned.

DELETE/dispatch/tasks/{taskId}

Deletes an existing DispatchTask.
URL Parameters
ParameterTypeRequiredDescription
taskIduint64requiredUnique identifier of the DispatchTask.
Response description
PropertyTypeDescription
dispatchTaskRespAssetDeletedThe id, owning Asset id, owning Company id, and deleted state.
dispatchTask.assetuint64Identifier of the Asset to which this object belongs.
dispatchTask.companyuint64Identifier of the Company to which this object belongs.
dispatchTask.deletedbooleanFlag showing if the object is deleted.
dispatchTask.iduint64?Identifier given as input for the command.
dispatchTask.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchTask": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchTask object, or it is invalid.
4003The dispatchTask object does not contain an id, or it is invalid.
4015You do not have permission to delete DispatchTasks.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The DispatchTask was found, but the associated Asset was not found.
40464The DispatchTask was not found by its unique identifier.
40396The DispatchTask was found, but the associated Asset is suspended. Before using any Asset resources, it must be reactivated.

PATCH/dispatch/tasks/{taskId}/restore

Restores a deleted DispatchTask.
URL Parameters
ParameterTypeRequiredDescription
taskIduint64requiredUnique identifier of the DispatchTask.
HTTP Request body description
PropertyTypeRequiredDescription
dispatchTaskParamIdalwaysIdentifier object to contain the DispatchTask's identifier.
dispatchTask.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"dispatchTask": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
dispatchTaskRespAssetDeletedThe id, owning Asset id, owning Company id, and deleted state.
dispatchTask.assetuint64Identifier of the Asset to which this object belongs.
dispatchTask.companyuint64Identifier of the Company to which this object belongs.
dispatchTask.deletedbooleanFlag showing if the object is deleted.
dispatchTask.iduint64?Identifier given as input for the command.
dispatchTask.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dispatchTask": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a dispatchTask object, or it is invalid.
4003The dispatchTask object does not contain an id, or it is invalid.
4015You do not have permission to create DispatchTasks.
4015You do not have permission to view the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The DispatchTask was found, but the associated Asset was not found.
40464The DispatchTask was not found by its unique identifier.
40396The DispatchTask was found, but the associated Asset is suspended. Before using any Asset resources, it must be reactivated.
400100The DispatchTask was found, but is not marked as deleted.

File Hosting

GET/assets/{assetId}/dashcams?after=string&before=string&limit=number&kind=DashcamDataType

Gets the list of dashcam metadata for the specified Asset.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptional"{28-days-ago}"A timestamp for the earliest DashcamData metadata to retrieve.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptional"{now}"A timestamp for the most recent DashcamData metadata to retrieve.
kindDashcamDataType?optionalAn optional filter available so that only a certain kind of DashcamData is returned.
limituint16?optional1000A maximum number of DashcamData metadata to retrieve.
Response description
PropertyTypeDescription
assetRespIdAn object to contain the "id" of the Asset to which the array of dashcam image or video metadata belong.
asset.iduint64?Identifier given as input for the command.
dashcamsArray.<DashcamData>The list of requested dashcam image or video metadata.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
totalsObject.<DashcamDataType, HostedTotal>Totals of hosted dashcam media as calculated at midnight.
Response structure
{
	"asset": {
		"id": number
	},
	"dashcams": [
		{
			"altitude": number,
			"asset": number,
			"bytes": number,
			"camera": number,
			"company": number,
			"end": string,
			"eventName": string,
			"fps": number,
			"guid": string,
			"heading": number,
			"kind": string,
			"latitude": number,
			"longitude": number,
			"provider": string,
			"size": {
				"height": number,
				"width": number
			},
			"speed": number,
			"start": string
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"totals": {
		string: {
			"bytes": number,
			"count": number,
			"newest": string,
			"oldest": string
		}
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a valid after timestamp.
4003The request does not contain a valid before timestamp.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view Providers.
4015You do not have permission to view the specified Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40396The Asset is suspended.

GET/assets/{assetId}/dashcams/live?camera=number

Gets the list of dashcam live metadata for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
assetIduint64requiredUnique identifier of the Asset.
camerabyte?optionalOptional camera number when multiple cameras are installed.
Response description
PropertyTypeDescription
assetRespIdAn object to contain the "id" of the Asset to which the array of dashcam live image metadata belongs.
asset.iduint64?Identifier given as input for the command.
dashcamsArray.<DashcamDataLive>The list of requested dashcam live image metadata.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"id": number
	},
	"dashcams": [
		{
			"altitude": number,
			"asset": number,
			"bytes": number,
			"camera": number,
			"company": number,
			"dts": string,
			"heading": number,
			"kind": string,
			"latitude": number,
			"longitude": number,
			"provider": string,
			"size": {
				"height": number,
				"width": number
			},
			"speed": number
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view Providers.
4015You do not have permission to view the specified Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40396The Asset is suspended.

GET/assets/{assetId}/forms?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of FormResults for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of FormResults belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultsArray.<FormResult>The list of requested FormResults.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResults": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"driver": string,
			"fields": {
				string: string
			},
			"id": number,
			"labels": [
				string
			],
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"processedUtc": string,
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view FormResults.
4015You do not have permission to view the specified Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns these FormResults was not found.
40396The Asset that owns these FormResults is suspended. Before reading FormResults from an Asset, it must be reactivated.

GET/assets/{assetId}/forms?labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of FormResults for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
labelsstringrequiredLabels to match the FormResult.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of FormResults belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultsArray.<FormResult>The list of requested FormResults.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResults": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"driver": string,
			"fields": {
				string: string
			},
			"id": number,
			"labels": [
				string
			],
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"processedUtc": string,
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view FormResults.
4015You do not have permission to view the specified Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns these FormResults was not found.
40396The Asset that owns these FormResults is suspended. Before reading FormResults from an Asset, it must be reactivated.

GET/companies/{companyId}/dashcams?after=string&before=string&limit=number&kind=DashcamDataType

Gets the list of dashcam image or video metadata for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptional"{28-days-ago}"A timestamp for the earliest DashcamData metadata to retrieve.
beforedatetimeoptional"{now}"A timestamp for the most recent DashcamData metadata to retrieve.
companyIduint64requiredUnique identifier of the Company.
kindDashcamDataType?optionalAn optional filter available so that only a certain kind of DashcamData is returned.
limituint16?optional1000A maximum number of DashcamData metadata to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of dashcam image or video metadata belong.
company.iduint64?Identifier given as input for the command.
dashcamsArray.<DashcamData>The list of requested dashcam image or video metadata.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
totalsObject.<DashcamDataType, HostedTotal>Totals of hosted dashcam media as calculated at midnight.
Response structure
{
	"company": {
		"id": number
	},
	"dashcams": [
		{
			"altitude": number,
			"asset": number,
			"bytes": number,
			"camera": number,
			"company": number,
			"end": string,
			"eventName": string,
			"fps": number,
			"guid": string,
			"heading": number,
			"kind": string,
			"latitude": number,
			"longitude": number,
			"provider": string,
			"size": {
				"height": number,
				"width": number
			},
			"speed": number,
			"start": string
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"totals": {
		string: {
			"bytes": number,
			"count": number,
			"newest": string,
			"oldest": string
		}
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a valid after timestamp.
4003The request does not contain a valid before timestamp.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Assets or Providers in the given Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/dashcams/live?camera=number

Gets the list of dashcam live image metadata for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
camerabyte?optionalOptional camera number when multiple cameras are installed.
companyIduint64requiredUnique identifier of the Company.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of dashcam live image metadata belongs.
company.iduint64?Identifier given as input for the command.
dashcamsArray.<DashcamDataLive>The list of requested dashcam live image metadata.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"dashcams": [
		{
			"altitude": number,
			"asset": number,
			"bytes": number,
			"camera": number,
			"company": number,
			"dts": string,
			"heading": number,
			"kind": string,
			"latitude": number,
			"longitude": number,
			"provider": string,
			"size": {
				"height": number,
				"width": number
			},
			"speed": number
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Assets or Providers in the given Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/documents?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Documents for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Documents belong.
company.iduint64?Identifier given as input for the command.
documentsArray.<Document>The list of requested Documents.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"documents": [
		{
			"bytes": number,
			"company": number,
			"expiry": string,
			"id": number,
			"mime": string,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"references": {
				string: string
			},
			"src": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Documents for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/documents?{keys=values}?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number&{keys=values}

Gets the list of Documents for the specified Company only if one of the specified Document.references fields match. If no references are specified, it will match any Document with no references. If a reference value is null, it will match any Document without that reference key.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Documents belong.
company.iduint64?Identifier given as input for the command.
documentsArray.<Document>The list of requested Documents.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
referencesObject.<string, string>The reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"documents": [
		{
			"bytes": number,
			"company": number,
			"expiry": string,
			"id": number,
			"mime": string,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"references": {
				string: string
			},
			"src": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"references": {
		string: string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The references is not an object, or it is invalid.
4015You do not have permission to view any Documents for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/forms?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of FormResults for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of FormResults belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultsArray.<FormResult>The list of requested FormResults.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResults": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"driver": string,
			"fields": {
				string: string
			},
			"id": number,
			"labels": [
				string
			],
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"processedUtc": string,
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view FormResults for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/forms/templates?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of FormTemplates for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of FormTemplates belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplatesArray.<FormTemplate>The list of requested FormTemplates.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplates": [
		{
			"company": number,
			"fields": [
				{
					"editable": boolean,
					"id": number,
					"kind": string,
					"name": string,
					"notes": string,
					"required": boolean,
					"value": string
				}
			],
			"fill": string,
			"graphic": string,
			"id": number,
			"labels": [
				string
			],
			"name": string,
			"notes": string,
			"processedUtc": string,
			"stroke": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view FormTemplates for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/forms/templates?labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of FormTemplates for the specified Company only if the FormTemplate.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
labelsstringrequiredLabels to match the FormTemplate.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of FormTemplates belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplatesArray.<FormTemplate>The list of requested FormTemplates.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplates": [
		{
			"company": number,
			"fields": [
				{
					"editable": boolean,
					"id": number,
					"kind": string,
					"name": string,
					"notes": string,
					"required": boolean,
					"value": string
				}
			],
			"fill": string,
			"graphic": string,
			"id": number,
			"labels": [
				string
			],
			"name": string,
			"notes": string,
			"processedUtc": string,
			"stroke": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view FormTemplates for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/forms?labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of FormResults for the specified Company only if the FormResult.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
labelsstringrequiredLabels to match the FormResult.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of FormResults belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultsArray.<FormResult>The list of requested FormResults.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResults": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"driver": string,
			"fields": {
				string: string
			},
			"id": number,
			"labels": [
				string
			],
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"processedUtc": string,
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view FormResults for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/pictures?branch=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Pictures for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
branchbooleanoptionalfalse
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Pictures belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
picturesArray.<Picture>The list of requested Pictures.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"pictures": [
		{
			"bytes": number,
			"company": number,
			"focals": [
				{
					"bottom": number,
					"left": number,
					"right": number,
					"top": number
				}
			],
			"id": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"size": {
				"height": number,
				"width": number
			},
			"src": string,
			"updated": {
			},
			"uses": number,
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Pictures for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/dashcams?kind=string&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/dashcams?after={28-days-ago}&before={current-time}.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptional"{28-days-ago}"28 days ago.
beforedatetimeoptional"{now}"The current date/time.
kindDashcamDataTypeoptionalNull by default, but can be overridden.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/dashcams/{guid}

Gets details of the specified dashcam image or video metadata.
URL Parameters
ParameterTypeRequiredDescription
guidguidoptionalUnique identifier of the DashcamData image or video metadata.
Response description
PropertyTypeDescription
dashcamDashcamDataThe requested dashcam image or video metadata.
dashcam.altitudedoubleAltitude of the start of the resource.
dashcam.assetuint64?Unique identifier of the asset tied to the provider at the time.
dashcam.bytesuint64Number bytes in the dashcam media file.
dashcam.camerabyteNumber assigned to the camera that took the image/video.
dashcam.companyuint64Unique identifier of the company of the provider.
dashcam.enddatetimeTimestamp of when this resource ended. For DashcamDataType.image media files, the start and end are the same.
dashcam.eventNamestringThe reason why we're saving this image/video. Or the event name that triggered it.
dashcam.fpssingle?For DashcamDataType.video media files, this indicates the frames-per-second.
dashcam.guidguidUnique identifier of this resource.
dashcam.headingdoubleHeading of the start of the resource.
dashcam.kindDashcamDataTypeThe type of data being stored.
dashcam.latitudedoubleLatitude of the start of the resource.
dashcam.longitudedoubleLongitude of the start of the resource.
dashcam.providerstringUnique identifier of the provider that sent the data.
dashcam.sizeSizeResolution defined in pixels.
dashcam.size.heightdoubleHeight
dashcam.size.widthdoubleWidth
dashcam.speeddoubleSpeed of the start of the resource.
dashcam.startdatetimeTimestamp of when this resource started. For DashcamDataType.image media files, the start and end are the same.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dashcam": {
		"altitude": number,
		"asset": number,
		"bytes": number,
		"camera": number,
		"company": number,
		"end": string,
		"eventName": string,
		"fps": number,
		"guid": string,
		"heading": number,
		"kind": string,
		"latitude": number,
		"longitude": number,
		"provider": string,
		"size": {
			"height": number,
			"width": number
		},
		"speed": number,
		"start": string
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a dashcam object, or it is invalid.
4003The dashcam object does not contain a guid, or it is invalid.
4015You do not have permission to view this dashcam metadata because you do not have access to the Asset.
4015You do not have permission to view this dashcam metadata because you do not have access to the Provider.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The dashcam image or video metadata is associated with a deleted Asset.
40443The dashcam image or video metadata is associated with a deleted Provider.
40468The dashcam image or video metadata was not found by its unique identifier.

GET/dashcams/live?camera=number

This request is an alias of /companies/{your-company-id}/dashcams/live.
URL Parameters
ParameterTypeRequiredDefaultDescription
camerabyteoptionalOptional camera number when multiple cameras are installed.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/documents?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/documents (when no additional query-string parameters are given) or /companies/{your-company-id}/documents?{keys=values} (when at least one additional query-string key/value is given).
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/documents

Creates or updates an existing Document. To upload Documents, you need to use the Files API.
HTTP Request body description
PropertyTypeRequiredDescription
documentObject.<string, ?>alwaysA simple object to contain the Document parameters.
document.companyuint64?createThe Company to which this Document belongs. After creation, this value is read-only.
document.expirydatetimeoptionalThe time at which the Document will automatically be purged from the system.
document.iduint64?updateThe unique identifier of the Document you want to update.
document.namestring
maximum-length: 100
createThe file name of this Document.
document.notesstringoptionalNotes about this Document.
document.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Document.
document.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"document": {
		"company": number,
		"expiry": string,
		"id": number,
		"name": string,
		"notes": string,
		"references": {
			string: string
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
documentRespIdCompanyAn object which contains the "id" and "company" keys.
document.companyuint64Identifier of the Company to which this object belongs.
document.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"document": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a document object, or it is invalid.
4003Not enough keys exist in the document object.
4003The given document.expiry is too far into the future.
4003During create: When creating a new Document, a company was not given.
4003During create: When creating a new Document, a name was not given, or it is invalid.
4003During create: When creating a new Document, the local path was not specified.
4003During create: When creating a new Document, the bytes was invalid.
4003During create: When creating a new Document, the mime was invalid.
4003During update: When updating a Document, the id was invalid.
4003During update: When updating a Document, the v was not an array, or contained too few numbers.
4003During update: When updating a Document, the name was given as blank.
4015You do not have permission to create a new Document.
4015You do not have permission to update this Document.
4006During update: When updating a Document, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404122During update: The Document was not found by its unique identifier.
409130During update: When updating a Document, the company can not be changed.

DELETE/documents

Deletes an existing Document.
Response description
PropertyTypeDescription
documentRespDeletedAn object which contains the Document's id, owning Company id, and deleted status.
document.companyuint64Identifier of the Company to which this object belongs.
document.deletedbooleanFlag showing if the object is deleted.
document.iduint64?Identifier given as input for the command.
document.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"document": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a document object, or it is invalid.
4003The document object does not contain an id, or it is invalid.
4015You do not have permission to delete this Document.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404122The Document was not found by its unique identifier.

GET/documents/{documentId}?includeDeleted=boolean

Gets details of the specified Document.
URL Parameters
ParameterTypeRequiredDescription
documentIduint64requiredUnique identifier of the Document.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
documentDocumentThe requested Document.
document.bytesuint64The file-size on the disk.
document.companyuint64The company to which this file belongs.
document.expirydatetimeThe date and time this fill will be automatically purged from our system.
document.iduint64Unique identifier of this file.
document.mimestring
maximum-length: 50
The MIME type of the file.
document.namestring
maximum-length: 100
The file name of this file.
document.notesstringNotes about this file.
document.processedUtcdatetimeWhen the was change procesed.
document.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
Name/value collections of custom fields used to refer to external systems.
document.srcstring
maximum-length: 200
The URL/path to find this file.
document.updatedby: login, from: monster
document.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"document": {
		"bytes": number,
		"company": number,
		"expiry": string,
		"id": number,
		"mime": string,
		"name": string,
		"notes": string,
		"processedUtc": string,
		"references": {
			string: string
		},
		"src": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a document object, or it is invalid.
4003The document object does not contain an id, or it is invalid.
4015You do not have permission to view this Document.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404122The Document was not found by its unique identifier.

POST/documents/{documentId}

Creates or updates an existing Document. To upload Documents, you need to use the Files API.
URL Parameters
ParameterTypeRequiredDescription
documentIduint64?optionalUnique identifier of the Document. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
documentObject.<string, ?>alwaysA simple object to contain the Document parameters.
document.companyuint64?createThe Company to which this Document belongs. After creation, this value is read-only.
document.expirydatetimeoptionalThe time at which the Document will automatically be purged from the system.
document.iduint64?updateThe unique identifier of the Document you want to update.
document.namestring
maximum-length: 100
createThe file name of this Document.
document.notesstringoptionalNotes about this Document.
document.referencesObject.<string, string>
maximum-count: 10
maximum-length of keys: 20
maximum-length of values: 100
optionalName/value collections of custom fields used to refer to external systems. If the value is null, the references are removed from the Document.
document.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"document": {
		"company": number,
		"expiry": string,
		"id": number,
		"name": string,
		"notes": string,
		"references": {
			string: string
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
documentRespIdCompanyAn object which contains the "id" and "company" keys.
document.companyuint64Identifier of the Company to which this object belongs.
document.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"document": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a document object, or it is invalid.
4003Not enough keys exist in the document object.
4003The given document.expiry is too far into the future.
4003During create: When creating a new Document, a company was not given.
4003During create: When creating a new Document, a name was not given, or it is invalid.
4003During create: When creating a new Document, the local path was not specified.
4003During create: When creating a new Document, the bytes was invalid.
4003During create: When creating a new Document, the mime was invalid.
4003During update: When updating a Document, the id was invalid.
4003During update: When updating a Document, the v was not an array, or contained too few numbers.
4003During update: When updating a Document, the name was given as blank.
4015You do not have permission to create a new Document.
4015You do not have permission to update this Document.
4006During update: When updating a Document, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404122During update: The Document was not found by its unique identifier.
409130During update: When updating a Document, the company can not be changed.

DELETE/documents/{documentId}

Deletes an existing Document.
URL Parameters
ParameterTypeRequiredDescription
documentIduint64requiredUnique identifier of the Document.
Response description
PropertyTypeDescription
documentRespDeletedAn object which contains the Document's id, owning Company id, and deleted status.
document.companyuint64Identifier of the Company to which this object belongs.
document.deletedbooleanFlag showing if the object is deleted.
document.iduint64?Identifier given as input for the command.
document.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"document": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a document object, or it is invalid.
4003The document object does not contain an id, or it is invalid.
4015You do not have permission to delete this Document.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404122The Document was not found by its unique identifier.

PATCH/documents/{documentId}/restore

Restores a deleted Document.
URL Parameters
ParameterTypeRequiredDescription
documentIduint64requiredUnique identifier of the Document.
HTTP Request body description
PropertyTypeRequiredDescription
documentParamIdalwaysAn object to contain the identifier of the Document.
document.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"document": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
documentRespDeletedAn object which contains the Document's id, owning Company id, and deleted status.
document.companyuint64Identifier of the Company to which this object belongs.
document.deletedbooleanFlag showing if the object is deleted.
document.iduint64?Identifier given as input for the command.
document.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"document": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a document object, or it is invalid.
4003The document object does not contain an id, or it is invalid.
4015You do not have permission to restore this Document.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404122The Document was not found by its unique identifier.
400123The Document was found, but is not marked as deleted.

GET/forms?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/forms.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/forms

Creates a new or updates an existing FormResult.
HTTP Request body description
PropertyTypeRequiredDescription
formResultObject.<string, ?>alwaysA simple object to contain the FormResult parameters.
formResult.assetuint64?createThe unique identifier of the Asset filling out this form.
formResult.completeddatetimeoptionalA timestamp from when the FormResult was completed.
formResult.fieldsObject.<uint64, string>
maximum-length of values: 254
optionalA collection of values for the FormResult.fields. You can update parts of the collection, the FormResult must have a value for all fields in order to complete it.
formResult.iduint64?updateThe unique identifier of the FormResult you want to update.
formResult.labelsArray.<codified>
for values see: LabelStyle.code
optionalCodified label names used to relate forms to Assets.
formResult.latlngLatLngoptionalCoordinates from when the FormResult was completed.
formResult.latlng.latdoubleoptionalLatitude
formResult.latlng.lngdoubleoptionalLongitude
formResult.namestring
maximum-length: 100
optionalName for the FormResult.
formResult.notesstringoptionalNotes for the FormResult.
formResult.templateuint64?createThe unique identifier of the FormTemplate for this form.
formResult.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"formResult": {
		"asset": number,
		"completed": string,
		"fields": {
			string: string
		},
		"id": number,
		"labels": [
			string
		],
		"latlng": {
			"lat": number,
			"lng": number
		},
		"name": string,
		"notes": string,
		"template": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
formResult.companyuint64Identifier of the Company to which this object belongs.
formResult.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResult": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formResult object, or it is invalid.
4003Not enough keys exist in the formResult object.
4003During create: When creating a new FormResult, a template was not given.
4003During create: When creating a new FormResult, an asset was not a UInt64 or null.
4003During create: When creating a new FormResult, a name was not given, or it is invalid.
4003During update: When updating a FormResult, the id was invalid.
4003During update: When updating a FormResult, the name was given as blank.
4003During update: When updating a FormResult, the v was not an array, or contained too few numbers.
4003One of the formResult.fields keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to read FormTemplates.
4015You do not have permission to the Asset to which this FormResult is assigned.
4015During create: You do not have permission to create a new FormResult.
4015During update: You do not have permission to update this FormResult.
4006During update: When updating a FormResult, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420During create: The Asset was not found by its unique identifier.
40171During update: Changing the labels on this FormResult in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
40396The FormResult's assigned Asset is suspended. Before sending or updating FormResults for an Asset, it must be reactivated.
409130One of the formResult.fields values is invalid for the FormTemplate's field's FormFieldType.
409130The formResult.asset doesn't belong to the same Company as this FormResult.
409130After the FormResult.completed is set, the FormResult becomes read-only except for the FormResult.name and FormResult.notes. All other edits are rejected.
409130During update: When updating a FormResult, the formResult.template was provided as a different value.
404132During create: The FormTemplate was not found by its unique identifier.
404134During update: The FormResult was not found by its unique identifier.

DELETE/forms

Deletes an existing FormResult.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultRespDeletedAn object which contains the FormResult's id, owning Company id, and deleted status.
formResult.companyuint64Identifier of the Company to which this object belongs.
formResult.deletedbooleanFlag showing if the object is deleted.
formResult.iduint64?Identifier given as input for the command.
formResult.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResult": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formResult object, or it is invalid.
4003The formResult object does not contain an id, or it is invalid.
4015You do not have permission to delete this FormResult.
4015You do not have permission to view this FormResult's FormTemplate.
4015You do not have permission to the Asset that owns this FormResult.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns this FormResult was not found.
If you receive this error, please contact technical support.
40396The Asset that owns this FormResult is suspended. Before reading FormResults from an Asset, it must be reactivated.
404132The FormResult's FormTemplate was not found by its unique identifier.
If you receive this error, please contact technical support.
404134The FormResult was not found by its unique identifier.

GET/forms/{resultId}?includeDeleted=boolean

Gets details of the specified FormResult.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
resultIduint64requiredUnique identifier of the FormResult.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultFormResultThe requested FormResult.
formResult.assetuint64?The Asset to which this form belongs.
formResult.companyuint64The Company to which this form belongs.
formResult.completeddatetimeA timestamp from when this form was completed by a User or Asset.
formResult.driverstringClocked-in driver name who made the update. Null if not clocked-in, or no changes have been made.
formResult.fieldsObject.<uint64, string>All the values for fillable fields by index.
formResult.iduint64Unique identifier of this form.
formResult.labelsArray.<codified>
for values see: LabelStyle.code
Codified label names used to relate forms to Assets.
formResult.latlngLatLngThe coordinates of the User or Asset from when the form was completed.
formResult.latlng.latdoubleLatitude
formResult.latlng.lngdoubleLongitude
formResult.namestring
maximum-length: 100
Name of this form.
formResult.notesstringNotes about this form.
formResult.processedUtcdatetimeWhen the was change procesed.
formResult.templateuint64The FormTemplate to which this form belongs.
formResult.updatedby: login, from: monster
formResult.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResult": {
		"asset": number,
		"company": number,
		"completed": string,
		"driver": string,
		"fields": {
			string: string
		},
		"id": number,
		"labels": [
			string
		],
		"latlng": {
			"lat": number,
			"lng": number
		},
		"name": string,
		"notes": string,
		"processedUtc": string,
		"template": number,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a formResult object, or it is invalid.
4003The formResult object does not contain an id, or it is invalid.
4015You do not have permission to view this FormResult.
4015You do not have permission to view this FormResult's FormTemplate.
4015You do not have permission to the Asset that owns this FormResult.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns this FormResult was not found.
If you receive this error, please contact technical support.
40396The Asset that owns this FormResult is suspended. Before reading FormResults from an Asset, it must be reactivated.
404132The FormResult's FormTemplate was not found by its unique identifier.
If you receive this error, please contact technical support.
404134The FormResult was not found by its unique identifier.

POST/forms/{resultId}

Creates a new or updates an existing FormResult.
URL Parameters
ParameterTypeRequiredDescription
resultIduint64?optionalUnique identifier of the FormResult. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
formResultObject.<string, ?>alwaysA simple object to contain the FormResult parameters.
formResult.assetuint64?createThe unique identifier of the Asset filling out this form.
formResult.completeddatetimeoptionalA timestamp from when the FormResult was completed.
formResult.fieldsObject.<uint64, string>
maximum-length of values: 254
optionalA collection of values for the FormResult.fields. You can update parts of the collection, the FormResult must have a value for all fields in order to complete it.
formResult.iduint64?updateThe unique identifier of the FormResult you want to update.
formResult.labelsArray.<codified>
for values see: LabelStyle.code
optionalCodified label names used to relate forms to Assets.
formResult.latlngLatLngoptionalCoordinates from when the FormResult was completed.
formResult.latlng.latdoubleoptionalLatitude
formResult.latlng.lngdoubleoptionalLongitude
formResult.namestring
maximum-length: 100
optionalName for the FormResult.
formResult.notesstringoptionalNotes for the FormResult.
formResult.templateuint64?createThe unique identifier of the FormTemplate for this form.
formResult.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"formResult": {
		"asset": number,
		"completed": string,
		"fields": {
			string: string
		},
		"id": number,
		"labels": [
			string
		],
		"latlng": {
			"lat": number,
			"lng": number
		},
		"name": string,
		"notes": string,
		"template": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
formResult.companyuint64Identifier of the Company to which this object belongs.
formResult.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResult": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formResult object, or it is invalid.
4003Not enough keys exist in the formResult object.
4003During create: When creating a new FormResult, a template was not given.
4003During create: When creating a new FormResult, an asset was not a UInt64 or null.
4003During create: When creating a new FormResult, a name was not given, or it is invalid.
4003During update: When updating a FormResult, the id was invalid.
4003During update: When updating a FormResult, the name was given as blank.
4003During update: When updating a FormResult, the v was not an array, or contained too few numbers.
4003One of the formResult.fields keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to read FormTemplates.
4015You do not have permission to the Asset to which this FormResult is assigned.
4015During create: You do not have permission to create a new FormResult.
4015During update: You do not have permission to update this FormResult.
4006During update: When updating a FormResult, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420During create: The Asset was not found by its unique identifier.
40171During update: Changing the labels on this FormResult in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
40396The FormResult's assigned Asset is suspended. Before sending or updating FormResults for an Asset, it must be reactivated.
409130One of the formResult.fields values is invalid for the FormTemplate's field's FormFieldType.
409130The formResult.asset doesn't belong to the same Company as this FormResult.
409130After the FormResult.completed is set, the FormResult becomes read-only except for the FormResult.name and FormResult.notes. All other edits are rejected.
409130During update: When updating a FormResult, the formResult.template was provided as a different value.
404132During create: The FormTemplate was not found by its unique identifier.
404134During update: The FormResult was not found by its unique identifier.

DELETE/forms/{resultId}

Deletes an existing FormResult.
URL Parameters
ParameterTypeRequiredDescription
resultIduint64requiredUnique identifier of the FormResult.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultRespDeletedAn object which contains the FormResult's id, owning Company id, and deleted status.
formResult.companyuint64Identifier of the Company to which this object belongs.
formResult.deletedbooleanFlag showing if the object is deleted.
formResult.iduint64?Identifier given as input for the command.
formResult.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResult": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formResult object, or it is invalid.
4003The formResult object does not contain an id, or it is invalid.
4015You do not have permission to delete this FormResult.
4015You do not have permission to view this FormResult's FormTemplate.
4015You do not have permission to the Asset that owns this FormResult.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns this FormResult was not found.
If you receive this error, please contact technical support.
40396The Asset that owns this FormResult is suspended. Before reading FormResults from an Asset, it must be reactivated.
404132The FormResult's FormTemplate was not found by its unique identifier.
If you receive this error, please contact technical support.
404134The FormResult was not found by its unique identifier.

PATCH/forms/{resultId}/restore

Restores the specified FormResult.
URL Parameters
ParameterTypeRequiredDescription
resultIduint64requiredUnique identifier of the FormResult.
HTTP Request body description
PropertyTypeRequiredDescription
formResultParamIdalwaysAn object to contain the "id" of the FormResult.
formResult.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"formResult": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultRespDeletedAn object which contains the FormResult's id, owning Company id, and deleted status.
formResult.companyuint64Identifier of the Company to which this object belongs.
formResult.deletedbooleanFlag showing if the object is deleted.
formResult.iduint64?Identifier given as input for the command.
formResult.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResult": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formResult object, or it is invalid.
4003The formResult object does not contain an id, or it is invalid.
4015You do not have permission to restore this FormResult.
4015You do not have permission to view this FormResult's FormTemplate.
4015You do not have permission to the Asset that owns this FormResult.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns this FormResult was not found.
If you receive this error, please contact technical support.
40396The Asset that owns this FormResult is suspended. Before reading FormResults from an Asset, it must be reactivated.
404134The FormResult was not found by its unique identifier.
400135The FormResult was found, but is not marked as deleted.

GET/forms/templates?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/forms/templates.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/forms/templates

Creates a new or updates an existing FormTemplate.
HTTP Request body description
PropertyTypeRequiredDescription
formTemplateObject.<string, ?>alwaysA simple object to contain the FormTemplate parameters.
formTemplate.companyuint64?createThe Company to which this FormTemplate belongs. After creation, this value is read-only.
formTemplate.fieldsArray.<ParamFormField>optionalA collection of all the FormTemplate.fields. Any field not given in the collection will be removed.
formTemplate.fillcolour
maximum-length: 22
optionalBackground and fill colour in the UI.
formTemplate.graphiccolour
maximum-length: 22
optionalThe name of the symbol shown in the UI.
formTemplate.iduint64?updateThe unique identifier of the FormTemplate you want to update.
formTemplate.labelsArray.<codified>
for values see: LabelStyle.code
optionalCodified label names used to relate forms to Assets.
formTemplate.namestring
maximum-length: 100
optionalName for the FormTemplate.
formTemplate.notesstringoptionalNotes for the FormTemplate.
formTemplate.strokecolour
maximum-length: 22
optionalText and outline colour in the UI.
formTemplate.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"formTemplate": {
		"company": number,
		"fields": [
			{
				"choices": Object,
				"editable": boolean,
				"id": number,
				"kind": string,
				"maximum": Object,
				"minimum": Object,
				"name": string,
				"notes": string,
				"precision": number,
				"required": boolean,
				"rows": number,
				"size": string,
				"step": number,
				"units": string,
				"value": string
			}
		],
		"fill": string,
		"graphic": string,
		"id": number,
		"labels": [
			string
		],
		"name": string,
		"notes": string,
		"stroke": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplateRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
formTemplate.companyuint64Identifier of the Company to which this object belongs.
formTemplate.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplate": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formTemplate object, or it is invalid.
4003Not enough keys exist in the formTemplate object.
4003During create: When creating a new FormTemplate, a company was not given.
4003During create: When creating a new FormTemplate, a name was not given, or it is invalid.
4003During create: When creating a new FormTemplate, no formTemplate.fields were given.
4003During create: When creating a new FormTemplate, a formTemplate.fields had the ParamFormField.id value, which must be null or ommited.
4003During create: When creating a new FormTemplate, a formTemplate.fields was missing the ParamFormField.name value.
4003During create: When creating a new FormTemplate, a formTemplate.fields was missing the ParamFormField.kind value.
4003During update: When updating a FormTemplate, the id was invalid.
4003During update: When updating a FormTemplate, the name was given as blank.
4003During update: When updating a FormTemplate, the v was not an array, or contained too few numbers.
4003The formTemplate.fields list contains two (or more) fields with the same non-null ParamFormField.id.
Returns an ErrorDetailBadIds as the errorDetails.
4003During update: When updating a FormTemplate, a formTemplate.fields was not found by the given ParamFormField.id.
Returns an ErrorDetailBadIds as the errorDetails.
4003One of the formTemplate.fields is null, or an empty object.
Returns an ErrorDetailInput as the errorDetails.
4003One of the formTemplate.fields object's values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003During create: One of the ParameterContent's ParamFormField.name is blank or null.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new FormTemplate.
4015You do not have permission to update this FormTemplate.
4006During update: When updating a FormTemplate, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40171During update: Changing the labels on this FormTemplate in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
409130During update: When updating a FormTemplate, the company was provided as a different value.
409130One of the default values specified for the FormTemplate was invalid.
Returns an ErrorDetailInput as the errorDetails.
404132During update: The FormTemplate was not found by its unique identifier.

DELETE/forms/templates

Deletes an existing FormTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplateRespDeletedAn object which contains the FormTemplate's id, owning Company id, and deleted status.
formTemplate.companyuint64Identifier of the Company to which this object belongs.
formTemplate.deletedbooleanFlag showing if the object is deleted.
formTemplate.iduint64?Identifier given as input for the command.
formTemplate.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplate": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formTemplate object, or it is invalid.
4003The formTemplate object does not contain an id, or it is invalid.
4015You do not have permission to delete this FormTemplate.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404132The FormTemplate was not found by its unique identifier.
409142This FormTemplate is still in use by a FormResult.
Returns an ErrorDetailFormTemplateInUse as the errorDetails.

GET/forms/templates/{templateId}?includeDeleted=boolean

Gets details of the specified FormTemplate.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
templateIduint64requiredUnique identifier of the FormTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplateFormTemplateThe requested FormTemplate.
formTemplate.companyuint64The Company to which this form belongs.
formTemplate.fieldsArray.<FormFieldBase>All the user fillable fields by name.
formTemplate.fillcolour
maximum-length: 22
The fill/background colour of the icon.
formTemplate.graphiccodified
maximum-length: 22
The name of the symbol for this template.
formTemplate.iduint64Unique identifier of this form.
formTemplate.labelsArray.<codified>
for values see: LabelStyle.code
Codified label names used to relate forms to Assets.
formTemplate.namestring
maximum-length: 100
Name of this form.
formTemplate.notesstringNotes about this form.
formTemplate.processedUtcdatetimeWhen the was change procesed.
formTemplate.strokecolour
maximum-length: 22
Outline and graphic colour.
formTemplate.updatedby: login, from: monster
formTemplate.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplate": {
		"company": number,
		"fields": [
			{
				"editable": boolean,
				"id": number,
				"kind": string,
				"name": string,
				"notes": string,
				"required": boolean,
				"value": string
			}
		],
		"fill": string,
		"graphic": string,
		"id": number,
		"labels": [
			string
		],
		"name": string,
		"notes": string,
		"processedUtc": string,
		"stroke": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a formTemplate object, or it is invalid.
4003The formTemplate object does not contain an id, or it is invalid.
4015You do not have permission to view this FormTemplate.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404132The FormTemplate was not found by its unique identifier.

POST/forms/templates/{templateId}

Creates a new or updates an existing FormTemplate.
URL Parameters
ParameterTypeRequiredDescription
templateIduint64?optionalUnique identifier of the FormTemplate. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
formTemplateObject.<string, ?>alwaysA simple object to contain the FormTemplate parameters.
formTemplate.companyuint64?createThe Company to which this FormTemplate belongs. After creation, this value is read-only.
formTemplate.fieldsArray.<ParamFormField>optionalA collection of all the FormTemplate.fields. Any field not given in the collection will be removed.
formTemplate.fillcolour
maximum-length: 22
optionalBackground and fill colour in the UI.
formTemplate.graphiccolour
maximum-length: 22
optionalThe name of the symbol shown in the UI.
formTemplate.iduint64?updateThe unique identifier of the FormTemplate you want to update.
formTemplate.labelsArray.<codified>
for values see: LabelStyle.code
optionalCodified label names used to relate forms to Assets.
formTemplate.namestring
maximum-length: 100
optionalName for the FormTemplate.
formTemplate.notesstringoptionalNotes for the FormTemplate.
formTemplate.strokecolour
maximum-length: 22
optionalText and outline colour in the UI.
formTemplate.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"formTemplate": {
		"company": number,
		"fields": [
			{
				"choices": Object,
				"editable": boolean,
				"id": number,
				"kind": string,
				"maximum": Object,
				"minimum": Object,
				"name": string,
				"notes": string,
				"precision": number,
				"required": boolean,
				"rows": number,
				"size": string,
				"step": number,
				"units": string,
				"value": string
			}
		],
		"fill": string,
		"graphic": string,
		"id": number,
		"labels": [
			string
		],
		"name": string,
		"notes": string,
		"stroke": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplateRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
formTemplate.companyuint64Identifier of the Company to which this object belongs.
formTemplate.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplate": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formTemplate object, or it is invalid.
4003Not enough keys exist in the formTemplate object.
4003During create: When creating a new FormTemplate, a company was not given.
4003During create: When creating a new FormTemplate, a name was not given, or it is invalid.
4003During create: When creating a new FormTemplate, no formTemplate.fields were given.
4003During create: When creating a new FormTemplate, a formTemplate.fields had the ParamFormField.id value, which must be null or ommited.
4003During create: When creating a new FormTemplate, a formTemplate.fields was missing the ParamFormField.name value.
4003During create: When creating a new FormTemplate, a formTemplate.fields was missing the ParamFormField.kind value.
4003During update: When updating a FormTemplate, the id was invalid.
4003During update: When updating a FormTemplate, the name was given as blank.
4003During update: When updating a FormTemplate, the v was not an array, or contained too few numbers.
4003The formTemplate.fields list contains two (or more) fields with the same non-null ParamFormField.id.
Returns an ErrorDetailBadIds as the errorDetails.
4003During update: When updating a FormTemplate, a formTemplate.fields was not found by the given ParamFormField.id.
Returns an ErrorDetailBadIds as the errorDetails.
4003One of the formTemplate.fields is null, or an empty object.
Returns an ErrorDetailInput as the errorDetails.
4003One of the formTemplate.fields object's values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003During create: One of the ParameterContent's ParamFormField.name is blank or null.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new FormTemplate.
4015You do not have permission to update this FormTemplate.
4006During update: When updating a FormTemplate, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40171During update: Changing the labels on this FormTemplate in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
409130During update: When updating a FormTemplate, the company was provided as a different value.
409130One of the default values specified for the FormTemplate was invalid.
Returns an ErrorDetailInput as the errorDetails.
404132During update: The FormTemplate was not found by its unique identifier.

DELETE/forms/templates/{templateId}

Deletes an existing FormTemplate.
URL Parameters
ParameterTypeRequiredDescription
templateIduint64requiredUnique identifier of the FormTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplateRespDeletedAn object which contains the FormTemplate's id, owning Company id, and deleted status.
formTemplate.companyuint64Identifier of the Company to which this object belongs.
formTemplate.deletedbooleanFlag showing if the object is deleted.
formTemplate.iduint64?Identifier given as input for the command.
formTemplate.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplate": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formTemplate object, or it is invalid.
4003The formTemplate object does not contain an id, or it is invalid.
4015You do not have permission to delete this FormTemplate.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404132The FormTemplate was not found by its unique identifier.
409142This FormTemplate is still in use by a FormResult.
Returns an ErrorDetailFormTemplateInUse as the errorDetails.

PATCH/forms/templates/{templateId}/restore

Restores the specified FormTemplate.
URL Parameters
ParameterTypeRequiredDescription
templateIduint64requiredUnique identifier of the FormTemplate.
HTTP Request body description
PropertyTypeRequiredDescription
formTemplateParamIdalwaysAn object to contain the "id" of the FormTemplate.
formTemplate.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"formTemplate": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formTemplateRespDeletedAn object which contains the FormTemplate's id, owning Company id, and deleted status.
formTemplate.companyuint64Identifier of the Company to which this object belongs.
formTemplate.deletedbooleanFlag showing if the object is deleted.
formTemplate.iduint64?Identifier given as input for the command.
formTemplate.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formTemplate": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formTemplate object, or it is invalid.
4003The formTemplate object does not contain an id, or it is invalid.
4015You do not have permission to restore this FormTemplate.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404132The FormTemplate was not found by its unique identifier.
400133The FormTemplate was found, but is not marked as deleted.

GET/forms?template={uint64}&labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of FormResults for the specified FormTemplate.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
labelsstringrequiredLabels to match the FormResult.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
templateuint64requiredUnique identifier of the FormTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultsArray.<FormResult>The list of requested FormResults.
formTemplateRespIdCompanyAn object to contain the "id" of the FormTemplate to which the array of FormResults belong.
formTemplate.companyuint64Identifier of the Company to which this object belongs.
formTemplate.iduint64?Identifier given as input for the command.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResults": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"driver": string,
			"fields": {
				string: string
			},
			"id": number,
			"labels": [
				string
			],
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"processedUtc": string,
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"formTemplate": {
		"company": number,
		"id": number
	},
	"labels": [
		string
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formTemplate object, or it is invalid.
4003The formTemplate object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view FormResults.
4015You do not have permission to view the specified FormTemplate.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404132The FormTemplate that owns these FormResults was not found.

GET/forms?template={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of FormResults for the specified FormTemplate.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
templateuint64requiredUnique identifier of the FormTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
formResultsArray.<FormResult>The list of requested FormResults.
formTemplateRespIdCompanyAn object to contain the "id" of the FormTemplate to which the array of FormResults belong.
formTemplate.companyuint64Identifier of the Company to which this object belongs.
formTemplate.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"formResults": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"driver": string,
			"fields": {
				string: string
			},
			"id": number,
			"labels": [
				string
			],
			"latlng": {
				"lat": number,
				"lng": number
			},
			"name": string,
			"notes": string,
			"processedUtc": string,
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"formTemplate": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a formTemplate object, or it is invalid.
4003The formTemplate object does not contain an id, or it is invalid.
4015You do not have permission to view FormResults.
4015You do not have permission to view the specified FormTemplate.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404132The FormTemplate that owns these FormResults was not found.

GET/pictures?branch=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/pictures?branch=true.
URL Parameters
ParameterTypeRequiredDefaultDescription
branchbooleanoptionaltrueDefaults to true for this alias.
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/pictures

Creates a new or updates an existing Picture.
HTTP Request body description
PropertyTypeRequiredDescription
pictureObject.<string, ?>alwaysA simple object to contain the Picture parameters.
picture.companyuint64?createThe Company to which this Picture belongs. After creation, this value is read-only.
picture.focalsArray.<Square>optionalA list of focal points in the Picture like faces.
picture.iduint64?updateThe unique identifier of the Picture you want to update.
picture.namestring
maximum-length: 100
createThe file name of this Picture.
picture.notesstringoptionalNotes about this Picture.
picture.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"picture": {
		"company": number,
		"focals": [
			{
				"bottom": number,
				"left": number,
				"right": number,
				"top": number
			}
		],
		"id": number,
		"name": string,
		"notes": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
pictureRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
picture.companyuint64Identifier of the Company to which this object belongs.
picture.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"picture": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
5002During create: When creating a new Picture, the file size could not be determined.
If you receive this error, please contact technical support.
5002During create: When creating a new Picture, the upload was not successful.
If you receive this error, please contact technical support.
4003The request does not contain a picture object, or it is invalid.
4003Not enough keys exist in the picture object.
4003During create: When creating a new Picture, a company was not given.
4003During create: When creating a new Picture, a name was not given, or it is invalid.
4003During update: When updating a Picture, the id was invalid.
4003During update: When updating a Picture, the name was given as blank.
4003During update: When updating a Picture, the v was not an array, or contained too few numbers.
4003One of the picture.focals values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Picture.
4015You do not have permission to update this Picture.
4006During update: When updating a Picture, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40468During update: The Picture was not found by its unique identifier.
40090During create: When creating a new Picture, the given mime type is not supported.
40091During create: When creating a new Picture, the file size was too large.
Returns an ErrorDetailMinMax as the errorDetails.
409130During update: When updating a Picture, the company can not be changed.

DELETE/pictures

Deletes an existing Picture.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
pictureRespDeletedAn object which contains the Picture's id, owning Company id, and deleted status.
picture.companyuint64Identifier of the Company to which this object belongs.
picture.deletedbooleanFlag showing if the object is deleted.
picture.iduint64?Identifier given as input for the command.
picture.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"picture": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a picture object, or it is invalid.
4003The picture object does not contain an id, or it is invalid.
4015You do not have permission to delete this Picture.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40468The Picture was not found by its unique identifier.

GET/pictures/{pictureId}?includeDeleted=boolean

Gets details of the specified Picture.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
pictureIduint64requiredUnique identifier of the Picture.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
picturePictureThe requested Picture.
picture.bytesuint64The file-size on the disk.
picture.companyuint64The company to which this image belongs.
picture.focalsArray.<Square>A list of focal points in the images like faces.
picture.iduint64Unique identifier of this image.
picture.namestring
maximum-length: 100
The file name of this image.
picture.notesstringNotes about this image.
picture.processedUtcdatetimeWhen the was change procesed.
picture.sizeSizeResolution defined in pixels.
picture.size.heightdoubleHeight
picture.size.widthdoubleWidth
picture.srcstring
maximum-length: 200
The URL/path to find this image.
picture.updatedby: login, from: monster
picture.usesuint32A count of the times this image was used for something (asset, contact, task, etc).
picture.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"picture": {
		"bytes": number,
		"company": number,
		"focals": [
			{
				"bottom": number,
				"left": number,
				"right": number,
				"top": number
			}
		],
		"id": number,
		"name": string,
		"notes": string,
		"processedUtc": string,
		"size": {
			"height": number,
			"width": number
		},
		"src": string,
		"updated": {
		},
		"uses": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a picture object, or it is invalid.
4003The picture object does not contain an id, or it is invalid.
4015You do not have permission to view this Picture.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40468The Picture was not found by its unique identifier.

POST/pictures/{pictureId}

Creates a new or updates an existing Picture.
URL Parameters
ParameterTypeRequiredDescription
pictureIduint64?optionalUnique identifier of the Picture. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
pictureObject.<string, ?>alwaysA simple object to contain the Picture parameters.
picture.companyuint64?createThe Company to which this Picture belongs. After creation, this value is read-only.
picture.focalsArray.<Square>optionalA list of focal points in the Picture like faces.
picture.iduint64?updateThe unique identifier of the Picture you want to update.
picture.namestring
maximum-length: 100
createThe file name of this Picture.
picture.notesstringoptionalNotes about this Picture.
picture.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"picture": {
		"company": number,
		"focals": [
			{
				"bottom": number,
				"left": number,
				"right": number,
				"top": number
			}
		],
		"id": number,
		"name": string,
		"notes": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
pictureRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
picture.companyuint64Identifier of the Company to which this object belongs.
picture.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"picture": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
5002During create: When creating a new Picture, the file size could not be determined.
If you receive this error, please contact technical support.
5002During create: When creating a new Picture, the upload was not successful.
If you receive this error, please contact technical support.
4003The request does not contain a picture object, or it is invalid.
4003Not enough keys exist in the picture object.
4003During create: When creating a new Picture, a company was not given.
4003During create: When creating a new Picture, a name was not given, or it is invalid.
4003During update: When updating a Picture, the id was invalid.
4003During update: When updating a Picture, the name was given as blank.
4003During update: When updating a Picture, the v was not an array, or contained too few numbers.
4003One of the picture.focals values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Picture.
4015You do not have permission to update this Picture.
4006During update: When updating a Picture, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40468During update: The Picture was not found by its unique identifier.
40090During create: When creating a new Picture, the given mime type is not supported.
40091During create: When creating a new Picture, the file size was too large.
Returns an ErrorDetailMinMax as the errorDetails.
409130During update: When updating a Picture, the company can not be changed.

DELETE/pictures/{pictureId}

Deletes an existing Picture.
URL Parameters
ParameterTypeRequiredDescription
pictureIduint64requiredUnique identifier of the Picture.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
pictureRespDeletedAn object which contains the Picture's id, owning Company id, and deleted status.
picture.companyuint64Identifier of the Company to which this object belongs.
picture.deletedbooleanFlag showing if the object is deleted.
picture.iduint64?Identifier given as input for the command.
picture.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"picture": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a picture object, or it is invalid.
4003The picture object does not contain an id, or it is invalid.
4015You do not have permission to delete this Picture.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40468The Picture was not found by its unique identifier.

PATCH/pictures/{pictureId}/restore

Restores the specified Picture.
URL Parameters
ParameterTypeRequiredDescription
pictureIduint64requiredUnique identifier of the Picture.
HTTP Request body description
PropertyTypeRequiredDescription
pictureParamIdalwaysAn object to contain the "id" of the Picture.
picture.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"picture": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
pictureRespDeletedAn object which contains the Picture's id, owning Company id, and deleted status.
picture.companyuint64Identifier of the Company to which this object belongs.
picture.deletedbooleanFlag showing if the object is deleted.
picture.iduint64?Identifier given as input for the command.
picture.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"picture": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a picture object, or it is invalid.
4003The picture object does not contain an id, or it is invalid.
4015You do not have permission to restore this Picture.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40468The Picture was not found by its unique identifier.
40070The Picture was found, but is not marked as deleted.

GET/providers/{providerId}/dashcams?after=string&before=string&limit=number&kind=DashcamDataType

Gets the list of dashcam metadata for the specified Provider.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptional"{28-days-ago}"A timestamp for the earliest DashcamData metadata to retrieve.
beforedatetimeoptional"{now}"A timestamp for the most recent DashcamData metadata to retrieve.
kindDashcamDataType?optionalAn optional filter available so that only a certain kind of DashcamData is returned.
limituint16?optional1000A maximum number of DashcamData metadata to retrieve.
providerIdstringrequiredUnique identifier of the Provider.
Response description
PropertyTypeDescription
dashcamsArray.<DashcamData>The list of requested dashcam image or video metadata.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRespIdendifierAn object to contain the "id" of the Provider to which the array of dashcam image or video metadata belong.
provider.idstringIdentifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
totalsObject.<DashcamDataType, HostedTotal>Totals of hosted dashcam media as calculated at midnight.
Response structure
{
	"dashcams": [
		{
			"altitude": number,
			"asset": number,
			"bytes": number,
			"camera": number,
			"company": number,
			"end": string,
			"eventName": string,
			"fps": number,
			"guid": string,
			"heading": number,
			"kind": string,
			"latitude": number,
			"longitude": number,
			"provider": string,
			"size": {
				"height": number,
				"width": number
			},
			"speed": number,
			"start": string
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"id": string
	},
	"reqId": number,
	"totals": {
		string: {
			"bytes": number,
			"count": number,
			"newest": string,
			"oldest": string
		}
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a valid after timestamp.
4003The request does not contain a valid before timestamp.
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to view Providers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.
40398The Provider is suspended.

GET/providers/{providerId}/dashcams/live?camera=number

Gets the list of dashcam live metadata for the specified Provider.
URL Parameters
ParameterTypeRequiredDescription
camerabyte?optionalOptional camera number when multiple cameras are installed.
providerIdstringrequiredUnique identifier of the Provider.
Response description
PropertyTypeDescription
dashcamsArray.<DashcamDataLive>The list of requested dashcam live image metadata.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRespIdendifierAn object to contain the "id" of the Provider to which the array of dashcam live image metadata belong.
provider.idstringIdentifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"dashcams": [
		{
			"altitude": number,
			"asset": number,
			"bytes": number,
			"camera": number,
			"company": number,
			"dts": string,
			"heading": number,
			"kind": string,
			"latitude": number,
			"longitude": number,
			"provider": string,
			"size": {
				"height": number,
				"width": number
			},
			"speed": number
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"id": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to view Providers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.
40398The Provider is suspended.

Icons

GET/companies/{companyId}/icons?branch=boolean&trunk=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Icons for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
branchbooleanoptionalfalseWhen true the list of Icons will include any publicly available Icons from the given Company's parent(s).
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
trunkbooleanoptionaltrueWhen true the list of Icons from the given Company and all child-companies are returned. Otherwise, only Icons from the given Company are included.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Icons belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
iconsArray.<Icon>The list of requested Icons.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"icons": [
		{
			"badge": {
				"align": string,
				"anchor": {
					"x": number,
					"y": number
				},
				"colour": string
			},
			"category": string,
			"company": number,
			"global": boolean,
			"glyphs": [
				{
					"anchor": {
						"x": number,
						"y": number
					},
					"layer": string,
					"rotates": boolean,
					"size": {
						"height": number,
						"width": number
					},
					"src": string,
					"tags": [
						string
					],
					"zIndex": number
				}
			],
			"id": number,
			"label": {
				"align": string,
				"anchor": {
					"x": number,
					"y": number
				},
				"colour": string
			},
			"name": string,
			"notes": string,
			"processedUtc": string,
			"updated": {
			},
			"usage": [
				string
			],
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Icons for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/icons?branch=boolean&trunk=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/icons?branch=true.
URL Parameters
ParameterTypeRequiredDefaultDescription
branchbooleanoptionalfalseDefaults to false for this alias.
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
trunkbooleanoptionaltrueDefaults to true for this alias.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/icons

Creates a new or updates an existing Icon.
HTTP Request body description
PropertyTypeRequiredDescription
iconObject.<string, ?>alwaysA simple object to contain the Icon parameters.
icon.badgeIconLabeloptionalDefinition for the name badge beside the Icon on a map.
icon.badge.alignstringoptionalDetermines which corner of the label is attached to the anchor.
icon.badge.anchorPointoptionalThe offset from the lat/long in pixels.
icon.badge.anchor.xdoubleoptionalHorizontal coordinate
icon.badge.anchor.ydoubleoptionalVertical coordinate
icon.badge.colourstringoptionalBackground colour of the label.
icon.categorystring
maximum-length: 100
optionalA noun to describe the type of thing represented. Like Truck, Car, Trailer, Hot-Air Balloon, etc...
icon.companyuint64?createThe Company to which these Icons belongs.
icon.globalbooleanoptionalIndicates whether this Icon is available to child companies.
icon.glyphsArray.<IconGlyph>optionalThe images used to show the detail of this Icon.
icon.iduint64?updateThe unique identifier of the Icon you want to update.
icon.labelIconLabeloptionalDefinition for the name bubble above the Icon on a map.
icon.label.alignstringoptionalDetermines which corner of the label is attached to the anchor.
icon.label.anchorPointoptionalThe offset from the lat/long in pixels.
icon.label.anchor.xdoubleoptionalHorizontal coordinate
icon.label.anchor.ydoubleoptionalVertical coordinate
icon.label.colourstringoptionalBackground colour of the label.
icon.namestring
maximum-length: 100
createA specific adjective to describe the thing. Like Blue, Red, Empty, Full, etc...
icon.notesstringoptionalNotes.
icon.usageArray.<string>optionalA list of things that this Icon can be used to represent. Like asset, place, user, etc...
icon.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"icon": {
		"badge": {
			"align": string,
			"anchor": {
				"x": number,
				"y": number
			},
			"colour": string
		},
		"category": string,
		"company": number,
		"global": boolean,
		"glyphs": [
			{
				"anchor": {
					"x": number,
					"y": number
				},
				"layer": string,
				"rotates": boolean,
				"size": {
					"height": number,
					"width": number
				},
				"src": string,
				"tags": [
					string
				],
				"zIndex": number
			}
		],
		"id": number,
		"label": {
			"align": string,
			"anchor": {
				"x": number,
				"y": number
			},
			"colour": string
		},
		"name": string,
		"notes": string,
		"usage": [
			string
		],
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
iconRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
icon.companyuint64Identifier of the Company to which this object belongs.
icon.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"icon": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a icon object, or it is invalid.
4003Not enough keys exist in the icon object.
4003The icon.usage was invalid.
4003During create: When creating a new Icon, a company was not given.
4003During create: When creating a new Icon, a name was not given, or it is invalid.
4003During update: When updating a Icon, the id was invalid.
4003During update: When updating a Icon, the name was given as blank.
4003During update: When updating a Icon, the v was not an array, or contained too few numbers.
4003One of the icon.glyphs values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Icon.
4015You do not have permission to update this Icon.
4006During update: When updating a Icon, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433During update: The Icon was not found by its unique identifier.
409130During update: When updating a Icon, the company can not be changed.

DELETE/icons

Deletes an existing Icon.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
iconRespDeletedAn object which contains the Icon's id, owning Company id, and deleted status.
icon.companyuint64Identifier of the Company to which this object belongs.
icon.deletedbooleanFlag showing if the object is deleted.
icon.iduint64?Identifier given as input for the command.
icon.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"icon": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a icon object, or it is invalid.
4003The icon object does not contain an id, or it is invalid.
4015You do not have permission to delete this Icon.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433The Icon was not found by its unique identifier.

GET/icons/{iconId}?includeDeleted=boolean

Gets details of the specified Icon.
URL Parameters
ParameterTypeRequiredDescription
iconIduint64requiredUnique identifier of the Icon.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
iconIconThe requested Icon.
icon.badgeIconLabelWhere the notification will appear for a mapped icon. Such as the number of dispatches an asset is working on, or the number of dispatches at a place.
icon.badge.alignstringDetermines which corner of the label is attached to the anchor.
icon.badge.anchorPointThe offset from the lat/long in pixels.
icon.badge.anchor.xdoubleHorizontal coordinate
icon.badge.anchor.ydoubleVertical coordinate
icon.badge.colourstringBackground colour of the label.
icon.categorystring
maximum-length: 100
A noun to describe the type of thing represented. Like Truck, Car, Trailer, Hot-Air Balloon, etc...
icon.companyuint64The company to which this icon belongs.
icon.globalbooleanIndicates whether this icon is available to child companies.
icon.glyphsArray.<IconGlyph>The images used to show the detail of this icon.
icon.iduint64Unique identifier of this icon.
icon.labelIconLabelDefinition for the name bubble above the icon on a map.
icon.label.alignstringDetermines which corner of the label is attached to the anchor.
icon.label.anchorPointThe offset from the lat/long in pixels.
icon.label.anchor.xdoubleHorizontal coordinate
icon.label.anchor.ydoubleVertical coordinate
icon.label.colourstringBackground colour of the label.
icon.namestring
maximum-length: 100
A specific adjective to describe the thing. Like Blue, Red, Empty, Full, etc...
icon.notesstringNotes.
icon.processedUtcdatetimeWhen the was change procesed.
icon.updatedby: login, from: monster
icon.usageArray.<string>A list of things that this icon can be used to represent. Like asset, place, user, etc...
icon.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"icon": {
		"badge": {
			"align": string,
			"anchor": {
				"x": number,
				"y": number
			},
			"colour": string
		},
		"category": string,
		"company": number,
		"global": boolean,
		"glyphs": [
			{
				"anchor": {
					"x": number,
					"y": number
				},
				"layer": string,
				"rotates": boolean,
				"size": {
					"height": number,
					"width": number
				},
				"src": string,
				"tags": [
					string
				],
				"zIndex": number
			}
		],
		"id": number,
		"label": {
			"align": string,
			"anchor": {
				"x": number,
				"y": number
			},
			"colour": string
		},
		"name": string,
		"notes": string,
		"processedUtc": string,
		"updated": {
		},
		"usage": [
			string
		],
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a icon object, or it is invalid.
4003The icon object does not contain an id, or it is invalid.
4015You do not have permission to view this Icon.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433The Icon was not found by its unique identifier.

POST/icons/{iconId}

Creates a new or updates an existing Icon.
URL Parameters
ParameterTypeRequiredDescription
iconIduint64?optionalUnique identifier of the Icon. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
iconObject.<string, ?>alwaysA simple object to contain the Icon parameters.
icon.badgeIconLabeloptionalDefinition for the name badge beside the Icon on a map.
icon.badge.alignstringoptionalDetermines which corner of the label is attached to the anchor.
icon.badge.anchorPointoptionalThe offset from the lat/long in pixels.
icon.badge.anchor.xdoubleoptionalHorizontal coordinate
icon.badge.anchor.ydoubleoptionalVertical coordinate
icon.badge.colourstringoptionalBackground colour of the label.
icon.categorystring
maximum-length: 100
optionalA noun to describe the type of thing represented. Like Truck, Car, Trailer, Hot-Air Balloon, etc...
icon.companyuint64?createThe Company to which these Icons belongs.
icon.globalbooleanoptionalIndicates whether this Icon is available to child companies.
icon.glyphsArray.<IconGlyph>optionalThe images used to show the detail of this Icon.
icon.iduint64?updateThe unique identifier of the Icon you want to update.
icon.labelIconLabeloptionalDefinition for the name bubble above the Icon on a map.
icon.label.alignstringoptionalDetermines which corner of the label is attached to the anchor.
icon.label.anchorPointoptionalThe offset from the lat/long in pixels.
icon.label.anchor.xdoubleoptionalHorizontal coordinate
icon.label.anchor.ydoubleoptionalVertical coordinate
icon.label.colourstringoptionalBackground colour of the label.
icon.namestring
maximum-length: 100
createA specific adjective to describe the thing. Like Blue, Red, Empty, Full, etc...
icon.notesstringoptionalNotes.
icon.usageArray.<string>optionalA list of things that this Icon can be used to represent. Like asset, place, user, etc...
icon.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"icon": {
		"badge": {
			"align": string,
			"anchor": {
				"x": number,
				"y": number
			},
			"colour": string
		},
		"category": string,
		"company": number,
		"global": boolean,
		"glyphs": [
			{
				"anchor": {
					"x": number,
					"y": number
				},
				"layer": string,
				"rotates": boolean,
				"size": {
					"height": number,
					"width": number
				},
				"src": string,
				"tags": [
					string
				],
				"zIndex": number
			}
		],
		"id": number,
		"label": {
			"align": string,
			"anchor": {
				"x": number,
				"y": number
			},
			"colour": string
		},
		"name": string,
		"notes": string,
		"usage": [
			string
		],
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
iconRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
icon.companyuint64Identifier of the Company to which this object belongs.
icon.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"icon": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a icon object, or it is invalid.
4003Not enough keys exist in the icon object.
4003The icon.usage was invalid.
4003During create: When creating a new Icon, a company was not given.
4003During create: When creating a new Icon, a name was not given, or it is invalid.
4003During update: When updating a Icon, the id was invalid.
4003During update: When updating a Icon, the name was given as blank.
4003During update: When updating a Icon, the v was not an array, or contained too few numbers.
4003One of the icon.glyphs values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Icon.
4015You do not have permission to update this Icon.
4006During update: When updating a Icon, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433During update: The Icon was not found by its unique identifier.
409130During update: When updating a Icon, the company can not be changed.

DELETE/icons/{iconId}

Deletes an existing Icon.
URL Parameters
ParameterTypeRequiredDescription
iconIduint64requiredUnique identifier of the Icon.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
iconRespDeletedAn object which contains the Icon's id, owning Company id, and deleted status.
icon.companyuint64Identifier of the Company to which this object belongs.
icon.deletedbooleanFlag showing if the object is deleted.
icon.iduint64?Identifier given as input for the command.
icon.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"icon": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a icon object, or it is invalid.
4003The icon object does not contain an id, or it is invalid.
4015You do not have permission to delete this Icon.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433The Icon was not found by its unique identifier.

PATCH/icons/{iconId}/restore

Restores the specified Icon.
URL Parameters
ParameterTypeRequiredDescription
iconIduint64requiredUnique identifier of the Icon.
HTTP Request body description
PropertyTypeRequiredDescription
iconParamIdalwaysAn object to contain the "id" of the Icon.
icon.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"icon": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
iconRespDeletedAn object which contains the Icon's id, owning Company id, and deleted status.
icon.companyuint64Identifier of the Company to which this object belongs.
icon.deletedbooleanFlag showing if the object is deleted.
icon.iduint64?Identifier given as input for the command.
icon.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"icon": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a icon object, or it is invalid.
4003The icon object does not contain an id, or it is invalid.
4015You do not have permission to restore this Icon.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433The Icon was not found by its unique identifier.
40034The Icon was found, but is not marked as deleted.

Maintenance

GET/assets/{assetId}/maintenance/jobs?pending=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets a list of MaintenanceJobs by the asset.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
pendingbooleanoptionalWhen true, will include all MaintenanceJobStatus.pending and MaintenanceJobStatus.pastdue jobs.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of MaintenanceJobs belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobsArray.<MaintenanceJob>The list of requested MaintenanceJobs.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJobs": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"cost": number,
			"created": string,
			"duration": string,
			"engineHours": number,
			"garage": string,
			"id": number,
			"name": string,
			"notes": string,
			"odometer": number,
			"pictures": [
				number
			],
			"processedUtc": string,
			"reference": string,
			"schedule": number,
			"status": string,
			"technician": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4003The (optional) before date is invalid.
4003The (optional) after date is invalid.
4015You do not have permission to view this MaintenanceJob.
4015You do not have permission to view this Asset's MaintenanceJobs.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.

GET/companies/{companyId}/maintenance/jobs?pending=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets a list of MaintenanceJobs by the Company.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
pendingbooleanoptionalWhen true, will include all MaintenanceJobStatus.pending and MaintenanceJobStatus.pastdue jobs.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of MaintenanceJobs belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobsArray.<MaintenanceJob>The list of requested MaintenanceJobs.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJobs": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"cost": number,
			"created": string,
			"duration": string,
			"engineHours": number,
			"garage": string,
			"id": number,
			"name": string,
			"notes": string,
			"odometer": number,
			"pictures": [
				number
			],
			"processedUtc": string,
			"reference": string,
			"schedule": number,
			"status": string,
			"technician": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The (optional) before date is invalid.
4003The (optional) after date is invalid.
4015You do not have permission to view this MaintenanceJob.
4015You do not have permission to view any Assets in the given Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/maintenance/schedules?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of MaintenanceSchedules for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of MaintenanceSchedules belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceSchedulesArray.<MaintenanceSchedule>The list of requested MaintenanceSchedules.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceSchedules": [
		{
			"company": number,
			"cost": number,
			"duration": string,
			"fill": string,
			"garage": string,
			"graphic": string,
			"id": number,
			"intervals": {
				string: {
					"asset": number,
					"date": string,
					"engineHours": number,
					"lastJob": number,
					"odometer": number
				}
			},
			"name": string,
			"notes": string,
			"notify": [
				string
			],
			"predictionDays": number,
			"processedUtc": string,
			"recurDays": number,
			"recurDistance": number,
			"recurEngineHours": number,
			"reference": string,
			"stroke": string,
			"targets": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this MaintenanceSchedule.
4015You do not have permission to view any assets in the given Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/maintenance/jobs?pending=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/maintenance/jobs.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects retrieved from the archive.
pendingbooleanoptionalWhen true, will include all MaintenanceJobStatus.pending and MaintenanceJobStatus.pastdue jobs.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/maintenance/jobs

Creates a new or updates an existing MaintenanceJob.
HTTP Request body description
PropertyTypeRequiredDescription
maintenanceJobObject.<string, ?>alwaysA simple object to contain the MaintenanceJob parameters.
maintenanceJob.assetuint64?createThe identifier of the Asset to which this MaintenanceJob is assigned.
maintenanceJob.completeddatetimeoptionalWhen was this MaintenanceJob created.
maintenanceJob.costdouble?optionalHow much the MaintenanceJob cost in dollars.
maintenanceJob.createddatetimeoptionalWhen was this MaintenanceJob created.
maintenanceJob.durationtimespanoptionalTime it took to complete the MaintenanceJob.
maintenanceJob.engineHoursdouble?optionalThe operating time at the time of the service.
maintenanceJob.garagestring
maximum-length: 100
optionalThe name of the garage or service facility where the work is done.
maintenanceJob.iduint64?updateThe unique identifier of the MaintenanceJob you want to update.
maintenanceJob.namestring
maximum-length: 100
createThe work being done. Like "oil change".
maintenanceJob.notesstringoptionalNotes about the MaintenanceJob. Like "changed the oil and filter".
maintenanceJob.odometerdouble?optionalThe odometer at the time of the service.
maintenanceJob.picturesArray.<uint64>
for values see: Picture.id
optionalPictures taken while performing the work for reference.
maintenanceJob.referencestring
maximum-length: 100
optionalA reference code used to track this MaintenanceJob.
maintenanceJob.scheduleuint64?optionalThe MaintenanceSchedule from which this job was created
maintenanceJob.statusMaintenanceJobStatus?optionalThe status of this MaintenanceJob.
maintenanceJob.technicianstring
maximum-length: 100
optionalThe mechanic who performed the work.
maintenanceJob.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"maintenanceJob": {
		"asset": number,
		"completed": string,
		"cost": number,
		"created": string,
		"duration": string,
		"engineHours": number,
		"garage": string,
		"id": number,
		"name": string,
		"notes": string,
		"odometer": number,
		"pictures": [
			number
		],
		"reference": string,
		"schedule": number,
		"status": string,
		"technician": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobRespIdAssetAn object which contains the "id", "asset", and "company" keys.
maintenanceJob.assetuint64Identifier of the Asset to which this object belongs
maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
maintenanceJob.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJob": {
		"asset": number,
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceJob object, or it is invalid.
4003Not enough keys exist in the maintenanceJob object.
4003The given maintenanceJob.completed is too far into the future.
4003maintenanceJob.asset can not be changed
4003The given maintenanceJob.asset was invalid.
4003The given maintenanceJob.schedule was invalid.
4003The given maintenanceJob.status was invalid.
4003The given maintenanceJob.created date was invalid.
4003The given maintenanceJob.completed date was invalid.
4003The given maintenanceJob.odometer was invalid.
4003The given maintenanceJob.engineHours was invalid.
4003The given maintenanceJob.duration was invalid, or it was not positive.
4003The given maintenanceJob.cost was invalid.
4003The given maintenanceJob.pictures was invalid.
4003During create: When creating a new MaintenanceJob, a maintenanceJob.name was not given, or it is invalid.
4003During update: When updating a MaintenanceJob, the maintenanceJob.id was invalid.
4003During update: When updating a MaintenanceJob, the maintenanceJob.name was given as blank.
4003During update: When updating a MaintenanceJob, the v was not an array, or contained too few numbers.
4003One of the maintenanceJob.pictures values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new MaintenanceJob.
4015You do not have permission to update this MaintenanceJob.
4015You do not have permission to view the target Asset.
4006During update: When updating a MaintenanceJob, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40435The MaintenanceJob was not found by its unique identifier.
40437The MaintenanceSchedule was not found by its unique identifier.
40469One or more Pictures were not found by their unique identifiers.
409130The maintenanceJob.schedule and maintenanceJob.asset belong to different companies.
409130During update: When updating a MaintenanceJob, the maintenanceJob.asset can not be changed.

DELETE/maintenance/jobs

Deletes an existing MaintenanceJob.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobRespAssetDeletedAn object which contains the MaintenanceJob's id, owning Company id, related Asset id, and deleted status.
maintenanceJob.assetuint64Identifier of the Asset to which this object belongs.
maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
maintenanceJob.deletedbooleanFlag showing if the object is deleted.
maintenanceJob.iduint64?Identifier given as input for the command.
maintenanceJob.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJob": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceJob object, or it is invalid.
4003The maintenanceJob object does not contain an id, or it is invalid.
4015You do not have permission to delete this MaintenanceJob.
4015You do not have permission to view this MaintenanceJob's Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
If you receive this error, please contact technical support.
40435The MaintenanceJob was not found by its unique identifier.

GET/maintenance/jobs/{jobId}?includeDeleted=boolean

Gets details of the specified MaintenanceJob.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
jobIduint64requiredUnique identifier of the MaintenanceJob.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobMaintenanceJobThe requested MaintenanceJob.
maintenanceJob.assetuint64The Vehicle or Trailer to which this job belongs
maintenanceJob.companyuint64The company to which this Vehicle or Trailer belongs
maintenanceJob.completeddatetimeWhen was this job created.
maintenanceJob.costdoubleHow much the job cost in dollars.
maintenanceJob.createddatetimeWhen was this job created.
maintenanceJob.durationtimespanTime it took to complete the job.
maintenanceJob.engineHoursdouble?The operating time at the time of the service.
maintenanceJob.garagestring
maximum-length: 100
The name of the garage or service facility where the work is done.
maintenanceJob.iduint64Unique identifier
maintenanceJob.namestring
maximum-length: 100
The work being done. Like "oil change".
maintenanceJob.notesstringNotes about the job. Like "changed the oil and filter".
maintenanceJob.odometerdouble?The odometer at the time of the service.
maintenanceJob.picturesArray.<uint64>
for values see: Picture.id
Images taken while performing the work for reference.
maintenanceJob.processedUtcdatetimeWhen the was change procesed.
maintenanceJob.referencestring
maximum-length: 100
A reference code used to track this job
maintenanceJob.scheduleuint64?The Maintenance Schedule from which this job was created
maintenanceJob.statusMaintenanceJobStatusThe status of this job.
maintenanceJob.technicianstring
maximum-length: 100
The mechanic who performed the work.
maintenanceJob.updatedby: login, from: monster
maintenanceJob.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJob": {
		"asset": number,
		"company": number,
		"completed": string,
		"cost": number,
		"created": string,
		"duration": string,
		"engineHours": number,
		"garage": string,
		"id": number,
		"name": string,
		"notes": string,
		"odometer": number,
		"pictures": [
			number
		],
		"processedUtc": string,
		"reference": string,
		"schedule": number,
		"status": string,
		"technician": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a maintenanceJob object, or it is invalid.
4003The maintenanceJob object does not contain an id, or it is invalid.
4015You do not have permission to view this MaintenanceJob.
4015You do not have permission to view this MaintenanceJob's Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
If you receive this error, please contact technical support.
40435The MaintenanceJob was not found by its unique identifier.

POST/maintenance/jobs/{jobId}

Creates a new or updates an existing MaintenanceJob.
URL Parameters
ParameterTypeRequiredDescription
jobIduint64?optionalUnique identifier of the MaintenanceJob. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
maintenanceJobObject.<string, ?>alwaysA simple object to contain the MaintenanceJob parameters.
maintenanceJob.assetuint64?createThe identifier of the Asset to which this MaintenanceJob is assigned.
maintenanceJob.completeddatetimeoptionalWhen was this MaintenanceJob created.
maintenanceJob.costdouble?optionalHow much the MaintenanceJob cost in dollars.
maintenanceJob.createddatetimeoptionalWhen was this MaintenanceJob created.
maintenanceJob.durationtimespanoptionalTime it took to complete the MaintenanceJob.
maintenanceJob.engineHoursdouble?optionalThe operating time at the time of the service.
maintenanceJob.garagestring
maximum-length: 100
optionalThe name of the garage or service facility where the work is done.
maintenanceJob.iduint64?updateThe unique identifier of the MaintenanceJob you want to update.
maintenanceJob.namestring
maximum-length: 100
createThe work being done. Like "oil change".
maintenanceJob.notesstringoptionalNotes about the MaintenanceJob. Like "changed the oil and filter".
maintenanceJob.odometerdouble?optionalThe odometer at the time of the service.
maintenanceJob.picturesArray.<uint64>
for values see: Picture.id
optionalPictures taken while performing the work for reference.
maintenanceJob.referencestring
maximum-length: 100
optionalA reference code used to track this MaintenanceJob.
maintenanceJob.scheduleuint64?optionalThe MaintenanceSchedule from which this job was created
maintenanceJob.statusMaintenanceJobStatus?optionalThe status of this MaintenanceJob.
maintenanceJob.technicianstring
maximum-length: 100
optionalThe mechanic who performed the work.
maintenanceJob.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"maintenanceJob": {
		"asset": number,
		"completed": string,
		"cost": number,
		"created": string,
		"duration": string,
		"engineHours": number,
		"garage": string,
		"id": number,
		"name": string,
		"notes": string,
		"odometer": number,
		"pictures": [
			number
		],
		"reference": string,
		"schedule": number,
		"status": string,
		"technician": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobRespIdAssetAn object which contains the "id", "asset", and "company" keys.
maintenanceJob.assetuint64Identifier of the Asset to which this object belongs
maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
maintenanceJob.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJob": {
		"asset": number,
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceJob object, or it is invalid.
4003Not enough keys exist in the maintenanceJob object.
4003The given maintenanceJob.completed is too far into the future.
4003maintenanceJob.asset can not be changed
4003The given maintenanceJob.asset was invalid.
4003The given maintenanceJob.schedule was invalid.
4003The given maintenanceJob.status was invalid.
4003The given maintenanceJob.created date was invalid.
4003The given maintenanceJob.completed date was invalid.
4003The given maintenanceJob.odometer was invalid.
4003The given maintenanceJob.engineHours was invalid.
4003The given maintenanceJob.duration was invalid, or it was not positive.
4003The given maintenanceJob.cost was invalid.
4003The given maintenanceJob.pictures was invalid.
4003During create: When creating a new MaintenanceJob, a maintenanceJob.name was not given, or it is invalid.
4003During update: When updating a MaintenanceJob, the maintenanceJob.id was invalid.
4003During update: When updating a MaintenanceJob, the maintenanceJob.name was given as blank.
4003During update: When updating a MaintenanceJob, the v was not an array, or contained too few numbers.
4003One of the maintenanceJob.pictures values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new MaintenanceJob.
4015You do not have permission to update this MaintenanceJob.
4015You do not have permission to view the target Asset.
4006During update: When updating a MaintenanceJob, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40435The MaintenanceJob was not found by its unique identifier.
40437The MaintenanceSchedule was not found by its unique identifier.
40469One or more Pictures were not found by their unique identifiers.
409130The maintenanceJob.schedule and maintenanceJob.asset belong to different companies.
409130During update: When updating a MaintenanceJob, the maintenanceJob.asset can not be changed.

DELETE/maintenance/jobs/{jobId}

Deletes an existing MaintenanceJob.
URL Parameters
ParameterTypeRequiredDescription
jobIduint64requiredUnique identifier of the MaintenanceJob.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobRespAssetDeletedAn object which contains the MaintenanceJob's id, owning Company id, related Asset id, and deleted status.
maintenanceJob.assetuint64Identifier of the Asset to which this object belongs.
maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
maintenanceJob.deletedbooleanFlag showing if the object is deleted.
maintenanceJob.iduint64?Identifier given as input for the command.
maintenanceJob.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJob": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceJob object, or it is invalid.
4003The maintenanceJob object does not contain an id, or it is invalid.
4015You do not have permission to delete this MaintenanceJob.
4015You do not have permission to view this MaintenanceJob's Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
If you receive this error, please contact technical support.
40435The MaintenanceJob was not found by its unique identifier.

PATCH/maintenance/jobs/{jobId}/restore

Restores the specified MaintenanceJob.
URL Parameters
ParameterTypeRequiredDescription
jobIduint64requiredUnique identifier of the MaintenanceJob.
HTTP Request body description
PropertyTypeRequiredDescription
maintenanceJobParamIdalwaysAn object to contain the "id" of the MaintenanceJob.
maintenanceJob.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"maintenanceJob": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobRespAssetDeletedAn object which contains the MaintenanceJob's id, owning Company id, related Asset id, and deleted status.
maintenanceJob.assetuint64Identifier of the Asset to which this object belongs.
maintenanceJob.companyuint64Identifier of the Company to which this object belongs.
maintenanceJob.deletedbooleanFlag showing if the object is deleted.
maintenanceJob.iduint64?Identifier given as input for the command.
maintenanceJob.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJob": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceJob object, or it is invalid.
4003The maintenanceJob object does not contain an id, or it is invalid.
4015You do not have permission to restore this MaintenanceJob.
4015You do not have permission to view this MaintenanceJob's Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
If you receive this error, please contact technical support.
40435The MaintenanceJob was not found by its unique identifier.
40036The MaintenanceJob was found, but is not marked as deleted.

GET/maintenance/schedules?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/maintenance/schedules.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/maintenance/schedules

Creates a new or updates an existing MaintenanceSchedule.
HTTP Request body description
PropertyTypeRequiredDescription
maintenanceScheduleObject.<string, ?>alwaysA simple object to contain the MaintenanceSchedule parameters.
maintenanceSchedule.companyuint64?optionalThe company to which this MaintenanceSchedule. After creation, this value is read-only.
maintenanceSchedule.costdouble?optionalThe estimated cost for the created MaintenanceJob cost in dollars.
maintenanceSchedule.durationtimespanoptionalThe estimated time for the created MaintenanceJob.
maintenanceSchedule.fillstring
maximum-length: 22
optionalThe fill/background colour of the icon. Should be a hex colour in the format #RRGGBB.
maintenanceSchedule.garagestring
maximum-length: 100
optionalThe name of the garage or service facility where the work is done.
maintenanceSchedule.graphiccodified
maximum-length: 22
optionalThe name of the symbol for this report.
maintenanceSchedule.iduint64?updateThe unique identifier of the MaintenanceSchedule you want to update.
maintenanceSchedule.intervalsObject.<uint64, MaintenanceInterval>optionalThe per-Asset details calculated by the system to help predict the creation of MaintenanceJobs.
maintenanceSchedule.namestring
maximum-length: 100
createThe name of the MaintenanceSchedule.
maintenanceSchedule.notesstringoptionalNotes about the MaintenanceSchedule.
maintenanceSchedule.notifyArray.<email>optionalList of Users to send notifications.
maintenanceSchedule.predictionDaysuint32?optionalThe number of days in advance to predict a MaintenanceJob will become pending.
maintenanceSchedule.recurDaysuint32?optionalThe number of days between service visits.
maintenanceSchedule.recurDistancedouble?optionalThe amount of mileage between service visits.
maintenanceSchedule.recurEngineHoursdouble?optionalThe number of operating hours between service visits.
maintenanceSchedule.referencestring
maximum-length: 100
optionalA reference code used to track this created MaintenanceJob.
maintenanceSchedule.strokestring
maximum-length: 22
optionalOutline and graphic colour. Should be a hex colour in the format #RRGGBB.
maintenanceSchedule.targetsexpressionoptionalWhich Assets are targetted by this MaintenanceSchedule.
maintenanceSchedule.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"maintenanceSchedule": {
		"company": number,
		"cost": number,
		"duration": string,
		"fill": string,
		"garage": string,
		"graphic": string,
		"id": number,
		"intervals": {
			string: {
				"asset": number,
				"date": string,
				"engineHours": number,
				"lastJob": number,
				"odometer": number
			}
		},
		"name": string,
		"notes": string,
		"notify": [
			string
		],
		"predictionDays": number,
		"recurDays": number,
		"recurDistance": number,
		"recurEngineHours": number,
		"reference": string,
		"stroke": string,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceScheduleRespIdCompanyAn object which contains the "id" and "company" keys.
maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
maintenanceSchedule.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceSchedule": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceSchedule object, or it is invalid.
4003Not enough keys exist in the maintenanceSchedule object.
4003The maintenanceSchedule.name was not given, or it is invalid.
4003The maintenanceSchedule.notify was invalid.
4003The maintenanceSchedule.predictionDays was invalid, or the value was not between 5 and 180.
4003The maintenanceSchedule.recurDays was invalid.
4003The maintenanceSchedule.recurDistance was invalid.
4003The maintenanceSchedule.recurEngineHours was invalid.
4003The maintenanceSchedule.intervals was invalid.
4003The maintenanceSchedule.duration was invalid, or it was not positive.
4003The maintenanceSchedule.cost was invalid.
4003The maintenanceSchedule.notify was invalid.
4003One of the maintenanceSchedule.notify values was invalid.
4003The maintenanceSchedule.intervals was invalid.
4003One of the maintenanceSchedule.intervals values was invalid.
4003During create: The maintenanceSchedule.company was invalid.
4003During create: When creating a MaintenanceSchedule, the maintenanceSchedule.targets was invalid.
4003During update: When updating a MaintenanceSchedule, the maintenanceSchedule.id was invalid.
4003During update: When updating a MaintenanceSchedule, the maintenanceSchedule.name was given as blank.
4003During update: When updating a MaintenanceSchedule, the v was not an array, or contained too few numbers.
4015You do not have permission to create a new MaintenanceSchedule.
4015You do not have permission to update this MaintenanceSchedule.
4015You do not have permission to view one of the Assets in a given maintenanceSchedule.intervals.
4006During update: When updating a MaintenanceSchedule, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40437The MaintenanceSchedule was not found by its unique identifier.
409130During update: When updating a MaintenanceSchedule, the maintenanceSchedule.companycompany was provided as a different value.

DELETE/maintenance/schedules

Deletes an existing MaintenanceSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceScheduleRespDeletedAn object which contains the MaintenanceSchedule's unique identifier and deleted status.
maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
maintenanceSchedule.deletedbooleanFlag showing if the object is deleted.
maintenanceSchedule.iduint64?Identifier given as input for the command.
maintenanceSchedule.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceSchedule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceSchedule object, or it is invalid.
4003The maintenanceSchedule object does not contain an id, or it is invalid.
4015You do not have permission to delete this MaintenanceSchedule.
4015You do not have permission to view any Assets targeted by this MaintenanceSchedule.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40437The MaintenanceSchedule was not found by its unique identifier.

GET/maintenance/schedules/{scheduleId}?includeDeleted=boolean

Gets details of the specified MaintenanceSchedule.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
scheduleIduint64requiredUnique identifier of the MaintenanceSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceScheduleMaintenanceScheduleThe requested MaintenanceSchedule.
maintenanceSchedule.companyuint64The company to which this schedule belongs
maintenanceSchedule.costdoubleThe estimated cost for the job cost in dollars.
maintenanceSchedule.durationtimespanThe estimated time for the job.
maintenanceSchedule.fillcolour
maximum-length: 22
The fill/background colour of the icon.
maintenanceSchedule.garagestring
maximum-length: 100
The name of the garage or service facility where the work is done.
maintenanceSchedule.graphiccodified
maximum-length: 22
The name of the symbol for this schedule.
maintenanceSchedule.iduint64Unique identifier
maintenanceSchedule.intervalsObject.<uint64, MaintenanceInterval>
for keys see: Asset.id
The per-asset details calculated by the system to help predict the creation of Maintenance Jobs.
maintenanceSchedule.namestring
maximum-length: 100
The name of the work to be done. Like "oil change".
maintenanceSchedule.notesstringNotes about the work to be done. Like "change the oil and oil filter".
maintenanceSchedule.notifyArray.<email>
for values see: User.login
List of Users to send notifications.
maintenanceSchedule.predictionDaysuint32The number of days in advance to predict a job will become pending.
maintenanceSchedule.processedUtcdatetimeWhen the was change procesed.
maintenanceSchedule.recurDaysuint32?The number of days between service visits.
maintenanceSchedule.recurDistancedouble?The amount of mileage between service visits.
maintenanceSchedule.recurEngineHoursdouble?The number of operating hours between service visits.
maintenanceSchedule.referencestring
maximum-length: 100
A reference code used to track this job
maintenanceSchedule.strokecolour
maximum-length: 22
Outline and graphic colour.
maintenanceSchedule.targetsexpressionThe targeting expression to select which Vehicles and Trailers require this maintenance work.
maintenanceSchedule.updatedby: login, from: monster
maintenanceSchedule.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceSchedule": {
		"company": number,
		"cost": number,
		"duration": string,
		"fill": string,
		"garage": string,
		"graphic": string,
		"id": number,
		"intervals": {
			string: {
				"asset": number,
				"date": string,
				"engineHours": number,
				"lastJob": number,
				"odometer": number
			}
		},
		"name": string,
		"notes": string,
		"notify": [
			string
		],
		"predictionDays": number,
		"processedUtc": string,
		"recurDays": number,
		"recurDistance": number,
		"recurEngineHours": number,
		"reference": string,
		"stroke": string,
		"targets": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a maintenanceSchedule object, or it is invalid.
4003The maintenanceSchedule object does not contain an id, or it is invalid.
4015You do not have permission to view this MaintenanceSchedule.
4015You do not have permission to view any assets in the given Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40437The MaintenanceSchedule was not found by its unique identifier.

POST/maintenance/schedules/{scheduleId}

Creates a new or updates an existing MaintenanceSchedule.
URL Parameters
ParameterTypeRequiredDescription
scheduleIduint64?optionalUnique identifier of the MaintenanceSchedule. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
maintenanceScheduleObject.<string, ?>alwaysA simple object to contain the MaintenanceSchedule parameters.
maintenanceSchedule.companyuint64?optionalThe company to which this MaintenanceSchedule. After creation, this value is read-only.
maintenanceSchedule.costdouble?optionalThe estimated cost for the created MaintenanceJob cost in dollars.
maintenanceSchedule.durationtimespanoptionalThe estimated time for the created MaintenanceJob.
maintenanceSchedule.fillstring
maximum-length: 22
optionalThe fill/background colour of the icon. Should be a hex colour in the format #RRGGBB.
maintenanceSchedule.garagestring
maximum-length: 100
optionalThe name of the garage or service facility where the work is done.
maintenanceSchedule.graphiccodified
maximum-length: 22
optionalThe name of the symbol for this report.
maintenanceSchedule.iduint64?updateThe unique identifier of the MaintenanceSchedule you want to update.
maintenanceSchedule.intervalsObject.<uint64, MaintenanceInterval>optionalThe per-Asset details calculated by the system to help predict the creation of MaintenanceJobs.
maintenanceSchedule.namestring
maximum-length: 100
createThe name of the MaintenanceSchedule.
maintenanceSchedule.notesstringoptionalNotes about the MaintenanceSchedule.
maintenanceSchedule.notifyArray.<email>optionalList of Users to send notifications.
maintenanceSchedule.predictionDaysuint32?optionalThe number of days in advance to predict a MaintenanceJob will become pending.
maintenanceSchedule.recurDaysuint32?optionalThe number of days between service visits.
maintenanceSchedule.recurDistancedouble?optionalThe amount of mileage between service visits.
maintenanceSchedule.recurEngineHoursdouble?optionalThe number of operating hours between service visits.
maintenanceSchedule.referencestring
maximum-length: 100
optionalA reference code used to track this created MaintenanceJob.
maintenanceSchedule.strokestring
maximum-length: 22
optionalOutline and graphic colour. Should be a hex colour in the format #RRGGBB.
maintenanceSchedule.targetsexpressionoptionalWhich Assets are targetted by this MaintenanceSchedule.
maintenanceSchedule.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"maintenanceSchedule": {
		"company": number,
		"cost": number,
		"duration": string,
		"fill": string,
		"garage": string,
		"graphic": string,
		"id": number,
		"intervals": {
			string: {
				"asset": number,
				"date": string,
				"engineHours": number,
				"lastJob": number,
				"odometer": number
			}
		},
		"name": string,
		"notes": string,
		"notify": [
			string
		],
		"predictionDays": number,
		"recurDays": number,
		"recurDistance": number,
		"recurEngineHours": number,
		"reference": string,
		"stroke": string,
		"targets": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceScheduleRespIdCompanyAn object which contains the "id" and "company" keys.
maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
maintenanceSchedule.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceSchedule": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceSchedule object, or it is invalid.
4003Not enough keys exist in the maintenanceSchedule object.
4003The maintenanceSchedule.name was not given, or it is invalid.
4003The maintenanceSchedule.notify was invalid.
4003The maintenanceSchedule.predictionDays was invalid, or the value was not between 5 and 180.
4003The maintenanceSchedule.recurDays was invalid.
4003The maintenanceSchedule.recurDistance was invalid.
4003The maintenanceSchedule.recurEngineHours was invalid.
4003The maintenanceSchedule.intervals was invalid.
4003The maintenanceSchedule.duration was invalid, or it was not positive.
4003The maintenanceSchedule.cost was invalid.
4003The maintenanceSchedule.notify was invalid.
4003One of the maintenanceSchedule.notify values was invalid.
4003The maintenanceSchedule.intervals was invalid.
4003One of the maintenanceSchedule.intervals values was invalid.
4003During create: The maintenanceSchedule.company was invalid.
4003During create: When creating a MaintenanceSchedule, the maintenanceSchedule.targets was invalid.
4003During update: When updating a MaintenanceSchedule, the maintenanceSchedule.id was invalid.
4003During update: When updating a MaintenanceSchedule, the maintenanceSchedule.name was given as blank.
4003During update: When updating a MaintenanceSchedule, the v was not an array, or contained too few numbers.
4015You do not have permission to create a new MaintenanceSchedule.
4015You do not have permission to update this MaintenanceSchedule.
4015You do not have permission to view one of the Assets in a given maintenanceSchedule.intervals.
4006During update: When updating a MaintenanceSchedule, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset was not found by its unique identifier.
40437The MaintenanceSchedule was not found by its unique identifier.
409130During update: When updating a MaintenanceSchedule, the maintenanceSchedule.companycompany was provided as a different value.

DELETE/maintenance/schedules/{scheduleId}

Deletes an existing MaintenanceSchedule.
URL Parameters
ParameterTypeRequiredDescription
scheduleIduint64requiredUnique identifier of the MaintenanceSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceScheduleRespDeletedAn object which contains the MaintenanceSchedule's unique identifier and deleted status.
maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
maintenanceSchedule.deletedbooleanFlag showing if the object is deleted.
maintenanceSchedule.iduint64?Identifier given as input for the command.
maintenanceSchedule.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceSchedule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceSchedule object, or it is invalid.
4003The maintenanceSchedule object does not contain an id, or it is invalid.
4015You do not have permission to delete this MaintenanceSchedule.
4015You do not have permission to view any Assets targeted by this MaintenanceSchedule.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40437The MaintenanceSchedule was not found by its unique identifier.

GET/maintenance/schedules/{scheduleId}/jobs?pending=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets a list of MaintenanceJobs by the schedule under which they were created/completed.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
pendingbooleanoptionalWhen true, will include all MaintenanceJobStatus.pending and MaintenanceJobStatus.pastdue jobs.
scheduleIduint64requiredUnique identifier of the MaintenanceSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceJobsArray.<MaintenanceJob>The list of requested MaintenanceJobs.
maintenanceScheduleRespIdCompanyAn object to contain the "id" of the MaintenanceSchedule to which the array of MaintenanceJobs belong.
maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
maintenanceSchedule.iduint64?Identifier given as input for the command.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceJobs": [
		{
			"asset": number,
			"company": number,
			"completed": string,
			"cost": number,
			"created": string,
			"duration": string,
			"engineHours": number,
			"garage": string,
			"id": number,
			"name": string,
			"notes": string,
			"odometer": number,
			"pictures": [
				number
			],
			"processedUtc": string,
			"reference": string,
			"schedule": number,
			"status": string,
			"technician": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"maintenanceSchedule": {
		"company": number,
		"id": number
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceSchedule object, or it is invalid.
4003The maintenanceSchedule object does not contain an id, or it is invalid.
4003The (optional) before date is invalid.
4003The (optional) after date is invalid.
4015You do not have permission to view this MaintenanceJob.
4015You do not have permission to view any Assets in the given Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40437The MaintenanceSchedule was not found by its unique identifier.

PATCH/maintenance/schedules/{scheduleId}/restore

Restores the specified MaintenanceSchedule.
URL Parameters
ParameterTypeRequiredDescription
scheduleIduint64requiredUnique identifier of the MaintenanceSchedule.
HTTP Request body description
PropertyTypeRequiredDescription
maintenanceScheduleParamIdalwaysAn object to contain the "id" of the MaintenanceSchedule.
maintenanceSchedule.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"maintenanceSchedule": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
maintenanceScheduleRespDeletedAn object which contains the MaintenanceSchedule's unique identifier and deleted status.
maintenanceSchedule.companyuint64Identifier of the Company to which this object belongs.
maintenanceSchedule.deletedbooleanFlag showing if the object is deleted.
maintenanceSchedule.iduint64?Identifier given as input for the command.
maintenanceSchedule.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"maintenanceSchedule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a maintenanceSchedule object, or it is invalid.
4003The maintenanceSchedule object does not contain an id, or it is invalid.
4015You do not have permission to restore this MaintenanceSchedule.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40437The MaintenanceSchedule was not found by its unique identifier.
40038The MaintenanceSchedule was found, but is not marked as deleted.

Messaging

GET/assets/{assetId}/messages?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of AssetMessages for the specified Asset.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
assetIduint64requiredUnique identifier of the Asset.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetRespIdCompanyAn object to contain the "id" of the Asset to which the array of AssetMessages belong.
asset.companyuint64Identifier of the Company to which this object belongs.
asset.iduint64?Identifier given as input for the command.
assetMessagesArray.<AssetMessage>The list of requested AssetMessages.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"asset": {
		"company": number,
		"id": number
	},
	"assetMessages": [
		{
			"asset": number,
			"body": string,
			"company": number,
			"delivered": string,
			"folder": string,
			"from": string,
			"id": number,
			"incoming": boolean,
			"kind": string,
			"processed": string,
			"processedUtc": string,
			"readBy": string,
			"status": string,
			"subject": string,
			"to": string,
			"updated": {
			},
			"user": string,
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request contains a folder value, but it is not valid.
4003The request does not contain a asset object, or it is invalid.
4003The asset object does not contain an id, or it is invalid.
4015You do not have permission to view AssetMessages.
4015You do not have permission to view the specified Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns this message was not found.
40396The Asset that owns this message is suspended. Before reading messages from a Asset, it must be reactivated.

GET/assets/messages?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/assets/messages.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects retrieved from the archive.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/assets/messages

Creates a new or updates an existing AssetMessage.
HTTP Request body description
PropertyTypeRequiredDescription
assetMessageObject.<string, ?>alwaysA simple object to contain the AssetMessage parameters.
assetMessage.assetuint64?createThe Asset that this AssetMessage was sent from or to. After creation, this value is read-only.
assetMessage.bodystringcreateThe body of the AssetMessage. After creation, this value is read-only.
assetMessage.folderMessageFolder?optionalThe folder where this AssetMessage is stored.
assetMessage.iduint64?updateThe unique identifier of the AssetMessage you want to update.
assetMessage.kindMessageType?createThe kind of protocol used for this AssetMessage. After creation, this value is read-only.
assetMessage.readbooleanoptionalSet to true to log that the AssetMessage was received and read by yourself. Once set, the AssetMessage.readBy value will be your login, and cannot be set by anyone else.
assetMessage.subjectstringoptionalThe AssetMessage subject field. After creation, this value is read-only. This is used exclusively with MessageType.email type AssetMessages.
assetMessage.tostringcreateOptional to address used when creating the AssetMessage if no messaging address is available. After creation, this value is read-only.
assetMessage.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"assetMessage": {
		"asset": number,
		"body": string,
		"folder": string,
		"id": number,
		"kind": string,
		"read": boolean,
		"subject": string,
		"to": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetMessageRespIdAssetAn object which contains the "id", "company", and "asset" keys when there is no error.
assetMessage.assetuint64Identifier of the Asset to which this object belongs
assetMessage.companyuint64Identifier of the Company to which this object belongs.
assetMessage.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetMessage": {
		"asset": number,
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain an assetMessage object, or it is invalid.
4003Not enough keys exist in the assetMessage object.
4003The folder was given, but is invalid.
4003During create: When creating a new AssetMessage, an assetMessage.asset was not given.
4003During create: When creating a new AssetMessage, a assetMessage.kind was not given.
4003During create: When creating a new AssetMessage, the assetMessage.kind was an invalid value.
4003During update: When updating a AssetMessage, the assetMessage.id was invalid.
4003During update: When updating a AssetMessage, the v was not an array, or contained too few numbers.
4003During update after read: When updating a AssetMessage after it has been read, the readBy field can not be changed.
4015You do not have permission to view the Asset to which the AssetMessage belongs.
4015During create: You do not have permission to send new AssetMessages.
4015During update: You do not have permission to update AssetMessages.
4006During update: When updating a AssetMessage, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420During create: The Asset that owns this AssetMessage was not found.
40463During update: The AssetMessage was not found by its unique identifier.
40396During create: The Asset that owns this AssetMessage is suspended. Before sending or updating AssetMessages from a Asset, it must be reactivated.
409130During update: When updating a AssetMessage, the asset can not be changed.
409130During update: When updating a AssetMessage, the kind field can not be changed.
409130During update: When updating a AssetMessage, the to field can not be changed.
409130During update after sent: When updating a AssetMessage after processing, the subject field can not be changed.
409130During update after sent: When updating a AssetMessage after processing, the body field can not be changed.

DELETE/assets/messages

Deletes an existing AssetMessage.
Response description
PropertyTypeDescription
assetMessageRespAssetDeletedAn object which contains the AssetMessage's id, owning Company id, and deleted status.
assetMessage.assetuint64Identifier of the Asset to which this object belongs.
assetMessage.companyuint64Identifier of the Company to which this object belongs.
assetMessage.deletedbooleanFlag showing if the object is deleted.
assetMessage.iduint64?Identifier given as input for the command.
assetMessage.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetMessage": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a assetMessage object, or it is invalid.
4003The assetMessage object does not contain an id, or it is invalid.
4015You do not have permission to delete AssetMessages.
4015You do not have permission to view the asset to which the AssetMessage belongs.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The asset that owns this AssetMessage was not found.
If you receive this error, please contact technical support.
40463The AssetMessage was not found by its unique identifier.
40396The asset that owns this AssetMessage is suspended. Before reading AssetMessages from an Asset, it must be reactivated.

GET/assets/messages/{msgId}?includeDeleted=boolean

Gets details of the specified AssetMessage.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
msgIduint64requiredUnique identifier of the AssetMessage.
Response description
PropertyTypeDescription
assetMessageAssetMessageThe requested AssetMessage.
assetMessage.assetuint64The asset to which this message relates.
assetMessage.bodystringThe main contents of the memo.
assetMessage.companyuint64The company to which this memo belongs.
assetMessage.delivereddatetimeDate/time stamp of when the memo was delivered (or sent if delivery information unavailable).
assetMessage.folderMessageFolderThe folder under which this message is stored.
assetMessage.fromstring
maximum-length: 254
minimum-length: 6
Sender address
assetMessage.iduint64Unique identifier of this memo.
assetMessage.incomingbooleanIndicates that this is a received message instead of a sent message.
assetMessage.kindMessageTypeProtocol type
assetMessage.processeddatetimeDate/time stamp of when the memo was processed.
assetMessage.processedUtcdatetimeWhen the was change procesed.
assetMessage.readByemail
maximum-length: 254
The user that read this message. This field is blank/null when unread.
assetMessage.statusMessageStatusLifetime status
assetMessage.subjectstring
maximum-length: 100
The subject of this message.
assetMessage.tostring
maximum-length: 254
minimum-length: 6
Recipient address
assetMessage.updatedby: login, from: monster
assetMessage.useremail
maximum-length: 254
The user who sent/received this message.
assetMessage.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetMessage": {
		"asset": number,
		"body": string,
		"company": number,
		"delivered": string,
		"folder": string,
		"from": string,
		"id": number,
		"incoming": boolean,
		"kind": string,
		"processed": string,
		"processedUtc": string,
		"readBy": string,
		"status": string,
		"subject": string,
		"to": string,
		"updated": {
		},
		"user": string,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a assetMessage object, or it is invalid.
4003The assetMessage object does not contain an id, or it is invalid.
4015You do not have permission to view the AssetMessages.
4015You do not have permission to view the Asset to which the AssetMessage belongs.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns this AssetMessage was not found.
If you receive this error, please contact technical support.
40463The AssetMessage was not found by its unique identifier.
40396The Asset that owns this AssetMessage is suspended. Before reading AssetMessages from an Asset, it must be reactivated.

POST/assets/messages/{msgId}

Creates a new or updates an existing AssetMessage.
URL Parameters
ParameterTypeRequiredDescription
msgIduint64?optionalUnique identifier of the AssetMessage. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
assetMessageObject.<string, ?>alwaysA simple object to contain the AssetMessage parameters.
assetMessage.assetuint64?createThe Asset that this AssetMessage was sent from or to. After creation, this value is read-only.
assetMessage.bodystringcreateThe body of the AssetMessage. After creation, this value is read-only.
assetMessage.folderMessageFolder?optionalThe folder where this AssetMessage is stored.
assetMessage.iduint64?updateThe unique identifier of the AssetMessage you want to update.
assetMessage.kindMessageType?createThe kind of protocol used for this AssetMessage. After creation, this value is read-only.
assetMessage.readbooleanoptionalSet to true to log that the AssetMessage was received and read by yourself. Once set, the AssetMessage.readBy value will be your login, and cannot be set by anyone else.
assetMessage.subjectstringoptionalThe AssetMessage subject field. After creation, this value is read-only. This is used exclusively with MessageType.email type AssetMessages.
assetMessage.tostringcreateOptional to address used when creating the AssetMessage if no messaging address is available. After creation, this value is read-only.
assetMessage.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"assetMessage": {
		"asset": number,
		"body": string,
		"folder": string,
		"id": number,
		"kind": string,
		"read": boolean,
		"subject": string,
		"to": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetMessageRespIdAssetAn object which contains the "id", "company", and "asset" keys when there is no error.
assetMessage.assetuint64Identifier of the Asset to which this object belongs
assetMessage.companyuint64Identifier of the Company to which this object belongs.
assetMessage.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetMessage": {
		"asset": number,
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain an assetMessage object, or it is invalid.
4003Not enough keys exist in the assetMessage object.
4003The folder was given, but is invalid.
4003During create: When creating a new AssetMessage, an assetMessage.asset was not given.
4003During create: When creating a new AssetMessage, a assetMessage.kind was not given.
4003During create: When creating a new AssetMessage, the assetMessage.kind was an invalid value.
4003During update: When updating a AssetMessage, the assetMessage.id was invalid.
4003During update: When updating a AssetMessage, the v was not an array, or contained too few numbers.
4003During update after read: When updating a AssetMessage after it has been read, the readBy field can not be changed.
4015You do not have permission to view the Asset to which the AssetMessage belongs.
4015During create: You do not have permission to send new AssetMessages.
4015During update: You do not have permission to update AssetMessages.
4006During update: When updating a AssetMessage, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420During create: The Asset that owns this AssetMessage was not found.
40463During update: The AssetMessage was not found by its unique identifier.
40396During create: The Asset that owns this AssetMessage is suspended. Before sending or updating AssetMessages from a Asset, it must be reactivated.
409130During update: When updating a AssetMessage, the asset can not be changed.
409130During update: When updating a AssetMessage, the kind field can not be changed.
409130During update: When updating a AssetMessage, the to field can not be changed.
409130During update after sent: When updating a AssetMessage after processing, the subject field can not be changed.
409130During update after sent: When updating a AssetMessage after processing, the body field can not be changed.

DELETE/assets/messages/{msgId}

Deletes an existing AssetMessage.
URL Parameters
ParameterTypeRequiredDescription
msgIduint64requiredUnique identifier of the AssetMessage.
Response description
PropertyTypeDescription
assetMessageRespAssetDeletedAn object which contains the AssetMessage's id, owning Company id, and deleted status.
assetMessage.assetuint64Identifier of the Asset to which this object belongs.
assetMessage.companyuint64Identifier of the Company to which this object belongs.
assetMessage.deletedbooleanFlag showing if the object is deleted.
assetMessage.iduint64?Identifier given as input for the command.
assetMessage.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetMessage": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a assetMessage object, or it is invalid.
4003The assetMessage object does not contain an id, or it is invalid.
4015You do not have permission to delete AssetMessages.
4015You do not have permission to view the asset to which the AssetMessage belongs.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The asset that owns this AssetMessage was not found.
If you receive this error, please contact technical support.
40463The AssetMessage was not found by its unique identifier.
40396The asset that owns this AssetMessage is suspended. Before reading AssetMessages from an Asset, it must be reactivated.

PATCH/assets/messages/{msgId}/restore

Restores the specified AssetMessage to its previous version.
URL Parameters
ParameterTypeRequiredDescription
msgIduint64requiredUnique identifier of the AssetMessage.
HTTP Request body description
PropertyTypeRequiredDescription
assetMessageParamIdalwaysAn object to contain the "id" key.
assetMessage.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"assetMessage": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
assetMessageRespAssetDeletedAn object which contains the AssetMessage's id, owning Company id, and deleted status.
assetMessage.assetuint64Identifier of the Asset to which this object belongs.
assetMessage.companyuint64Identifier of the Company to which this object belongs.
assetMessage.deletedbooleanFlag showing if the object is deleted.
assetMessage.iduint64?Identifier given as input for the command.
assetMessage.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetMessage": {
		"asset": number,
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a assetMessage object, or it is invalid.
4003The assetMessage object does not contain an id, or it is invalid.
4015You do not have permission to restore AssetMessages.
4015You do not have permission to view the Asset to which the AssetMessage belongs.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The Asset that owns this AssetMessage was not found.
If you receive this error, please contact technical support.
40463The AssetMessage was not found by its unique identifier.
40396The Asset that owns this AssetMessage is suspended. Before reading AssetMessages from an Asset, it must be reactivated.
400101The AssetMessage was found, but is not marked as deleted.

GET/companies/{companyId}/assets/messages?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of AssetMessages for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
assetMessagesArray.<AssetMessage>The list of requested AssetMessages.
companyRespIdAn object to contain the "id" of the Company to which the array of AssetMessages belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"assetMessages": [
		{
			"asset": number,
			"body": string,
			"company": number,
			"delivered": string,
			"folder": string,
			"from": string,
			"id": number,
			"incoming": boolean,
			"kind": string,
			"processed": string,
			"processedUtc": string,
			"readBy": string,
			"status": string,
			"subject": string,
			"to": string,
			"updated": {
			},
			"user": string,
			"v": [
				number
			]
		}
	],
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request contains a folder value, but it is not valid.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Assets in the given Company.
4015You do not have permission to view AssetMessages.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found.

Places

GET/companies/{companyId}/places?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Places for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Places belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placesArray.<Place>The list of requested Places.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"places": [
		{
			"address": string,
			"anchor": {
				"lat": number,
				"lng": number
			},
			"colour": string,
			"company": number,
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"name": string,
			"notes": string,
			"pictures": [
				number
			],
			"processedUtc": string,
			"radius": number,
			"reference": string,
			"shape": [
				{
					"lat": number,
					"lng": number
				}
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view any Places for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/places?labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Places for the specified Company only if the Place.labels matches all of the given labels.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
labelsstringrequiredLabels to match the Place.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Places belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
labelsArray.<string>The labels given as input.
messagestringAn English description of the error.
placesArray.<Place>The list of requested Places.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"labels": [
		string
	],
	"message": string,
	"places": [
		{
			"address": string,
			"anchor": {
				"lat": number,
				"lng": number
			},
			"colour": string,
			"company": number,
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"name": string,
			"notes": string,
			"pictures": [
				number
			],
			"processedUtc": string,
			"radius": number,
			"reference": string,
			"shape": [
				{
					"lat": number,
					"lng": number
				}
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The labels is not an array.
4015You do not have permission to view any Places for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/places?reference={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Places for the specified Company only if the Place reference field is a match.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
referencestringrequiredValue to search in the Place.reference field.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Places belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placesArray.<Place>The list of requested Places.
referencestringThe reference string given as input.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"places": [
		{
			"address": string,
			"anchor": {
				"lat": number,
				"lng": number
			},
			"colour": string,
			"company": number,
			"icon": number,
			"id": number,
			"kind": string,
			"labels": [
				string
			],
			"name": string,
			"notes": string,
			"pictures": [
				number
			],
			"processedUtc": string,
			"radius": number,
			"reference": string,
			"shape": [
				{
					"lat": number,
					"lng": number
				}
			],
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reference": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4003The reference is blank or null.
4015You do not have permission to view any Places for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/places?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/places.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/places

Creates a new, or updates an existing Place.
HTTP Request body description
PropertyTypeRequiredDescription
placeObject.<string, ?>alwaysA simple object to contain the Place parameters.
place.addressstringoptionalFull street address including province/state, country, and postal/zip code.
place.anchorLatLngoptionalCentral lat/long coordinates. When not present, the shape centre is used for routing.
place.anchor.latdoubleoptionalLatitude
place.anchor.lngdoubleoptionalLongitude
place.colourcolour
maximum-length: 22
optionalThe fill colour given to this Place for easy visual identification on the map.
place.companyuint64?createThe Company to which this Place belongs. After creation, this value is read-only.
place.iconuint64?
see: Icon.id
createThe Icon used to display this POI in lists and on the map.
place.iduint64?updateThe unique identifier of the Place you want to update.
place.kindPlaceType?createThe kind of shape being created.
place.labelsArray.<codified>
for values see: LabelStyle.code
optionalThe codified names of labels
place.namestring
maximum-length: 100
createName for the Place.
place.notesstringoptionalNotes for the Place.
place.picturesArray.<uint64>
for values see: Picture.id
optionalThe identifiers of Pictures of this Place.
place.radiusdouble?create (radial)Boundary threshold (in meters)
place.referencestring
maximum-length: 100
optionalA custom field used to refer to an external system.
place.shapeArray.<LatLng>create (rectangle or polygon)For a PlaceType.rectangle, the input contains the north east and south west corner coordinates. For a PlaceType.polygon, the input lists all coordinates (oriented as counter-clockwise) needed to draw the geofence.
place.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"place": {
		"address": string,
		"anchor": {
			"lat": number,
			"lng": number
		},
		"colour": string,
		"company": number,
		"icon": number,
		"id": number,
		"kind": string,
		"labels": [
			string
		],
		"name": string,
		"notes": string,
		"pictures": [
			number
		],
		"radius": number,
		"reference": string,
		"shape": [
			{
				"lat": number,
				"lng": number
			}
		],
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placeRespIdCompanyAn object which contains the "id" and "company" keys.
place.companyuint64Identifier of the Company to which this object belongs.
place.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"place": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a place object, or it is invalid.
4003No valid changes would be performed.
4003For a PlaceType.rectangle shape, the shape has fewer than 2 coordinates.
4003For a PlaceType.polygon shape, the shape has fewer than 3 coordinates.
4003During create: When creating a new Place, a name was not given.
4003During create: When creating a new Place, a company was not given.
4003During create: When creating a new Place, an icon was not given.
4003During update: When updating a Place, the name was given as null or blank.
4003During update: When updating a Place, the v was not an array, or contained too few numbers.
4003The place.kind was given, but it was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The place.colour was given, but it was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the place.pictures identifiers given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003The place.anchor was given, but it was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the place.shape coordinates given in the array cannot be parsed, or is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The place.shape string cannot be decoded using Google's Encoded Polyline algorithm.
Returns an ErrorDetailInput as the errorDetails.
4003For a PlaceType.radial shape, the radius is outside of the size restrictions.
Returns an ErrorDetailMinMax as the errorDetails.
4003For a PlaceType.rectangle shape, the diagonal distance is outside of the size restrictions.
Returns an ErrorDetailMinMax as the errorDetails.
4003For a PlaceType.polygon shape, the widest diagonal distance is outside of the size restrictions.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to create a new Place (with the given labels).
4015You do not have permission to update this Place.
4006During update: When updating a Place, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433The place.icon given as input was not found.
40440During update: The Place was not found by its unique identifier.
40469One or more of the Picture identifiers given as input in the place.pictures array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
40171During update: Changing the labels on this Place in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
409130During create: When creating a new point or radial Place, an anchor or address was not given.
409130During update: When updating a Place, the place.company can not be changed.

DELETE/places

Deletes an existing Place.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placeRespDeletedAn object which contains the place's id, owning company id, and deleted status.
place.companyuint64Identifier of the Company to which this object belongs.
place.deletedbooleanFlag showing if the object is deleted.
place.iduint64?Identifier given as input for the command.
place.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"place": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a place object, or it is invalid.
4003The place object does not contain an id, or it is invalid.
4015You do not have permission to delete this Place.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40440The Place was not found by its unique identifier.

GET/places/{placeId}?includeDeleted=boolean

Gets details of the specified Place.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
placeIduint64requiredUnique identifier of the Place.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placePlaceThe requested Place.
place.addressstring
maximum-length: 200
Full street address including province/state, country, and postal/zip code.
place.anchorLatLngA central point of the shape. This is the exact centre of a PlaceType.radial and PlaceType.point shaped places, and the location of the pin on the map for all types. When routing, PlaceType.polygon and PlaceType.rectangle shapes use the anchor as the location within the place for deliveries.
place.anchor.latdoubleLatitude
place.anchor.lngdoubleLongitude
place.colourcolour
maximum-length: 22
The fill colour given to this place for easy visual identification on the map (given in 24bit hex; #RRGGBB)
place.companyuint64The company to which this POI belongs.
place.iconuint64
see: Icon.id
The icon used to display this POI in lists and on the map.
place.iduint64Unique identifier of this place.
place.kindPlaceTypeThe kind of geography represented by this POI.
place.labelsArray.<codified>
for values see: LabelStyle.code
The codified names of labels
place.namestring
maximum-length: 100
POI's common name instead of street address.
place.notesstringNotes!
place.picturesArray.<uint64>
for values see: Picture.id
Images of this POI.
place.processedUtcdatetimeWhen the was change procesed.
place.radiusdouble?This member is only present for PlaceType.radial shapes, and is the radius in meters from the centre anchor.
place.referencestring
maximum-length: 100
A custom field used to refer to an external system.
place.shapeArray.<LatLng>The geography representing this POI for rectangle and polygon shape types. For PlaceType.radial and PlaceType.point shape types, the shape key is not present. For a PlaceType.rectangle, the array contains the north east and south west corner coordinates. For a PlaceType.polygon, the array lists all coordinates (oriented as counter-clockwise) needed to draw the geofence.
place.updatedby: login, from: monster
place.vArray.<int32>
fixed count: 2
Object version keys used to validate synchronization for all object properties.
place.v[0]int32The first element is for the general properties
place.v[1]int32The second element is not used
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"place": {
		"address": string,
		"anchor": {
			"lat": number,
			"lng": number
		},
		"colour": string,
		"company": number,
		"icon": number,
		"id": number,
		"kind": string,
		"labels": [
			string
		],
		"name": string,
		"notes": string,
		"pictures": [
			number
		],
		"processedUtc": string,
		"radius": number,
		"reference": string,
		"shape": [
			{
				"lat": number,
				"lng": number
			}
		],
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a place object, or it is invalid.
4003The place object does not contain an id, or it is invalid.
4015You do not have permission to view this Place.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40440The Place was not found by its unique identifier.

POST/places/{placeId}

Creates a new, or updates an existing Place.
URL Parameters
ParameterTypeRequiredDescription
placeIduint64?optionalUnique identifier of the Place. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
placeObject.<string, ?>alwaysA simple object to contain the Place parameters.
place.addressstringoptionalFull street address including province/state, country, and postal/zip code.
place.anchorLatLngoptionalCentral lat/long coordinates. When not present, the shape centre is used for routing.
place.anchor.latdoubleoptionalLatitude
place.anchor.lngdoubleoptionalLongitude
place.colourcolour
maximum-length: 22
optionalThe fill colour given to this Place for easy visual identification on the map.
place.companyuint64?createThe Company to which this Place belongs. After creation, this value is read-only.
place.iconuint64?
see: Icon.id
createThe Icon used to display this POI in lists and on the map.
place.iduint64?updateThe unique identifier of the Place you want to update.
place.kindPlaceType?createThe kind of shape being created.
place.labelsArray.<codified>
for values see: LabelStyle.code
optionalThe codified names of labels
place.namestring
maximum-length: 100
createName for the Place.
place.notesstringoptionalNotes for the Place.
place.picturesArray.<uint64>
for values see: Picture.id
optionalThe identifiers of Pictures of this Place.
place.radiusdouble?create (radial)Boundary threshold (in meters)
place.referencestring
maximum-length: 100
optionalA custom field used to refer to an external system.
place.shapeArray.<LatLng>create (rectangle or polygon)For a PlaceType.rectangle, the input contains the north east and south west corner coordinates. For a PlaceType.polygon, the input lists all coordinates (oriented as counter-clockwise) needed to draw the geofence.
place.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"place": {
		"address": string,
		"anchor": {
			"lat": number,
			"lng": number
		},
		"colour": string,
		"company": number,
		"icon": number,
		"id": number,
		"kind": string,
		"labels": [
			string
		],
		"name": string,
		"notes": string,
		"pictures": [
			number
		],
		"radius": number,
		"reference": string,
		"shape": [
			{
				"lat": number,
				"lng": number
			}
		],
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placeRespIdCompanyAn object which contains the "id" and "company" keys.
place.companyuint64Identifier of the Company to which this object belongs.
place.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"place": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a place object, or it is invalid.
4003No valid changes would be performed.
4003For a PlaceType.rectangle shape, the shape has fewer than 2 coordinates.
4003For a PlaceType.polygon shape, the shape has fewer than 3 coordinates.
4003During create: When creating a new Place, a name was not given.
4003During create: When creating a new Place, a company was not given.
4003During create: When creating a new Place, an icon was not given.
4003During update: When updating a Place, the name was given as null or blank.
4003During update: When updating a Place, the v was not an array, or contained too few numbers.
4003The place.kind was given, but it was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The place.colour was given, but it was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the place.pictures identifiers given in the array cannot be parsed, or is a value less than zero.
Returns an ErrorDetailInput as the errorDetails.
4003The place.anchor was given, but it was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the place.shape coordinates given in the array cannot be parsed, or is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003The place.shape string cannot be decoded using Google's Encoded Polyline algorithm.
Returns an ErrorDetailInput as the errorDetails.
4003For a PlaceType.radial shape, the radius is outside of the size restrictions.
Returns an ErrorDetailMinMax as the errorDetails.
4003For a PlaceType.rectangle shape, the diagonal distance is outside of the size restrictions.
Returns an ErrorDetailMinMax as the errorDetails.
4003For a PlaceType.polygon shape, the widest diagonal distance is outside of the size restrictions.
Returns an ErrorDetailMinMax as the errorDetails.
4015You do not have permission to create a new Place (with the given labels).
4015You do not have permission to update this Place.
4006During update: When updating a Place, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40433The place.icon given as input was not found.
40440During update: The Place was not found by its unique identifier.
40469One or more of the Picture identifiers given as input in the place.pictures array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
40171During update: Changing the labels on this Place in the requested way would grant you elevated access to it.
Returns an ErrorDetailEscalation as the errorDetails.
409130During create: When creating a new point or radial Place, an anchor or address was not given.
409130During update: When updating a Place, the place.company can not be changed.

DELETE/places/{placeId}

Deletes an existing Place.
URL Parameters
ParameterTypeRequiredDescription
placeIduint64requiredUnique identifier of the Place.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placeRespDeletedAn object which contains the place's id, owning company id, and deleted status.
place.companyuint64Identifier of the Company to which this object belongs.
place.deletedbooleanFlag showing if the object is deleted.
place.iduint64?Identifier given as input for the command.
place.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"place": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a place object, or it is invalid.
4003The place object does not contain an id, or it is invalid.
4015You do not have permission to delete this Place.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40440The Place was not found by its unique identifier.

PATCH/places/{placeId}/restore

Restores the specified Place.
URL Parameters
ParameterTypeRequiredDescription
placeIduint64requiredUnique identifier of the Place.
HTTP Request body description
PropertyTypeRequiredDescription
placeParamIdalwaysAn object to contain the "id" of the Place.
place.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"place": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
placeRespDeletedAn object which contains the place's id, owning company id, and deleted status.
place.companyuint64Identifier of the Company to which this object belongs.
place.deletedbooleanFlag showing if the object is deleted.
place.iduint64?Identifier given as input for the command.
place.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"place": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a place object, or it is invalid.
4003The place object does not contain an id, or it is invalid.
4015You do not have permission to restore this Place.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40440The Place was not found by its unique identifier.
40041The Place was found, but is not marked as deleted.

GET/places?labels={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/places?labels={labels}.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
labelsstringrequiredLabels to match the Place.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/places?reference={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/places?reference={reference}.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
referencestringrequiredValue to search in the Place.reference field.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

Providers and Configurations

GET/companies/{companyId}/providers?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Providers for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Providers marked as Provider.suspended.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providersArray.<Provider>The list of requested Providers.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providers": [
		{
			"asset": number,
			"attributes": {
				string: {
					string: {
						"dts": string,
						"unit": string,
						"value": Object
					}
				}
			},
			"commands": {
				string: {
					"created": string,
					"parameters": [
						string
					],
					"processed": string,
					"status": string
				}
			},
			"company": number,
			"configuration": number,
			"control": {
				"commands": {
					string: {
						"created": string,
						"parameters": [
							string
						],
						"processed": string,
						"status": string
					}
				},
				"company": number,
				"id": string,
				"processedUtc": string,
				"updated": {
				},
				"v": [
					number
				]
			},
			"firmware": string,
			"firmwareStatus": string,
			"geofenceLast": string,
			"geofenceStatus": string,
			"id": string,
			"information": {
				string: string
			},
			"kind": string,
			"lastCheckIn": string,
			"lastIP": string,
			"name": string,
			"notes": string,
			"password": string,
			"phoneNumber": number,
			"pnd": string,
			"processedUtc": string,
			"scriptLast": string,
			"scriptStatus": string,
			"sim": string,
			"snf": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Providers for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/providers/advanceds?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Providers for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Providers marked as Provider.suspended.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerAdvancedsArray.<ProviderAdvanced>The list of requested Providers.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerAdvanceds": [
		{
			"attributes": {
				string: {
					string: {
						"dts": string,
						"unit": string,
						"value": Object
					}
				}
			},
			"company": number,
			"id": string,
			"lastIP": string,
			"processedUtc": string,
			"snf": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Providers for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/providers/configs?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ProviderConfigs for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of ProviderConfigs belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigsArray.<ProviderConfig>The list of reqested ProviderConfigs.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfigs": [
		{
			"company": number,
			"geofences": string,
			"id": number,
			"name": string,
			"notes": string,
			"parameters": {
				string: string
			},
			"processedUtc": string,
			"script": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view ProviderConfigs for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/providers/configurations?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ProviderConfigurations for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationsArray.<ProviderConfiguration>The list of reqested ProviderConfigurations.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfigurations": [
		{
			"company": number,
			"geofences": [
				number
			],
			"id": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"scriptParameters": {
				string: Object
			},
			"type": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view ProviderConfigurations for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/providers/generals?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Providers for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Providers marked as Provider.suspended.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerGeneralsArray.<ProviderGeneral>The list of requested Providers.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerGenerals": [
		{
			"asset": number,
			"company": number,
			"configuration": number,
			"firmware": string,
			"firmwareStatus": string,
			"geofenceLast": string,
			"geofenceStatus": string,
			"id": string,
			"information": {
				string: string
			},
			"kind": string,
			"lastCheckIn": string,
			"name": string,
			"notes": string,
			"password": string,
			"phoneNumber": number,
			"pnd": string,
			"processedUtc": string,
			"scriptLast": string,
			"scriptStatus": string,
			"sim": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Providers for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/providers/registrations?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ProviderRegistrations for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationsArray.<ProviderRegistration>The list of ProviderRegistrations.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistrations": [
		{
			"asset": number,
			"code": string,
			"company": number,
			"completed": string,
			"config": number,
			"expires": string,
			"identifier": string,
			"kind": string,
			"name": string,
			"notes": string,
			"password": string,
			"phoneNumber": number,
			"since": string,
			"user": string
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company id is not an integer or is less than zero.
4015You do not have access to the ProviderConfigs/ProviderConfigurations.
4015You do not have access to view Providers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company value is valid, but could not be found.

GET/companies/{companyId}/providers/registrations?kind={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ProviderRegistrations for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
kindstringrequiredThe ProviderType used to filter the results.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationsArray.<ProviderRegistration>The list of ProviderRegistrations.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistrations": [
		{
			"asset": number,
			"code": string,
			"company": number,
			"completed": string,
			"config": number,
			"expires": string,
			"identifier": string,
			"kind": string,
			"name": string,
			"notes": string,
			"password": string,
			"phoneNumber": number,
			"since": string,
			"user": string
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company id is not an integer or is less than zero.
4015You do not have access to the ProviderConfigs/ProviderConfigurations.
4015You do not have access to view Providers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company value is valid, but could not be found.

GET/companies/{companyId}/providers/scripts?trunk=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ProviderScripts for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
trunkbooleanoptionaltrueWhen true (default) the getter to retrieve the given Company's list of ProviderScripts as well as any publicly available ProviderScripts for the Company's parent(s).
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of ProviderScripts belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerScriptsArray.<ProviderScript>The list of requested ProviderScripts.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerScripts": [
		{
			"blocks": [
				{
					"condition": string,
					"content": string,
					"replace": string,
					"validate": string
				}
			],
			"company": number,
			"fill": string,
			"global": boolean,
			"graphic": string,
			"id": number,
			"kind": string,
			"name": string,
			"notes": string,
			"parameters": {
				string: {
					"advanced": boolean,
					"context": string,
					"notes": string,
					"order": number,
					"type": string,
					"value": string
				}
			},
			"processedUtc": string,
			"stroke": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view ProviderScripts for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/providers?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

This request is an alias of /companies/{your-company-id}/providers.
URL Parameters
ParameterTypeRequiredDefaultDescription
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/providers

Creates a new, or updates an existing Provider.
HTTP Request body description
PropertyTypeRequiredDescription
providerObject.<string, ?>alwaysA simple object to contain the Provider parameters.
provider.assetuint64?optionalA reference to the Asset with which to provide events.
provider.configuint64?createIdentifier of the ProviderConfig/ProviderConfiguration this Provider will use.
provider.idstring
maximum-length: 50
minimum-length: 10
alwaysUnique identifier of the Provider.
provider.kindProviderType?createThe type of Provider.
provider.namestring
maximum-length: 100
createA name for the Provider.
provider.notesstringoptionalNotes for this Provider.
provider.passwordstringoptionalThe password required to communicate and program this Provider.
provider.phoneuint64?optionalThe phone number this Provider uses (if known).
provider.pndstringoptionalThe name of the Personal Navigation Device connected to this Provider.
provider.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"provider": {
		"asset": number,
		"config": number,
		"id": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phone": number,
		"pnd": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRespIdendifierCompanyAn object which contains the "id" and "company" keys when there is no error.
provider.companyuint64Identifier of the Company to which this object belongs.
provider.idstringIdentifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"company": number,
		"id": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003A name was given, but the value is blank or white-space only.
4003During create: When creating a new Provider, a name was not given.
4003During create: When creating a new Provider, a company was not given.
4003During create: When creating a new Provider, a kind was not given.
4003During create: When creating a new Provider, a configuration was not given.
4003During update: When updating a Provider, the name was given as null or blank.
4003During update: When updating a Provider, the v was not an array, or contained too few numbers.
4003During update: Not enough data was given to perform a change.
4003The kind value was given, but it is not a valid member of the enum.
Returns an ErrorDetailEnum as the errorDetails.
4003The id was an invalid length. See the errorDetails for length requirements.
Returns an ErrorDetailMinMax as the errorDetails.
4003The phone value was given, but it is not an integer.
Returns an ErrorDetailPhone as the errorDetails.
4015You do not have permission to create Providers in the given company.
4015You do not have permission to the Asset for which this Provider is currently providing events.
4015You do not have permission to the Asset specified for this Provider to provide events.
4015You do not have permission to change ProviderConfigs/ProviderConfigurations.
4015During update: The specified ProviderConfig/ProviderConfiguration belongs to a different Company and you do not have permission to delete the Provider from its current Company.
4015During update: The specified ProviderConfig/ProviderConfiguration belongs to a different Company and you do not have permission to create the Provider in the new Company.
4006During update: When updating a Provider, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The specified Asset was not found.
40443The Provider you are trying to update was not found.
40044The command values are set to create a new Provider, but a Provider of the given id already exists.
40447The specified ProviderConfigurationType was not found.
If you receive this error, please contact technical support.
40448The specified ProviderConfig/ProviderConfiguration was not found.
40398During update: When updating a Provider, the Provider is suspended. Before making changes to a Provider, it must be reactivated.
404102The specified ProviderScript was not found.
If you receive this error, please contact technical support.
409130The specified ProviderConfig/ProviderConfiguration if for a different ProviderType.
409130The specified Asset belongs to a different Company.
409130The specified ProviderConfig/ProviderConfiguration belongs to a different Company and the Asset was not null (and not set to null or an asset from the new company).
409130During update: The Provider's provider.kind can not be changed after it is created.

DELETE/providers

Deletes the specified Provider from the system.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRespIdendifierDeletedAn object which contains the Provider's id, owning Company id, and deleted status.
provider.companyuint64Identifier of the Company to which this object belongs.
provider.deletedbooleanFlag showing if the object is deleted.
provider.idstringIdentifier given as input for the command.
provider.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"company": number,
		"deleted": boolean,
		"id": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to delete this Provider.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.

GET/providers/{providerId}?includeDeleted=boolean

Gets details of the specified Provider.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
providerIdstringrequiredUnique identifier of the Provider.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerProviderThe requested Provider.
provider.assetuint64?The asset for which this device provides field data.
provider.attributesObject.<string, Object.<string, ProviderData>>
for keys see: ProviderDataGroup
for value-keys see: ProviderDataName
Often changing values like latitude, longitude, speed, wiring state, VBus information, etc...
provider.commandsObject.<ProviderCommandType, ProviderCommand>Collection of commands for this provider.
provider.companyuint64The company to which this device belongs.
provider.configurationuint64The provider's current (or pending) configuration profile.
provider.controlProviderControlManaging and controlling communication with this provider.
provider.control.commandsObject.<ProviderCommandType, ProviderCommand>Collection of commands for this provider.
provider.control.companyuint64The company to which this device belongs.
provider.control.idstring
maximum-length: 50
minimum-length: 10
Unique identifier of this device.
provider.control.processedUtcdatetimeWhen the was change procesed.
provider.control.updatedby: login, from: monster
provider.control.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
provider.firmwarestring
maximum-length: 100
The firmware/application version number.
provider.firmwareStatusProvisioningStatusThe system's progress of updating the device's firmware/application.
provider.geofenceLastdatetimeA timestamp from when the geofence list was updated by a User or a Provider.
provider.geofenceStatusProvisioningStatusThe system's progress of updating the device's on-board geofence definitions.
provider.idstring
maximum-length: 50
minimum-length: 10
Unique identifier of this provider.
provider.informationObject.<string, string>
for keys see: ProviderDataName
A list of read-only values about the device like IMEI, ESN, firmware version, hardware revision, etc...
provider.kindProviderTypeThe kind of communication protocol this device uses.
provider.lastCheckIndatetimeA timestamp from when the provider last checked for a new script or new geofences.
provider.lastIPipv4The last IP address of the device.
provider.namestring
maximum-length: 100
A nickname given to the device/hardware.
provider.notesstringNotes!
provider.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
provider.phoneNumberuint64?The phone number of this device.
provider.pndstring
maximum-length: 50
The short-name of the kind of PND attached to this device. Leave blank if none.
provider.processedUtcdatetimeWhen the was change procesed.
provider.scriptLastdatetimeA timestamp from when the script status was updated by a User or a Provider.
provider.scriptStatusProvisioningStatusThe system's progress of updating the device's programming.
provider.simstringICCID of the SIM card installed in this provider
provider.snfObject.<string, string>Store-and-forward information like last sequence number of SnF window
provider.updatedby: login, from: monster
provider.vArray.<int32>
fixed count: 3
Object version keys used to validate synchronization for all object properties.
provider.v[0]int32The first element is for the general properties
provider.v[1]int32The second element is for the advanced properties
provider.v[2]int32The third element is for the control properties
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"asset": number,
		"attributes": {
			string: {
				string: {
					"dts": string,
					"unit": string,
					"value": Object
				}
			}
		},
		"commands": {
			string: {
				"created": string,
				"parameters": [
					string
				],
				"processed": string,
				"status": string
			}
		},
		"company": number,
		"configuration": number,
		"control": {
			"commands": {
				string: {
					"created": string,
					"parameters": [
						string
					],
					"processed": string,
					"status": string
				}
			},
			"company": number,
			"id": string,
			"processedUtc": string,
			"updated": {
			},
			"v": [
				number
			]
		},
		"firmware": string,
		"firmwareStatus": string,
		"geofenceLast": string,
		"geofenceStatus": string,
		"id": string,
		"information": {
			string: string
		},
		"kind": string,
		"lastCheckIn": string,
		"lastIP": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"pnd": string,
		"processedUtc": string,
		"scriptLast": string,
		"scriptStatus": string,
		"sim": string,
		"snf": {
			string: string
		},
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to view this Provider.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.

POST/providers/{providerId}

Creates a new, or updates an existing Provider.
URL Parameters
ParameterTypeRequiredDescription
providerIdstringoptionalUnique identifier of the Provider. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
providerObject.<string, ?>alwaysA simple object to contain the Provider parameters.
provider.assetuint64?optionalA reference to the Asset with which to provide events.
provider.configuint64?createIdentifier of the ProviderConfig/ProviderConfiguration this Provider will use.
provider.idstring
maximum-length: 50
minimum-length: 10
alwaysUnique identifier of the Provider.
provider.kindProviderType?createThe type of Provider.
provider.namestring
maximum-length: 100
createA name for the Provider.
provider.notesstringoptionalNotes for this Provider.
provider.passwordstringoptionalThe password required to communicate and program this Provider.
provider.phoneuint64?optionalThe phone number this Provider uses (if known).
provider.pndstringoptionalThe name of the Personal Navigation Device connected to this Provider.
provider.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"provider": {
		"asset": number,
		"config": number,
		"id": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phone": number,
		"pnd": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRespIdendifierCompanyAn object which contains the "id" and "company" keys when there is no error.
provider.companyuint64Identifier of the Company to which this object belongs.
provider.idstringIdentifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"company": number,
		"id": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003A name was given, but the value is blank or white-space only.
4003During create: When creating a new Provider, a name was not given.
4003During create: When creating a new Provider, a company was not given.
4003During create: When creating a new Provider, a kind was not given.
4003During create: When creating a new Provider, a configuration was not given.
4003During update: When updating a Provider, the name was given as null or blank.
4003During update: When updating a Provider, the v was not an array, or contained too few numbers.
4003During update: Not enough data was given to perform a change.
4003The kind value was given, but it is not a valid member of the enum.
Returns an ErrorDetailEnum as the errorDetails.
4003The id was an invalid length. See the errorDetails for length requirements.
Returns an ErrorDetailMinMax as the errorDetails.
4003The phone value was given, but it is not an integer.
Returns an ErrorDetailPhone as the errorDetails.
4015You do not have permission to create Providers in the given company.
4015You do not have permission to the Asset for which this Provider is currently providing events.
4015You do not have permission to the Asset specified for this Provider to provide events.
4015You do not have permission to change ProviderConfigs/ProviderConfigurations.
4015During update: The specified ProviderConfig/ProviderConfiguration belongs to a different Company and you do not have permission to delete the Provider from its current Company.
4015During update: The specified ProviderConfig/ProviderConfiguration belongs to a different Company and you do not have permission to create the Provider in the new Company.
4006During update: When updating a Provider, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The specified Asset was not found.
40443The Provider you are trying to update was not found.
40044The command values are set to create a new Provider, but a Provider of the given id already exists.
40447The specified ProviderConfigurationType was not found.
If you receive this error, please contact technical support.
40448The specified ProviderConfig/ProviderConfiguration was not found.
40398During update: When updating a Provider, the Provider is suspended. Before making changes to a Provider, it must be reactivated.
404102The specified ProviderScript was not found.
If you receive this error, please contact technical support.
409130The specified ProviderConfig/ProviderConfiguration if for a different ProviderType.
409130The specified Asset belongs to a different Company.
409130The specified ProviderConfig/ProviderConfiguration belongs to a different Company and the Asset was not null (and not set to null or an asset from the new company).
409130During update: The Provider's provider.kind can not be changed after it is created.

DELETE/providers/{providerId}

Deletes the specified Provider from the system.
URL Parameters
ParameterTypeRequiredDescription
providerIdstringrequiredUnique identifier of the Provider.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRespIdendifierDeletedAn object which contains the Provider's id, owning Company id, and deleted status.
provider.companyuint64Identifier of the Company to which this object belongs.
provider.deletedbooleanFlag showing if the object is deleted.
provider.idstringIdentifier given as input for the command.
provider.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"company": number,
		"deleted": boolean,
		"id": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to delete this Provider.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.

GET/providers/{providerId}/advanceds?includeDeleted=boolean

Gets details of the specified Provider.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
providerIdstringrequiredUnique identifier of the Provider.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerAdvancedProviderAdvancedThe requested Provider.
providerAdvanced.attributesObject.<string, Object.<string, ProviderData>>
for keys see: ProviderDataGroup
for value-keys see: ProviderDataName
Often changing values like latitude, longitude, speed, wiring state, VBus information, etc...
providerAdvanced.companyuint64The company to which this device belongs.
providerAdvanced.idstring
maximum-length: 50
minimum-length: 10
Unique identifier of this device.
providerAdvanced.lastIPipv4The last IP address of the device.
providerAdvanced.processedUtcdatetimeWhen the was change procesed.
providerAdvanced.snfObject.<string, string>Store-and-forward information like last sequence number of SnF window
providerAdvanced.updatedby: login, from: monster
providerAdvanced.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerAdvanced": {
		"attributes": {
			string: {
				string: {
					"dts": string,
					"unit": string,
					"value": Object
				}
			}
		},
		"company": number,
		"id": string,
		"lastIP": string,
		"processedUtc": string,
		"snf": {
			string: string
		},
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to view this Provider.
4015You do not have permission to view this Provider's advanced details.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.

GET/providers/{providerId}/generals?includeDeleted=boolean

Gets details of the specified Provider.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
providerIdstringrequiredUnique identifier of the Provider.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerGeneralProviderGeneralThe requested Provider.
providerGeneral.assetuint64?The asset for which this device provides field data.
providerGeneral.companyuint64The company to which this device belongs.
providerGeneral.configurationuint64The provider's current (or pending) configuration profile.
providerGeneral.firmwarestring
maximum-length: 100
The firmware/application version number.
providerGeneral.firmwareStatusProvisioningStatusThe system's progress of updating the device's firmware/application.
providerGeneral.geofenceLastdatetimeA timestamp from when the geofence list was updated by a User or a Provider.
providerGeneral.geofenceStatusProvisioningStatusThe system's progress of updating the device's on-board geofence definitions.
providerGeneral.idstring
maximum-length: 50
minimum-length: 10
Unique identifier of this device.
providerGeneral.informationObject.<string, string>
for keys see: ProviderDataName
A list of read-only values about the device like IMEI, ESN, firmware version, hardware revision, etc...
providerGeneral.kindProviderTypeThe kind of communication protocol this device uses.
providerGeneral.lastCheckIndatetimeA timestamp from when the provider last checked for a new script or new geofences.
providerGeneral.namestring
maximum-length: 100
A nickname given to the device/hardware.
providerGeneral.notesstringNotes!
providerGeneral.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
providerGeneral.phoneNumberuint64?The phone number of this device.
providerGeneral.pndstring
maximum-length: 50
The short-name of the kind of PND attached to this device. Leave blank if none.
providerGeneral.processedUtcdatetimeWhen the was change procesed.
providerGeneral.scriptLastdatetimeA timestamp from when the script status was updated by a User or a Provider.
providerGeneral.scriptStatusProvisioningStatusThe system's progress of updating the device's programming.
providerGeneral.simstringICCID of the SIM card installed in this provider
providerGeneral.updatedby: login, from: monster
providerGeneral.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerGeneral": {
		"asset": number,
		"company": number,
		"configuration": number,
		"firmware": string,
		"firmwareStatus": string,
		"geofenceLast": string,
		"geofenceStatus": string,
		"id": string,
		"information": {
			string: string
		},
		"kind": string,
		"lastCheckIn": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"pnd": string,
		"processedUtc": string,
		"scriptLast": string,
		"scriptStatus": string,
		"sim": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to view this Provider.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.

PATCH/providers/{providerId}/restore

Restores a deleted Provider.
URL Parameters
ParameterTypeRequiredDescription
providerIdstringrequiredUnique identifier of the Provider.
HTTP Request body description
PropertyTypeRequiredDescription
providerParamIdentifieralwaysAn object to contain the "id" of the Provider.
provider.idstringalwaysThe Provider's identifier.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"provider": {
		"id": string
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRespIdendifierDeletedAn object which contains the Provider's id, owning Company id, and deleted status.
provider.companyuint64Identifier of the Company to which this object belongs.
provider.deletedbooleanFlag showing if the object is deleted.
provider.idstringIdentifier given as input for the command.
provider.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"provider": {
		"company": number,
		"deleted": boolean,
		"id": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a provider object, or it is invalid.
4003The provider object does not contain an id, or it is invalid.
4015You do not have permission to restore this Provider.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40443The Provider was not found by its unique identifier.
40044The Provider was found, but is not marked as deleted.

GET/providers/advanceds?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

This request is an alias of /companies/{your-company-id}/providers.
URL Parameters
ParameterTypeRequiredDefaultDescription
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/providers/advanceds?config={uint64}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Providers for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
configuint64requiredUnique identifier of the ProviderConfig or ProviderConfiguration.
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Providers marked as Provider.suspended.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerAdvancedsArray.<ProviderAdvanced>The list of requested Providers.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerAdvanceds": [
		{
			"attributes": {
				string: {
					string: {
						"dts": string,
						"unit": string,
						"value": Object
					}
				}
			},
			"company": number,
			"id": string,
			"lastIP": string,
			"processedUtc": string,
			"snf": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Providers for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/providers/configs?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/providers/configs/.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/providers/configs

Creates a new or updates an existing ProviderConfig.
HTTP Request body description
PropertyTypeRequiredDescription
providerConfigObject.<string, ?>alwaysA simple object to contain the ProviderConfig parameters.
providerConfig.companyuint64?createThe Company to which the ProviderConfig belongs.
providerConfig.geofencesexpressionoptionalA search pattern used to filter which Places' geometry are used as geofences. Use null or blank string to disable. Use "*" to match all the Places the Provider's Asset can match. Or use "#123456" or "label:term" like other Place search patterns.
providerConfig.iduint64?updateThe unique identifier of the ProviderConfig you want to update.
providerConfig.namestring
maximum-length: 100
createName for the ProviderConfig.
providerConfig.notesstringoptionalNotes for the ProviderConfig.
providerConfig.parametersObject.<string, string>optionalThe values needed to implement the script. Each key in this object is the name of a required script variable.
providerConfig.scriptuint64?createThe ProviderScript to the ProviderConfig implements. After creation, this value is read-only.
providerConfig.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerConfig": {
		"company": number,
		"geofences": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: string
		},
		"script": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
providerConfig.companyuint64Identifier of the Company to which this object belongs.
providerConfig.iduint64?Identifier given as input for the command.
providerConfig.scriptuint64Identifier of the script to which this object belongs.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfig": {
		"company": number,
		"id": number,
		"script": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfig object, or it is invalid.
4003Not enough keys exist in the providerConfig object.
4003During create: When creating a new ProviderConfig, a name was not given, or it is invalid.
4003During create: When creating a new ProviderConfig, a company was not given.
4003During create: When creating a new ProviderConfig, a script was not given.
4003During update: When updating a ProviderConfig, the id was invalid.
4003During update: When updating a ProviderConfig, the name was given as blank.
4003During update: When updating a ProviderConfig, the v was not an array, or contained too few numbers.
4003One of the providerConfig.parameters was invalid.
Returns an ErrorDetailBadKeys as the errorDetails.
4003One of the providerConfig.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new ProviderConfig.
4015You do not have permission to update this ProviderConfig.
4006During update: When updating a ProviderConfig, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448During update: The ProviderConfig was not found by its unique identifier.
404102The ProviderScript was not found by its unique identifier.
404102The ProviderScript was found, but does not belong in the target company's tree.
409130There is one or more missing or invalid providerConfig.parameters required by the ProviderScript.
409130During update: When updating a ProviderConfig, the providerConfig.script can not be changed.
409130During update: When updating a ProviderConfig, the providerConfig.company can not be changed.

DELETE/providers/configs

Deletes a ProviderConfig.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigRespDeletedAn object which contains the ProviderConfig's id, owning Company id, and deleted status.
providerConfig.companyuint64Identifier of the Company to which this object belongs.
providerConfig.deletedbooleanFlag showing if the object is deleted.
providerConfig.iduint64?Identifier given as input for the command.
providerConfig.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfig": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfig object, or it is invalid.
4003The providerConfig object does not contain an id, or it is invalid.
4015You do not have permission to delete this ProviderConfig.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448The ProviderConfig was not found by its unique identifier.

GET/providers/configs/{configId}?includeDeleted=boolean

Gets details of the specified Provider Config.
URL Parameters
ParameterTypeRequiredDescription
configIduint64requiredUnique identifier of the ProviderConfig.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigProviderConfigThe requested ProviderConfig.
providerConfig.companyuint64The company to which this configuration belongs.
providerConfig.geofencesexpressionA search pattern used to filter which Places' geometry are used as geofences. Use null to disable. Use "*" to match all the Places the Provider's Asset can match. Or use "#123456" or "label:term" like other Place search patterns.
providerConfig.iduint64Unique identifier of this configuration.
providerConfig.namestring
maximum-length: 100
The nickname given to this configuration
providerConfig.notesstringSimple details about how the providers are expected to behave.
providerConfig.parametersObject.<string, string>The list of defined variable name/value pairs that the script requires.
providerConfig.processedUtcdatetimeWhen the was change procesed.
providerConfig.scriptuint64The script which this configuration implements.
providerConfig.updatedby: login, from: monster
providerConfig.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfig": {
		"company": number,
		"geofences": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: string
		},
		"processedUtc": string,
		"script": number,
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a providerConfig object, or it is invalid.
4003The providerConfig object does not contain an id, or it is invalid.
4015You do not have permission to view this ProviderConfig.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The ProviderConfig was not found by its unique identifier.

POST/providers/configs/{configId}

Creates a new or updates an existing ProviderConfig.
URL Parameters
ParameterTypeRequiredDescription
configIduint64?optionalUnique identifier of the ProviderConfig. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
providerConfigObject.<string, ?>alwaysA simple object to contain the ProviderConfig parameters.
providerConfig.companyuint64?createThe Company to which the ProviderConfig belongs.
providerConfig.geofencesexpressionoptionalA search pattern used to filter which Places' geometry are used as geofences. Use null or blank string to disable. Use "*" to match all the Places the Provider's Asset can match. Or use "#123456" or "label:term" like other Place search patterns.
providerConfig.iduint64?updateThe unique identifier of the ProviderConfig you want to update.
providerConfig.namestring
maximum-length: 100
createName for the ProviderConfig.
providerConfig.notesstringoptionalNotes for the ProviderConfig.
providerConfig.parametersObject.<string, string>optionalThe values needed to implement the script. Each key in this object is the name of a required script variable.
providerConfig.scriptuint64?createThe ProviderScript to the ProviderConfig implements. After creation, this value is read-only.
providerConfig.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerConfig": {
		"company": number,
		"geofences": string,
		"id": number,
		"name": string,
		"notes": string,
		"parameters": {
			string: string
		},
		"script": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
providerConfig.companyuint64Identifier of the Company to which this object belongs.
providerConfig.iduint64?Identifier given as input for the command.
providerConfig.scriptuint64Identifier of the script to which this object belongs.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfig": {
		"company": number,
		"id": number,
		"script": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfig object, or it is invalid.
4003Not enough keys exist in the providerConfig object.
4003During create: When creating a new ProviderConfig, a name was not given, or it is invalid.
4003During create: When creating a new ProviderConfig, a company was not given.
4003During create: When creating a new ProviderConfig, a script was not given.
4003During update: When updating a ProviderConfig, the id was invalid.
4003During update: When updating a ProviderConfig, the name was given as blank.
4003During update: When updating a ProviderConfig, the v was not an array, or contained too few numbers.
4003One of the providerConfig.parameters was invalid.
Returns an ErrorDetailBadKeys as the errorDetails.
4003One of the providerConfig.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new ProviderConfig.
4015You do not have permission to update this ProviderConfig.
4006During update: When updating a ProviderConfig, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448During update: The ProviderConfig was not found by its unique identifier.
404102The ProviderScript was not found by its unique identifier.
404102The ProviderScript was found, but does not belong in the target company's tree.
409130There is one or more missing or invalid providerConfig.parameters required by the ProviderScript.
409130During update: When updating a ProviderConfig, the providerConfig.script can not be changed.
409130During update: When updating a ProviderConfig, the providerConfig.company can not be changed.

DELETE/providers/configs/{configId}

Deletes a ProviderConfig.
URL Parameters
ParameterTypeRequiredDescription
configIduint64requiredUnique identifier of the ProviderConfig.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigRespDeletedAn object which contains the ProviderConfig's id, owning Company id, and deleted status.
providerConfig.companyuint64Identifier of the Company to which this object belongs.
providerConfig.deletedbooleanFlag showing if the object is deleted.
providerConfig.iduint64?Identifier given as input for the command.
providerConfig.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfig": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfig object, or it is invalid.
4003The providerConfig object does not contain an id, or it is invalid.
4015You do not have permission to delete this ProviderConfig.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448The ProviderConfig was not found by its unique identifier.

PATCH/providers/configs/{configId}/restore

Restores a deleted ProviderConfig.
URL Parameters
ParameterTypeRequiredDescription
configIduint64requiredUnique identifier of the ProviderConfig.
HTTP Request body description
PropertyTypeRequiredDescription
providerConfigParamIdalwaysAn object to contain the "id" key.
providerConfig.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerConfig": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigRespDeletedAn object which contains the ProviderConfig's id, owning Company id, and deleted status.
providerConfig.companyuint64Identifier of the Company to which this object belongs.
providerConfig.deletedbooleanFlag showing if the object is deleted.
providerConfig.iduint64?Identifier given as input for the command.
providerConfig.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfig": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfig object, or it is invalid.
4003The providerConfig object does not contain an id, or it is invalid.
4015You do not have permission to restore this ProviderConfig.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448The ProviderConfig was not found by its unique identifier.
40049The ProviderConfig was found, but is not marked as deleted.

GET/providers/configurations?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/providers/configurations/.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

DELETE/providers/configurations

Deletes a ProviderConfiguration.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationRespDeletedAn object which contains the ProviderConfiguration's id, owning Company id, and deleted status.
providerConfiguration.companyuint64Identifier of the Company to which this object belongs.
providerConfiguration.deletedbooleanFlag showing if the object is deleted.
providerConfiguration.iduint64?Identifier given as input for the command.
providerConfiguration.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfiguration": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfiguration object, or it is invalid.
4003The providerConfiguration object does not contain an id, or it is invalid.
4015You do not have permission to delete this ProviderConfiguration.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448The ProviderConfiguration was not found by its unique identifier.

GET/providers/configurations/{configurationId}?includeDeleted=boolean

Gets details of the specified ProviderConfiguration.
URL Parameters
ParameterTypeRequiredDescription
configurationIduint64requiredUnique identifier of the ProviderConfiguration.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfiguration
Deprecated
ProviderConfigurationThe requested ProviderConfiguration.
Use ProviderConfig instead.
providerConfiguration.companyuint64The company to which this configuration belongs.
providerConfiguration.geofencesArray.<uint64>List of Places loaded directly onto the provider.
providerConfiguration.iduint64Unique identifier of this configuration.
providerConfiguration.namestring
maximum-length: 100
The nickname given to this configuration
providerConfiguration.notesstringSimple details about how the providers are expected to behave.
providerConfiguration.processedUtcdatetimeWhen the was change procesed.
providerConfiguration.scriptParametersObject.<string, Object>The list of defined variables given to the logic type's options pairs for the logic type requires.
providerConfiguration.typeuint64The logic type which this configuration implements.
providerConfiguration.updatedby: login, from: monster
providerConfiguration.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfiguration": {
		"company": number,
		"geofences": [
			number
		],
		"id": number,
		"name": string,
		"notes": string,
		"processedUtc": string,
		"scriptParameters": {
			string: Object
		},
		"type": number,
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a providerConfiguration object, or it is invalid.
4003The providerConfiguration object does not contain an id, or it is invalid.
4015You do not have permission to view this ProviderConfiguration.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40426The ProviderConfiguration was not found by its unique identifier.

POST/providers/configurations/{configurationId}

Creates a new or updates an existing ProviderConfiguration.
URL Parameters
ParameterTypeRequiredDescription
configurationIduint64?optionalUnique identifier of the ProviderConfiguration. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
providerConfigurationObject.<string, ?>alwaysA simple object to contain the ProviderConfiguration parameters.
providerConfiguration.companyuint64?createThe Company to which the ProviderConfiguration belongs.
providerConfiguration.geofencesArray.<uint64>
for values see: Place.id
optionalA list of Places whose shape is programmed directly onto Providers to raise instant boundary events.
providerConfiguration.iduint64?updateThe unique identifier of the ProviderConfiguration you want to update.
providerConfiguration.namestring
maximum-length: 100
createName for the ProviderConfiguration.
providerConfiguration.notesstringoptionalNotes for the ProviderConfiguration.
providerConfiguration.scriptParametersObject.<string, Object>optionalThe values needed to implement the ProviderConfigurationType. Each key in this object is the identifier of a required ProviderConfigurationNode. This command does not support patch semantics; all keys must be sent if any are sent.
providerConfiguration.typeuint64?createThe ProviderConfigurationType that the ProviderConfiguration implements. After creation, this value is read-only.
providerConfiguration.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerConfiguration": {
		"company": number,
		"geofences": [
			number
		],
		"id": number,
		"name": string,
		"notes": string,
		"scriptParameters": {
			string: Object
		},
		"type": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationRespIdScriptAn object which contains the "id", "company", and "script" keys when there is no error.
providerConfiguration.companyuint64Identifier of the Company to which this object belongs.
providerConfiguration.iduint64?Identifier given as input for the command.
providerConfiguration.scriptuint64Identifier of the script to which this object belongs.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfiguration": {
		"company": number,
		"id": number,
		"script": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfiguration object, or it is invalid.
4003Not enough keys exist in the providerConfiguration object.
4003During create: When creating a new ProviderConfiguration, a name was not given, or it is invalid.
4003During create: When creating a new ProviderConfiguration, a company was not given.
4003During create: When creating a new ProviderConfiguration, a type was not given.
4003During update: When updating a ProviderConfiguration, the id was invalid.
4003During update: When updating a ProviderConfiguration, the name was given as blank.
4003During update: When updating a ProviderConfiguration, the v was not an array, or contained too few numbers.
4003One of the providerConfiguration.scriptParameters was invalid.
Returns an ErrorDetailBadKeys as the errorDetails.
4003There is one or more missing or invalid providerConfiguration.scriptParameters required by the ProviderConfigurationType.
Returns an ErrorDetailBadKeys as the errorDetails.
4003One or more of the providerConfiguration.geofences Places were not a supported shape.
Returns an ErrorDetailExternals as the errorDetails.
4003One of the providerConfiguration.scriptParameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4003One of the providerConfiguration.geofences values was not a valid number.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new ProviderConfiguration.
4015You do not have permission to update this ProviderConfiguration.
4015You do not have permission to one or more Places specified as a providerConfiguration.geofences value.
4006During update: When updating a ProviderConfiguration, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40442One or more of the providerConfiguration.geofences Places were not found by its unique identifier.
40447During create: The ProviderConfigurationType was not found by its unique identifier.
40448During update: The ProviderConfiguration was not found by its unique identifier.
40051One or more of the providerConfiguration.scriptParameters or providerConfiguration.geofences values was invalid.
Returns an ErrorDetailExternals as the errorDetails.
409130During update: When updating a ProviderConfiguration, the providerConfiguration.company can not be changed.
409130During update: When updating a ProviderConfiguration, the providerConfiguration.type can not be changed.

DELETE/providers/configurations/{configurationId}

Deletes a ProviderConfiguration.
URL Parameters
ParameterTypeRequiredDescription
configurationIduint64requiredUnique identifier of the ProviderConfiguration.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationRespDeletedAn object which contains the ProviderConfiguration's id, owning Company id, and deleted status.
providerConfiguration.companyuint64Identifier of the Company to which this object belongs.
providerConfiguration.deletedbooleanFlag showing if the object is deleted.
providerConfiguration.iduint64?Identifier given as input for the command.
providerConfiguration.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfiguration": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfiguration object, or it is invalid.
4003The providerConfiguration object does not contain an id, or it is invalid.
4015You do not have permission to delete this ProviderConfiguration.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448The ProviderConfiguration was not found by its unique identifier.

PATCH/providers/configurations/{configurationId}/restore

Restores a deleted ProviderConfiguration.
URL Parameters
ParameterTypeRequiredDescription
configurationIduint64requiredUnique identifier of the ProviderConfiguration.
HTTP Request body description
PropertyTypeRequiredDescription
providerConfigurationParamIdalwaysAn object to contain the "id" key.
providerConfiguration.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerConfiguration": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationRespDeletedAn object which contains the ProviderConfiguration's id, owning Company id, and deleted status.
providerConfiguration.companyuint64Identifier of the Company to which this object belongs.
providerConfiguration.deletedbooleanFlag showing if the object is deleted.
providerConfiguration.iduint64?Identifier given as input for the command.
providerConfiguration.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfiguration": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerConfiguration object, or it is invalid.
4003The providerConfiguration object does not contain an id, or it is invalid.
4015You do not have permission to restore this ProviderConfiguration.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40448The ProviderConfiguration was not found by its unique identifier.
40049The ProviderConfiguration was found, but is not marked as deleted.

GET/providers/configurations/types?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Lists all the ProviderConfigurationTypes in the system.
URL Parameters
ParameterTypeRequiredDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationTypesArray.<ProviderConfigurationType>The list of requested ProviderConfigurationTypes.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfigurationTypes": [
		{
			"geofenceTypes": [
				string
			],
			"id": number,
			"maxGeofenceCount": number,
			"minGeofenceCount": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"providerType": string,
			"scriptOptions": {
				string: {
					"id": string,
					"isAdvanced": boolean,
					"max": Object,
					"min": Object,
					"nodes": {
						string: { /* recursive ProviderConfigurationNode objects */ }
					},
					"notes": string,
					"type": string,
					"unit": string,
					"value": Object
				}
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4015You do not have permission to view ProviderConfigurationTypes.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/providers/configurations/types/{typeId}

Gets details of the specified ProviderConfigurationType.
URL Parameters
ParameterTypeRequiredDescription
typeIduint64requiredUnique identifier of the provider type
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationType
Deprecated
ProviderConfigurationTypeThe requested ProviderConfigurationTypes.
Use ProviderScript instead.
providerConfigurationType.geofenceTypesArray.<PlaceType>A list of supported types of geofences which can be programmed directly onto the device.
providerConfigurationType.iduint64Unique identifier.
providerConfigurationType.maxGeofenceCountuint32The maximum number of geofences that can be programmed onto a device. This number changes based on device make and model, and can also change based on the supported geofence types.
providerConfigurationType.minGeofenceCountuint32The minimum number of geofences that need to be programmed onto the device. This value is almost always zero.
providerConfigurationType.namestring
maximum-length: 100
Name of the configuration type.
providerConfigurationType.notesstringNotes regarding the use of this configuration.
providerConfigurationType.processedUtcdatetimeWhen the was change procesed.
providerConfigurationType.providerTypeProviderTypeThe applicable type of provider for which this configuration type can be created.
providerConfigurationType.scriptOptionsObject.<string, ProviderConfigurationNode>A tree-structure of configurations required (or optionally available) for programming a device.
providerConfigurationType.updatedby: login, from: monster
providerConfigurationType.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfigurationType": {
		"geofenceTypes": [
			string
		],
		"id": number,
		"maxGeofenceCount": number,
		"minGeofenceCount": number,
		"name": string,
		"notes": string,
		"processedUtc": string,
		"providerType": string,
		"scriptOptions": {
			string: {
				"id": string,
				"isAdvanced": boolean,
				"max": Object,
				"min": Object,
				"nodes": {
					string: { /* recursive ProviderConfigurationNode objects */ }
				},
				"notes": string,
				"type": string,
				"unit": string,
				"value": Object
			}
		},
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a providerConfigurationType object, or it is invalid.
4003The providerConfigurationType object does not contain an id, or it is invalid.
4015You do not have permission to view ProviderConfigurationTypes.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40447The ProviderConfigurationType was not found by its unique identifier.

GET/providers/configurations/types?kind={string}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Lists all the ProviderConfigurationTypes in the system by the given ProviderType.
URL Parameters
ParameterTypeRequiredDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
kindProviderType?optionalFilters the list based on the given ProviderType.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerConfigurationTypesArray.<ProviderConfigurationType>The list of requested ProviderConfigurationTypes.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerConfigurationTypes": [
		{
			"geofenceTypes": [
				string
			],
			"id": number,
			"maxGeofenceCount": number,
			"minGeofenceCount": number,
			"name": string,
			"notes": string,
			"processedUtc": string,
			"providerType": string,
			"scriptOptions": {
				string: {
					"id": string,
					"isAdvanced": boolean,
					"max": Object,
					"min": Object,
					"nodes": {
						string: { /* recursive ProviderConfigurationNode objects */ }
					},
					"notes": string,
					"type": string,
					"unit": string,
					"value": Object
				}
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The kind is invalid no a valid ProviderType value.
4015You do not have permission to view ProviderConfigurationTypes.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/providers/generals?includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

This request is an alias of /companies/{your-company-id}/providers.
URL Parameters
ParameterTypeRequiredDefaultDescription
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/providers/generals?config={uint64}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Providers for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
configuint64requiredUnique identifier of the ProviderConfig or ProviderConfiguration.
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Providers marked as Provider.suspended.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerGeneralsArray.<ProviderGeneral>The list of requested Providers.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerGenerals": [
		{
			"asset": number,
			"company": number,
			"configuration": number,
			"firmware": string,
			"firmwareStatus": string,
			"geofenceLast": string,
			"geofenceStatus": string,
			"id": string,
			"information": {
				string: string
			},
			"kind": string,
			"lastCheckIn": string,
			"name": string,
			"notes": string,
			"password": string,
			"phoneNumber": number,
			"pnd": string,
			"processedUtc": string,
			"scriptLast": string,
			"scriptStatus": string,
			"sim": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Providers for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/providers/registrations?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/providers/registrations.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/providers/registrations

Creates a new ProviderRegistration for a provider pending configuration.
HTTP Request body description
PropertyTypeRequiredDescription
providerRegistrationObject.<string, ?>alwaysA simple object to contain the ProviderRegistration parameters.
providerRegistration.assetuint64?optionalAn optional Asset to which the new Provider will be assigned.
providerRegistration.configuint64createThe identifier of the ProviderConfig/ProviderConfiguration that will be loaded onto the new Provider.
providerRegistration.identifierstring
maximum-length: 50
optionalIdentifier of the Provider to setup. This is helpful for long-term deployments, but will be overwritten during provisioning.
providerRegistration.lifetimetimespanoptionalThe lifetime of the ProviderRegistration. The default value (if not specified) is 10 minutes. It can be specified as up to 2 months to allow for longer deployments.
providerRegistration.namestring
maximum-length: 100
optionalA nickname given to the Provider once it has been provisioned.
providerRegistration.notesstringoptionalNotes about the Provider for after it's been programmed.
providerRegistration.passwordstring
maximum-length: 50
optionalThe password programmed on the Provider used to ensure the system is the only client authorized to make changes.
providerRegistration.phoneuint64?optionalIf known beforehand, a phone number can be specified for new Providers.
providerRegistration.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerRegistration": {
		"asset": number,
		"config": number,
		"identifier": string,
		"lifetime": string,
		"name": string,
		"notes": string,
		"password": string,
		"phone": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationProviderRegistrationThe complete ProviderRegistration object.
providerRegistration.assetuint64?The Asset for which this device will provide data.
providerRegistration.codestring
fixed length: 6
A unique six digit code.
providerRegistration.companyuint64The company to which the device will belong.
providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
providerRegistration.configuint64The predefined configuration this device will use.
providerRegistration.expiresdatetimeThe expiry date for this registration.
providerRegistration.identifierstring
maximum-length: 50
The unique identifier of the device that completed this registration.
providerRegistration.kindProviderTypeThe kind of protocol this device supports.
providerRegistration.namestring
maximum-length: 100
A nickname given to the device once it has been provisioned.
providerRegistration.notesstringNotes!
providerRegistration.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
providerRegistration.sincedatetimeDate/time stamp of when this registration began.
providerRegistration.useremail
maximum-length: 254
The unique identifier the user who generated this registration.
registration
Deprecated
ProviderRegistration
Use providerRegistration instead..
registration.assetuint64?The Asset for which this device will provide data.
registration.codestring
fixed length: 6
A unique six digit code.
registration.companyuint64The company to which the device will belong.
registration.completeddatetimeDate/time stamp of when this registration ended successfully.
registration.configuint64The predefined configuration this device will use.
registration.expiresdatetimeThe expiry date for this registration.
registration.identifierstring
maximum-length: 50
The unique identifier of the device that completed this registration.
registration.kindProviderTypeThe kind of protocol this device supports.
registration.namestring
maximum-length: 100
A nickname given to the device once it has been provisioned.
registration.notesstringNotes!
registration.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
registration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
registration.sincedatetimeDate/time stamp of when this registration began.
registration.useremail
maximum-length: 254
The unique identifier the user who generated this registration.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistration": {
		"asset": number,
		"code": string,
		"company": number,
		"completed": string,
		"config": number,
		"expires": string,
		"identifier": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"since": string,
		"user": string
	},
	"registration": {
		"asset": number,
		"code": string,
		"company": number,
		"completed": string,
		"config": number,
		"expires": string,
		"identifier": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"since": string,
		"user": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002The service was not abe to generate a unique code.
If you receive this error, please contact technical support.
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerRegistration object, or it is invalid.
4003The providerRegistration.config value is not an integer.
4003The providerRegistration.asset value was given, but it is not an integer.
4003The lifetime value was given and valid, but was too long of a time-span.
Returns an ErrorDetailInput as the errorDetails.
4003The phone value was given, but it is not an integer.
Returns an ErrorDetailPhone as the errorDetails.
4015You do not have access to the ProviderConfigs/ProviderConfigurations.
4015You do not have access to create new Provider.
4015You do not have access to the Asset being associated.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The specified Asset was not found.
40447The specified ProviderConfiguration is invalid.
If you receive this error, please contact technical support.
40448The specified ProviderConfig/ProviderConfiguration was not found.
404102The specified ProviderConfig is invalid.
If you receive this error, please contact technical support.
409130The specified Asset was found, but was not in the same Company as the given ProviderConfig/ProviderConfiguration.

DELETE/providers/registrations

Gets details of the specified ProviderRegistration.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationProviderRegistrationThe requested provider.
providerRegistration.assetuint64?The Asset for which this device will provide data.
providerRegistration.codestring
fixed length: 6
A unique six digit code.
providerRegistration.companyuint64The company to which the device will belong.
providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
providerRegistration.configuint64The predefined configuration this device will use.
providerRegistration.expiresdatetimeThe expiry date for this registration.
providerRegistration.identifierstring
maximum-length: 50
The unique identifier of the device that completed this registration.
providerRegistration.kindProviderTypeThe kind of protocol this device supports.
providerRegistration.namestring
maximum-length: 100
A nickname given to the device once it has been provisioned.
providerRegistration.notesstringNotes!
providerRegistration.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
providerRegistration.sincedatetimeDate/time stamp of when this registration began.
providerRegistration.useremail
maximum-length: 254
The unique identifier the user who generated this registration.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistration": {
		"asset": number,
		"code": string,
		"company": number,
		"completed": string,
		"config": number,
		"expires": string,
		"identifier": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"since": string,
		"user": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerRegistration object, or it is invalid.
4003The providerRegistration code is not an integer or is less than zero.
4015You do not have access to the ProviderConfig/ProviderConfigurations.
4015You do not have access to create new Providers.
4015You do not have access to the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40086The code is valid, but the ProviderRegistration was not found, or has already been completed.

GET/providers/registrations/{keyCode}

Gets details of the specified ProviderRegistration.
URL Parameters
ParameterTypeRequiredDescription
keyCodestringrequiredUnique identifier of the ProviderRegistration.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationProviderRegistrationThe requested provider.
providerRegistration.assetuint64?The Asset for which this device will provide data.
providerRegistration.codestring
fixed length: 6
A unique six digit code.
providerRegistration.companyuint64The company to which the device will belong.
providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
providerRegistration.configuint64The predefined configuration this device will use.
providerRegistration.expiresdatetimeThe expiry date for this registration.
providerRegistration.identifierstring
maximum-length: 50
The unique identifier of the device that completed this registration.
providerRegistration.kindProviderTypeThe kind of protocol this device supports.
providerRegistration.namestring
maximum-length: 100
A nickname given to the device once it has been provisioned.
providerRegistration.notesstringNotes!
providerRegistration.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
providerRegistration.sincedatetimeDate/time stamp of when this registration began.
providerRegistration.useremail
maximum-length: 254
The unique identifier the user who generated this registration.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistration": {
		"asset": number,
		"code": string,
		"company": number,
		"completed": string,
		"config": number,
		"expires": string,
		"identifier": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"since": string,
		"user": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a providerRegistration object, or it is invalid.
4003The providerRegistration code is not an integer or is less than zero.
4015You do not have access to the ProviderConfig/ProviderConfigurations.
4015You do not have access to view Providers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40086The code is valid, but the ProviderRegistration was not found.

POST/providers/registrations/{keyCode}

Creates a new ProviderRegistration for a provider pending configuration.
URL Parameters
ParameterTypeRequiredDescription
keyCodestringoptional
HTTP Request body description
PropertyTypeRequiredDescription
providerRegistrationObject.<string, ?>alwaysA simple object to contain the ProviderRegistration parameters.
providerRegistration.assetuint64?optionalAn optional Asset to which the new Provider will be assigned.
providerRegistration.configuint64createThe identifier of the ProviderConfig/ProviderConfiguration that will be loaded onto the new Provider.
providerRegistration.identifierstring
maximum-length: 50
optionalIdentifier of the Provider to setup. This is helpful for long-term deployments, but will be overwritten during provisioning.
providerRegistration.lifetimetimespanoptionalThe lifetime of the ProviderRegistration. The default value (if not specified) is 10 minutes. It can be specified as up to 2 months to allow for longer deployments.
providerRegistration.namestring
maximum-length: 100
optionalA nickname given to the Provider once it has been provisioned.
providerRegistration.notesstringoptionalNotes about the Provider for after it's been programmed.
providerRegistration.passwordstring
maximum-length: 50
optionalThe password programmed on the Provider used to ensure the system is the only client authorized to make changes.
providerRegistration.phoneuint64?optionalIf known beforehand, a phone number can be specified for new Providers.
providerRegistration.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerRegistration": {
		"asset": number,
		"config": number,
		"identifier": string,
		"lifetime": string,
		"name": string,
		"notes": string,
		"password": string,
		"phone": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationProviderRegistrationThe complete ProviderRegistration object.
providerRegistration.assetuint64?The Asset for which this device will provide data.
providerRegistration.codestring
fixed length: 6
A unique six digit code.
providerRegistration.companyuint64The company to which the device will belong.
providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
providerRegistration.configuint64The predefined configuration this device will use.
providerRegistration.expiresdatetimeThe expiry date for this registration.
providerRegistration.identifierstring
maximum-length: 50
The unique identifier of the device that completed this registration.
providerRegistration.kindProviderTypeThe kind of protocol this device supports.
providerRegistration.namestring
maximum-length: 100
A nickname given to the device once it has been provisioned.
providerRegistration.notesstringNotes!
providerRegistration.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
providerRegistration.sincedatetimeDate/time stamp of when this registration began.
providerRegistration.useremail
maximum-length: 254
The unique identifier the user who generated this registration.
registration
Deprecated
ProviderRegistration
Use providerRegistration instead..
registration.assetuint64?The Asset for which this device will provide data.
registration.codestring
fixed length: 6
A unique six digit code.
registration.companyuint64The company to which the device will belong.
registration.completeddatetimeDate/time stamp of when this registration ended successfully.
registration.configuint64The predefined configuration this device will use.
registration.expiresdatetimeThe expiry date for this registration.
registration.identifierstring
maximum-length: 50
The unique identifier of the device that completed this registration.
registration.kindProviderTypeThe kind of protocol this device supports.
registration.namestring
maximum-length: 100
A nickname given to the device once it has been provisioned.
registration.notesstringNotes!
registration.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
registration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
registration.sincedatetimeDate/time stamp of when this registration began.
registration.useremail
maximum-length: 254
The unique identifier the user who generated this registration.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistration": {
		"asset": number,
		"code": string,
		"company": number,
		"completed": string,
		"config": number,
		"expires": string,
		"identifier": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"since": string,
		"user": string
	},
	"registration": {
		"asset": number,
		"code": string,
		"company": number,
		"completed": string,
		"config": number,
		"expires": string,
		"identifier": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"since": string,
		"user": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002The service was not abe to generate a unique code.
If you receive this error, please contact technical support.
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerRegistration object, or it is invalid.
4003The providerRegistration.config value is not an integer.
4003The providerRegistration.asset value was given, but it is not an integer.
4003The lifetime value was given and valid, but was too long of a time-span.
Returns an ErrorDetailInput as the errorDetails.
4003The phone value was given, but it is not an integer.
Returns an ErrorDetailPhone as the errorDetails.
4015You do not have access to the ProviderConfigs/ProviderConfigurations.
4015You do not have access to create new Provider.
4015You do not have access to the Asset being associated.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The specified Asset was not found.
40447The specified ProviderConfiguration is invalid.
If you receive this error, please contact technical support.
40448The specified ProviderConfig/ProviderConfiguration was not found.
404102The specified ProviderConfig is invalid.
If you receive this error, please contact technical support.
409130The specified Asset was found, but was not in the same Company as the given ProviderConfig/ProviderConfiguration.

DELETE/providers/registrations/{keyCode}

Gets details of the specified ProviderRegistration.
URL Parameters
ParameterTypeRequiredDescription
keyCodestringrequiredUnique identifier of the ProviderRegistration.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationProviderRegistrationThe requested provider.
providerRegistration.assetuint64?The Asset for which this device will provide data.
providerRegistration.codestring
fixed length: 6
A unique six digit code.
providerRegistration.companyuint64The company to which the device will belong.
providerRegistration.completeddatetimeDate/time stamp of when this registration ended successfully.
providerRegistration.configuint64The predefined configuration this device will use.
providerRegistration.expiresdatetimeThe expiry date for this registration.
providerRegistration.identifierstring
maximum-length: 50
The unique identifier of the device that completed this registration.
providerRegistration.kindProviderTypeThe kind of protocol this device supports.
providerRegistration.namestring
maximum-length: 100
A nickname given to the device once it has been provisioned.
providerRegistration.notesstringNotes!
providerRegistration.passwordstring
maximum-length: 50
The password programmed on the device used to ensure the system is the only client authorized to make changes.
providerRegistration.phoneNumberuint64?The phone number of the device being provisioned. This is set by the user for long-term registrations, or by the client during serial port setup.
providerRegistration.sincedatetimeDate/time stamp of when this registration began.
providerRegistration.useremail
maximum-length: 254
The unique identifier the user who generated this registration.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistration": {
		"asset": number,
		"code": string,
		"company": number,
		"completed": string,
		"config": number,
		"expires": string,
		"identifier": string,
		"kind": string,
		"name": string,
		"notes": string,
		"password": string,
		"phoneNumber": number,
		"since": string,
		"user": string
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerRegistration object, or it is invalid.
4003The providerRegistration code is not an integer or is less than zero.
4015You do not have access to the ProviderConfig/ProviderConfigurations.
4015You do not have access to create new Providers.
4015You do not have access to the associated Asset.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40086The code is valid, but the ProviderRegistration was not found, or has already been completed.

GET/providers/registrations?configId={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ProviderRegistrations for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
configIduint64requiredUnique identifier of the ProviderConfig or ProviderConfiguration.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerRegistrationsArray.<ProviderRegistration>The list of ProviderRegistrations.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerRegistrations": [
		{
			"asset": number,
			"code": string,
			"company": number,
			"completed": string,
			"config": number,
			"expires": string,
			"identifier": string,
			"kind": string,
			"name": string,
			"notes": string,
			"password": string,
			"phoneNumber": number,
			"since": string,
			"user": string
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company id is not an integer or is less than zero.
4015You do not have access to the ProviderConfigs/ProviderConfigurations.
4015You do not have access to view Providers.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company value is valid, but could not be found.

GET/providers/scripts?trunk=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/providers/scripts/.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
trunkbooleanoptionaltrueDefaults to true for this alias.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/providers/scripts

Creates a new or updates an existing ProviderScript.
HTTP Request body description
PropertyTypeRequiredDescription
providerScriptObject.<string, ?>alwaysA simple object to contain the ProviderScript parameters.
providerScript.blocksArray.<ProviderScriptBlock>
minimum-count of values: 1
createBlocks of file data which are (optionally) included in the ProviderScript data file.
providerScript.companyuint64?createThe Company to which this ProviderScript belongs. After creation, this value is read-only.
providerScript.fillstringoptionalBackground and fill colour in the UI.
providerScript.globalbooleanoptionalIndicates whether this ProviderScript is available to child companies.
providerScript.graphicstringoptionalThe name of the symbol shown in the UI.
providerScript.iduint64?updateThe unique identifier of the ProviderScript you want to update.
providerScript.kindProviderType?createThe type of provider for which this ProviderScript can be used. Limiting to a specific model from a manufacturer is accomplished through the block conditions.
providerScript.namestring
maximum-length: 100
optionalName for the ProviderScript.
providerScript.notesstringoptionalNotes for the ProviderScript.
providerScript.parametersObject.<string, ProviderScriptParameter>optionalParameter definitions for this ProviderScript, including type-hints and default values.
providerScript.strokestringoptionalText and outline colour in the UI.
providerScript.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerScript": {
		"blocks": [
			{
				"condition": string,
				"content": string,
				"replace": string,
				"validate": string
			}
		],
		"company": number,
		"fill": string,
		"global": boolean,
		"graphic": string,
		"id": number,
		"kind": string,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"advanced": boolean,
				"context": string,
				"notes": string,
				"order": number,
				"type": string,
				"value": string
			}
		},
		"stroke": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerScriptRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
providerScript.companyuint64Identifier of the Company to which this object belongs.
providerScript.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerScript": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerScript object, or it is invalid.
4003Not enough keys exist in the providerScript object.
4003The given kind was not valid ProviderType.
4003During create: When creating a new ProviderScript, a name was not given, or it is invalid.
4003During create: When creating a new ProviderScript, a company was not given.
4003During create: When creating a new ProviderScript, a kind was not given, or it is invalid.
4003During create: When creating a new ProviderScript, at least one block must be given.
4003During update: When updating a ProviderScript, the id was invalid.
4003During update: When updating a ProviderScript, the name was given as blank.
4003During update: When updating a ProviderScript, the v was not an array, or contained too few numbers.
4003One of the providerScript.blocks was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the providerScript.blocks replace value was not a valid regular expression.
Returns an ErrorDetailInput as the errorDetails.
4003One of the providerScript.parameters was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the providerScript.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new ProviderScript.
4015You do not have permission to update this ProviderScript.
4006During update: When updating a ProviderScript, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404102During update: The ProviderScript was not found by its unique identifier.
409104During update: When updating a ProviderScript which is marked as global, but is being set as private, but is implemented by ProviderConfigs from child companies.
Returns an ErrorDetailCount as the errorDetails.
409130During update: When updating a ProviderScript, the providerScript.company can not be changed.
409130During update: When updating a ProviderScript, the providerScript.kind can not be changed.
409130There is one or more missing parameters identified as variables in the providerScript.blocks.
Returns an ErrorDetailBadKeys as the errorDetails.

DELETE/providers/scripts

Deletes an existing ProviderScript.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerScriptRespDeletedAn object which contains the ProviderScript's id, owning company id, and deleted status.
providerScript.companyuint64Identifier of the Company to which this object belongs.
providerScript.deletedbooleanFlag showing if the object is deleted.
providerScript.iduint64?Identifier given as input for the command.
providerScript.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerScript": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerScript object, or it is invalid.
4003The providerScript object does not contain an id, or it is invalid.
4015You do not have permission to delete this ProviderScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404102The ProviderScript was not found by its unique identifier.
409104This ProviderScript is still being used by one of more ProviderConfigs.
Returns an ErrorDetailCount as the errorDetails.

GET/providers/scripts/{scriptId}?includeDeleted=boolean

Gets details of the specified ProviderScript.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
scriptIduint64requiredUnique identifier of the ProviderScript.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerScriptProviderScriptThe requested ProviderScript.
providerScript.blocksArray.<ProviderScriptBlock>Blocks of file data which are (optionally) included in the script data file.
providerScript.companyuint64The company to which this configuration belongs.
providerScript.fillcolour
maximum-length: 22
The fill/background colour of the icon.
providerScript.globalbooleanIndicates whether this script is available to child companies.
providerScript.graphiccodified
maximum-length: 22
The name of the symbol for this script.
providerScript.iduint64Unique identifier of this configuration.
providerScript.kindProviderTypeThe type of provider for which this script can be used. Limiting to a specific model from a manufacturer is accomplished through the block conditions.
providerScript.namestring
maximum-length: 100
The nickname given to this configuration
providerScript.notesstringSimple details about how the providers are expected to behave.
providerScript.parametersObject.<string, ProviderScriptParameter>Parameter definitions for this script, including type-hints and default values.
providerScript.processedUtcdatetimeWhen the was change procesed.
providerScript.strokecolour
maximum-length: 22
Outline and graphic colour.
providerScript.updatedby: login, from: monster
providerScript.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerScript": {
		"blocks": [
			{
				"condition": string,
				"content": string,
				"replace": string,
				"validate": string
			}
		],
		"company": number,
		"fill": string,
		"global": boolean,
		"graphic": string,
		"id": number,
		"kind": string,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"advanced": boolean,
				"context": string,
				"notes": string,
				"order": number,
				"type": string,
				"value": string
			}
		},
		"processedUtc": string,
		"stroke": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a providerScript object, or it is invalid.
4003The providerScript object does not contain an id, or it is invalid.
4015You do not have permission to view this ProviderScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404102The ProviderScript was not found by its unique identifier.

POST/providers/scripts/{scriptId}

Creates a new or updates an existing ProviderScript.
URL Parameters
ParameterTypeRequiredDescription
scriptIduint64?optionalUnique identifier of the ProviderScript. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
providerScriptObject.<string, ?>alwaysA simple object to contain the ProviderScript parameters.
providerScript.blocksArray.<ProviderScriptBlock>
minimum-count of values: 1
createBlocks of file data which are (optionally) included in the ProviderScript data file.
providerScript.companyuint64?createThe Company to which this ProviderScript belongs. After creation, this value is read-only.
providerScript.fillstringoptionalBackground and fill colour in the UI.
providerScript.globalbooleanoptionalIndicates whether this ProviderScript is available to child companies.
providerScript.graphicstringoptionalThe name of the symbol shown in the UI.
providerScript.iduint64?updateThe unique identifier of the ProviderScript you want to update.
providerScript.kindProviderType?createThe type of provider for which this ProviderScript can be used. Limiting to a specific model from a manufacturer is accomplished through the block conditions.
providerScript.namestring
maximum-length: 100
optionalName for the ProviderScript.
providerScript.notesstringoptionalNotes for the ProviderScript.
providerScript.parametersObject.<string, ProviderScriptParameter>optionalParameter definitions for this ProviderScript, including type-hints and default values.
providerScript.strokestringoptionalText and outline colour in the UI.
providerScript.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerScript": {
		"blocks": [
			{
				"condition": string,
				"content": string,
				"replace": string,
				"validate": string
			}
		],
		"company": number,
		"fill": string,
		"global": boolean,
		"graphic": string,
		"id": number,
		"kind": string,
		"name": string,
		"notes": string,
		"parameters": {
			string: {
				"advanced": boolean,
				"context": string,
				"notes": string,
				"order": number,
				"type": string,
				"value": string
			}
		},
		"stroke": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerScriptRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
providerScript.companyuint64Identifier of the Company to which this object belongs.
providerScript.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerScript": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerScript object, or it is invalid.
4003Not enough keys exist in the providerScript object.
4003The given kind was not valid ProviderType.
4003During create: When creating a new ProviderScript, a name was not given, or it is invalid.
4003During create: When creating a new ProviderScript, a company was not given.
4003During create: When creating a new ProviderScript, a kind was not given, or it is invalid.
4003During create: When creating a new ProviderScript, at least one block must be given.
4003During update: When updating a ProviderScript, the id was invalid.
4003During update: When updating a ProviderScript, the name was given as blank.
4003During update: When updating a ProviderScript, the v was not an array, or contained too few numbers.
4003One of the providerScript.blocks was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the providerScript.blocks replace value was not a valid regular expression.
Returns an ErrorDetailInput as the errorDetails.
4003One of the providerScript.parameters was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the providerScript.parameters keys was blank or white-space.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new ProviderScript.
4015You do not have permission to update this ProviderScript.
4006During update: When updating a ProviderScript, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404102During update: The ProviderScript was not found by its unique identifier.
409104During update: When updating a ProviderScript which is marked as global, but is being set as private, but is implemented by ProviderConfigs from child companies.
Returns an ErrorDetailCount as the errorDetails.
409130During update: When updating a ProviderScript, the providerScript.company can not be changed.
409130During update: When updating a ProviderScript, the providerScript.kind can not be changed.
409130There is one or more missing parameters identified as variables in the providerScript.blocks.
Returns an ErrorDetailBadKeys as the errorDetails.

DELETE/providers/scripts/{scriptId}

Deletes an existing ProviderScript.
URL Parameters
ParameterTypeRequiredDescription
scriptIduint64requiredUnique identifier of the ProviderScript.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerScriptRespDeletedAn object which contains the ProviderScript's id, owning company id, and deleted status.
providerScript.companyuint64Identifier of the Company to which this object belongs.
providerScript.deletedbooleanFlag showing if the object is deleted.
providerScript.iduint64?Identifier given as input for the command.
providerScript.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerScript": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerScript object, or it is invalid.
4003The providerScript object does not contain an id, or it is invalid.
4015You do not have permission to delete this ProviderScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404102The ProviderScript was not found by its unique identifier.
409104This ProviderScript is still being used by one of more ProviderConfigs.
Returns an ErrorDetailCount as the errorDetails.

PATCH/providers/scripts/{scriptId}/restore

Restores the specified ProviderScript.
URL Parameters
ParameterTypeRequiredDescription
scriptIduint64requiredUnique identifier of the ProviderScript.
HTTP Request body description
PropertyTypeRequiredDescription
providerScriptParamIdalwaysAn object to contain the "id" of the ProviderScript.
providerScript.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"providerScript": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providerScriptRespDeletedAn object which contains the ProviderScript's id, owning company id, and deleted status.
providerScript.companyuint64Identifier of the Company to which this object belongs.
providerScript.deletedbooleanFlag showing if the object is deleted.
providerScript.iduint64?Identifier given as input for the command.
providerScript.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providerScript": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a providerScript object, or it is invalid.
4003The providerScript object does not contain an id, or it is invalid.
4015You do not have permission to restore this ProviderScript.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404102The ProviderScript was not found by its unique identifier.
400103The ProviderScript was found, but is not marked as deleted.

GET/providers?config={uint64}&includeSuspended=boolean&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Providers for the specified Company.
URL Parameters
ParameterTypeRequiredDefaultDescription
configuint64requiredUnique identifier of the ProviderConfig or ProviderConfiguration.
firststringoptionalWhen using , sets the first alphabetic Provider.id when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
includeSuspendedbooleanoptionaltrueWhen true (default), the command will also return Providers marked as Provider.suspended.
laststringoptionalWhen using , sets the last alphabetic Provider.id when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Providers belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
providersArray.<Provider>The list of requested Providers.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"providers": [
		{
			"asset": number,
			"attributes": {
				string: {
					string: {
						"dts": string,
						"unit": string,
						"value": Object
					}
				}
			},
			"commands": {
				string: {
					"created": string,
					"parameters": [
						string
					],
					"processed": string,
					"status": string
				}
			},
			"company": number,
			"configuration": number,
			"control": {
				"commands": {
					string: {
						"created": string,
						"parameters": [
							string
						],
						"processed": string,
						"status": string
					}
				},
				"company": number,
				"id": string,
				"processedUtc": string,
				"updated": {
				},
				"v": [
					number
				]
			},
			"firmware": string,
			"firmwareStatus": string,
			"geofenceLast": string,
			"geofenceStatus": string,
			"id": string,
			"information": {
				string: string
			},
			"kind": string,
			"lastCheckIn": string,
			"lastIP": string,
			"name": string,
			"notes": string,
			"password": string,
			"phoneNumber": number,
			"pnd": string,
			"processedUtc": string,
			"scriptLast": string,
			"scriptStatus": string,
			"sim": string,
			"snf": {
				string: string
			},
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Providers for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

Reports

GET/companies/{companyId}/reports/results?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of ReportResult for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
companyIduint64requiredUnique identifier of the Company.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of ReportResults belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultsArray.<ReportResult>The list of requested ReportResults.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResults": [
		{
			"archive": boolean,
			"bounds": {
				"east": number,
				"north": number,
				"south": number,
				"west": number
			},
			"company": number,
			"completed": string,
			"created": string,
			"error": string,
			"filtered": [
				number
			],
			"id": number,
			"name": string,
			"notes": string,
			"options": {
				"filtering": string,
				"parameters": [
					{
						"type": string,
						"value": string
					}
				],
				"places": string,
				"regions": [
					string
				],
				"scorecardRules": {
					"baseScore": number,
					"parameters": [
						{
							"condition": string,
							"duration": string,
							"points": number
						}
					]
				},
				"targets": string
			},
			"processedUtc": string,
			"progress": number,
			"runBy": string,
			"schedule": number,
			"scorecards": [
				{
					"asset": number,
					"rulePoints": {
						string: number
					},
					"score": number
				}
			],
			"status": string,
			"targeted": [
				number
			],
			"template": number,
			"timezone": string,
			"totals": [
				{
					"asset": number,
					"distance": number,
					"duration": string,
					"stateDetail": string,
					"summaryCount": number,
					"value": number,
					"valueType": string
				}
			],
			"type": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view ReportResult.
4015You do not have permission to any of the Assets in the Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company whose ReportResults you are trying to list was not found.

GET/companies/{companyId}/reports/schedules?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ReportSchedules for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object which contains only one key "id" when there is no error. The "id" key is the unique identifier of the company to which the array of objects relate.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportSchedulesArray.<ReportSchedule>The list of schedules.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedules": [
		{
			"company": number,
			"enabled": boolean,
			"id": number,
			"name": string,
			"notes": string,
			"notify": {
				"assets": string,
				"users": [
					string
				]
			},
			"options": {
				"filtering": string,
				"parameters": [
					{
						"type": string,
						"value": string
					}
				],
				"places": string,
				"regions": [
					string
				],
				"scorecardRules": {
					"baseScore": number,
					"parameters": [
						{
							"condition": string,
							"duration": string,
							"points": number
						}
					]
				},
				"targets": string
			},
			"owner": string,
			"processedUtc": string,
			"repetition": {
				"end": string,
				"iterations": number,
				"kind": string,
				"lastEndDate": string,
				"lastResult": number,
				"lastStartDate": string,
				"nextEndDate": string,
				"nextStartDate": string,
				"start": string,
				"timezone": string,
				"weekday": number,
				"weekdays": [
					boolean
				]
			},
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view ReportSchedules.
4015You do not have permission to view Asset history.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The company whose ReportSchedules you are trying to list was not found.

GET/companies/{companyId}/reports/templates?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ReportTemplate for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of ReportTemplates belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportTemplatesArray.<ReportTemplate>The list of requested ReportTemplates.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportTemplates": [
		{
			"company": number,
			"fill": string,
			"graphic": string,
			"id": number,
			"name": string,
			"notes": string,
			"options": {
				"filtering": string,
				"parameters": [
					{
						"type": string,
						"value": string
					}
				],
				"places": string,
				"regions": [
					string
				],
				"scorecardRules": {
					"baseScore": number,
					"parameters": [
						{
							"condition": string,
							"duration": string,
							"points": number
						}
					]
				},
				"targets": string
			},
			"processedUtc": string,
			"stroke": string,
			"type": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view ReportTemplates.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/reports/results?includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

This request is an alias of /companies/{your-company-id}/reports/results.
URL Parameters
ParameterTypeRequiredDefaultDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects retrieved from the archive.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/reports/results

Creates a new ReportResult that will run automatically, or updates an existing ReportResult.
HTTP Request body description
PropertyTypeRequiredDescription
reportResultObject.<string, ?>alwaysA simple object to contain the ReportResult parameters.
reportResult.archivebooleanoptionalIndicates whether this report should be archived. Archived report ReportResult are stored for six months. Non-archive reports are purged after 24 hours.
reportResult.companyuint64?create (complex)The Company to which these report ReportResult belongs.
reportResult.iduint64?updateThe unique identifier of the ReportResult you want to update.
reportResult.namestring
maximum-length: 100
createName for the report ReportResult.
reportResult.notesstringoptionalNotes for these report ReportResult.
reportResult.optionsObject.<string, ?>create (complex)Specified parameters for the report logic, targeted Assets, and filtering Places and/or regions.
reportResult.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
reportResult.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
reportResult.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportResult.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
reportResult.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
reportResult.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
reportResult.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
reportResult.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
reportResult.templateuint64?create (simple)Identifier of the ReportTemplate used to help create these ReportResult.
reportResult.timezonecodifiedcreateThe Timezone.code of the local timezone used to calculate times.
reportResult.typeReportType?create (complex)The kind of logic used to build the report ReportResult.
reportResult.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportResult": {
		"archive": boolean,
		"company": number,
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"template": number,
		"timezone": string,
		"type": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultRespIdCompanyTemplateAn object which contains the "id", "company", and "template" keys.
reportResult.companyuint64Identifier of the Company to which this object belongs.
reportResult.iduint64?Identifier given as input for the command.
reportResult.templateuint64?Identifier of the ReportTemplate the report object implements.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResult": {
		"company": number,
		"id": number,
		"template": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
5002During update: When updating a ReportResult, you cannot change options after ReportResult begins running.
If you receive this error, please contact technical support.
5002During update: When updating a ReportResult, you cannot change timezone after ReportResult begins running.
If you receive this error, please contact technical support.
4003The request does not contain a reportResult object, or it is invalid.
4003No valid changes would be performed.
4003During create: When creating a new ReportResult, a timezone was not given.
4003During create: When creating a new ReportResult, a company or template was not given.
4003During create: When creating a new ReportResult, a type or template was not given.
4003During create: When creating a new ReportResult, a name or template was not given.
4003During create: When creating a new ReportResult, the options or template was not given.
4003During create: When creating a new ReportResult, given template does not match the given company.
4003During update: When updating a ReportResult, the v was not an array, or contained too few numbers.
4003During update: When updating a ReportResult, the name was given as null or blank.
4015There are no targeted assets, so the report would not run.
4015During create: You do not have permission to create new ReportResult.
4015During update: You do not have permission to update ReportResult.
4006During update: When updating a ReportResult, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company being targetted is not found.
40452During create: When creating a new ReportResult, the given ReportTemplate was not found.
40467During update: The ReportResult you are trying to update was not found.
409130During create: When creating a new ReportResult, and no reportResult.options.targets are given, and the ReportTemplate also has no targets.
409130During create: The specified reportResult.company was found, but was not in the same Company as the given ReportTemplate.
409130During update: When updating a ReportResult, the reportResult.company can not be changed.

DELETE/reports/results

Deletes the specified ReportResult.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultRespDeletedAn object which contains the ReportResult's id, owning Company id, and deleted status.
reportResult.companyuint64Identifier of the Company to which this object belongs.
reportResult.deletedbooleanFlag showing if the object is deleted.
reportResult.iduint64?Identifier given as input for the command.
reportResult.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResult": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportResult object, or it is invalid.
4003The reportResult object does not contain an id, or it is invalid.
4015You do not have permission to delete ReportResults.
4015You do not have permission to view all of the Assets targetted by this ReportResult.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company to which the ReportResult belongs was not found.
40467The ReportResult you are trying to delete was not found.

GET/reports/results/{resultId}?summary=boolean&breakdown=boolean&includeDeleted=boolean

Gets details of the specified ReportResult. Optionally, can also retrieve the report summary and breakdown.
URL Parameters
ParameterTypeRequiredDefaultDescription
breakdownbooleanoptionalfalseWhen true, will also return all the ReportBreakdowns.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
resultIduint64requiredUnique identifier of the ReportResult.
summarybooleanoptionalfalseWhen true, will also return all the ReportSummarys.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultReportResultThe requested ReportResult.
reportResult.archivebooleanPreserve these results for later review. Results are regularly culled from the system.
reportResult.boundsLatLngBoundsAfter processing, the boundary of the results are given so that a map can be focused on that area.
reportResult.bounds.eastdoubleEastern longitude
reportResult.bounds.northdoubleNorthern latitude
reportResult.bounds.southdoubleSouthern latitude
reportResult.bounds.westdoubleWestern longitude
reportResult.companyuint64The company to which this report belongs
reportResult.completeddatetimeThe date/time this result was finished processing.
reportResult.createddatetimeThe date/time this result was requested.
reportResult.errorstring
maximum-length: 250
A field which contains report error details if the ReportResult.status is ReportStatus.failed.
reportResult.filteredArray.<uint64>When the report runs, a list of filtered places is calculated based on the ReportOption's place filtering expression.
reportResult.iduint64Unique identifier
reportResult.namestring
maximum-length: 100
Name of this report.
reportResult.notesstringNotes about this report.
reportResult.optionsReportOptionsSpecified parameters for the report logic, targeted Assets, and filtering Places.
reportResult.options.filteringReportFilterModeThe mechanism to use for filtering based on places and regions.
reportResult.options.parametersArray.<ReportParameter>A list of parameters to better shape the results.
reportResult.options.placesexpressionA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportResult.options.regionsArray.<string>A list of provinces and states, where only assets within those regions will be included in the results.
reportResult.options.scorecardRulesReportScorecardRulesRules used to generate scorecard for this report.
reportResult.options.scorecardRules.baseScoredoubleBase score for the scorecard.
reportResult.options.scorecardRules.parametersArray.<ReportScorecardParameter>Infraction parameters used to generate the final score
reportResult.options.targetsexpressionA targeting expression for including/excluding Assets.
reportResult.processedUtcdatetimeWhen the was change procesed.
reportResult.progressbyteThe progress in processing/saving this result is a number between 0 and 100.
reportResult.runByemail
maximum-length: 254
The login of the user that ran this report.
reportResult.scheduleuint64?A reference to the schedule used to create this result. This field is optional as not all results are created on a schedule.
reportResult.scorecardsArray.<ReportScorecard>Scorecards for all the targeted assets based on the scorecard rules.
reportResult.statusReportStatusThe processing status of this report.
reportResult.targetedArray.<uint64>When the report runs, a list of targeted assets is calculated based on the ReportOption's targeting expression.
reportResult.templateuint64?A reference to the Template used to create this result. This field is optional because templates are not necessarily required; they just make life a lot easier.
reportResult.timezonecodifiedThe timezone code used to adjust dates/times used in processing and saving this report.
reportResult.totalsArray.<ReportTotal>After processing, the report totals the values from all summary instances for a quick overview of the kind of results generated.
reportResult.typeReportTypeRefers to the type of logic used by this report.
reportResult.updatedby: login, from: monster
reportResult.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResult": {
		"archive": boolean,
		"bounds": {
			"east": number,
			"north": number,
			"south": number,
			"west": number
		},
		"company": number,
		"completed": string,
		"created": string,
		"error": string,
		"filtered": [
			number
		],
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"processedUtc": string,
		"progress": number,
		"runBy": string,
		"schedule": number,
		"scorecards": [
			{
				"asset": number,
				"rulePoints": {
					string: number
				},
				"score": number
			}
		],
		"status": string,
		"targeted": [
			number
		],
		"template": number,
		"timezone": string,
		"totals": [
			{
				"asset": number,
				"distance": number,
				"duration": string,
				"stateDetail": string,
				"summaryCount": number,
				"value": number,
				"valueType": string
			}
		],
		"type": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportResult object, or it is invalid.
4003The reportResult object does not contain an id, or it is invalid.
4015You do not have permission to view ReportResults.
4015You do not have permission to any of the Assets targetted by this ReportResult.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company to which the ReportResult belongs was not found.
40467The ReportResult you are trying to retrieve was not found.
40095When trynig to get summary and/or breakdown, the ReportResult has not finished running.

POST/reports/results/{resultId}

Creates a new ReportResult that will run automatically, or updates an existing ReportResult.
URL Parameters
ParameterTypeRequiredDescription
resultIduint64?optionalUnique identifier of the ReportResult. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
reportResultObject.<string, ?>alwaysA simple object to contain the ReportResult parameters.
reportResult.archivebooleanoptionalIndicates whether this report should be archived. Archived report ReportResult are stored for six months. Non-archive reports are purged after 24 hours.
reportResult.companyuint64?create (complex)The Company to which these report ReportResult belongs.
reportResult.iduint64?updateThe unique identifier of the ReportResult you want to update.
reportResult.namestring
maximum-length: 100
createName for the report ReportResult.
reportResult.notesstringoptionalNotes for these report ReportResult.
reportResult.optionsObject.<string, ?>create (complex)Specified parameters for the report logic, targeted Assets, and filtering Places and/or regions.
reportResult.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
reportResult.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
reportResult.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportResult.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
reportResult.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
reportResult.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
reportResult.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
reportResult.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
reportResult.templateuint64?create (simple)Identifier of the ReportTemplate used to help create these ReportResult.
reportResult.timezonecodifiedcreateThe Timezone.code of the local timezone used to calculate times.
reportResult.typeReportType?create (complex)The kind of logic used to build the report ReportResult.
reportResult.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportResult": {
		"archive": boolean,
		"company": number,
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"template": number,
		"timezone": string,
		"type": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultRespIdCompanyTemplateAn object which contains the "id", "company", and "template" keys.
reportResult.companyuint64Identifier of the Company to which this object belongs.
reportResult.iduint64?Identifier given as input for the command.
reportResult.templateuint64?Identifier of the ReportTemplate the report object implements.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResult": {
		"company": number,
		"id": number,
		"template": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
5002During update: When updating a ReportResult, you cannot change options after ReportResult begins running.
If you receive this error, please contact technical support.
5002During update: When updating a ReportResult, you cannot change timezone after ReportResult begins running.
If you receive this error, please contact technical support.
4003The request does not contain a reportResult object, or it is invalid.
4003No valid changes would be performed.
4003During create: When creating a new ReportResult, a timezone was not given.
4003During create: When creating a new ReportResult, a company or template was not given.
4003During create: When creating a new ReportResult, a type or template was not given.
4003During create: When creating a new ReportResult, a name or template was not given.
4003During create: When creating a new ReportResult, the options or template was not given.
4003During create: When creating a new ReportResult, given template does not match the given company.
4003During update: When updating a ReportResult, the v was not an array, or contained too few numbers.
4003During update: When updating a ReportResult, the name was given as null or blank.
4015There are no targeted assets, so the report would not run.
4015During create: You do not have permission to create new ReportResult.
4015During update: You do not have permission to update ReportResult.
4006During update: When updating a ReportResult, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company being targetted is not found.
40452During create: When creating a new ReportResult, the given ReportTemplate was not found.
40467During update: The ReportResult you are trying to update was not found.
409130During create: When creating a new ReportResult, and no reportResult.options.targets are given, and the ReportTemplate also has no targets.
409130During create: The specified reportResult.company was found, but was not in the same Company as the given ReportTemplate.
409130During update: When updating a ReportResult, the reportResult.company can not be changed.

DELETE/reports/results/{resultId}

Deletes the specified ReportResult.
URL Parameters
ParameterTypeRequiredDescription
resultIduint64requiredUnique identifier of the ReportResult.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultRespDeletedAn object which contains the ReportResult's id, owning Company id, and deleted status.
reportResult.companyuint64Identifier of the Company to which this object belongs.
reportResult.deletedbooleanFlag showing if the object is deleted.
reportResult.iduint64?Identifier given as input for the command.
reportResult.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResult": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportResult object, or it is invalid.
4003The reportResult object does not contain an id, or it is invalid.
4015You do not have permission to delete ReportResults.
4015You do not have permission to view all of the Assets targetted by this ReportResult.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company to which the ReportResult belongs was not found.
40467The ReportResult you are trying to delete was not found.

PATCH/reports/results/{resultId}/restore

Restores a deleted ReportResult.
URL Parameters
ParameterTypeRequiredDescription
resultIduint64requiredUnique identifier of the ReportResult.
HTTP Request body description
PropertyTypeRequiredDescription
reportResultParamIdalwaysAn object to contain the "id" of the ReportResult.
reportResult.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportResult": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultRespDeletedAn object which contains the ReportResult's id, owning Company id, and deleted status.
reportResult.companyuint64Identifier of the Company to which this object belongs.
reportResult.deletedbooleanFlag showing if the object is deleted.
reportResult.iduint64?Identifier given as input for the command.
reportResult.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResult": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportResult object, or it is invalid.
4003The reportResult object does not contain an id, or it is invalid.
4015You do not have permission to restore ReportResults.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40467The ReportResult you are trying to restore was not found.
40075The ReportResult you are trying to restore is not deleted.

GET/reports/results?schedule={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of ReportResult for the specified ReportSchedule.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
scheduleuint64requiredUnique identifier of the ReportSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultsArray.<ReportResult>The list of requested ReportResults.
reportScheduleRespIdCompanyAn object to contain the "id" of the ReportSchedule to which the array of ReportResults belong.
reportSchedule.companyuint64Identifier of the Company to which this object belongs.
reportSchedule.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResults": [
		{
			"archive": boolean,
			"bounds": {
				"east": number,
				"north": number,
				"south": number,
				"west": number
			},
			"company": number,
			"completed": string,
			"created": string,
			"error": string,
			"filtered": [
				number
			],
			"id": number,
			"name": string,
			"notes": string,
			"options": {
				"filtering": string,
				"parameters": [
					{
						"type": string,
						"value": string
					}
				],
				"places": string,
				"regions": [
					string
				],
				"scorecardRules": {
					"baseScore": number,
					"parameters": [
						{
							"condition": string,
							"duration": string,
							"points": number
						}
					]
				},
				"targets": string
			},
			"processedUtc": string,
			"progress": number,
			"runBy": string,
			"schedule": number,
			"scorecards": [
				{
					"asset": number,
					"rulePoints": {
						string: number
					},
					"score": number
				}
			],
			"status": string,
			"targeted": [
				number
			],
			"template": number,
			"timezone": string,
			"totals": [
				{
					"asset": number,
					"distance": number,
					"duration": string,
					"stateDetail": string,
					"summaryCount": number,
					"value": number,
					"valueType": string
				}
			],
			"type": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reportSchedule": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportSchedule object, or it is invalid.
4003The reportSchedule object does not contain an id, or it is invalid.
4015You do not have permission to view ReportResults.
4015You do not have permission to any of the Assets in the Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company whose ReportResults you are trying to list was not found.
40493The ReportSchedule whose ReportResults you are trying to list was not found.

GET/reports/results?template={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&after=string&before=string

Gets the list of ReportResult for the specified ReportTemplate.
URL Parameters
ParameterTypeRequiredDescription
afterdatetimeoptionalWhen using , sets the earliest objects (by dts) to retrieve from the archive.
beforedatetimeoptionalWhen using , sets the most recent objects (by dts) to retrieve from the archive.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
templateuint64requiredUnique identifier of the ReportTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportResultsArray.<ReportResult>The list of requested ReportResults.
reportTemplateRespIdCompanyAn object to contain the "id" of the ReportTemplate to which the array of ReportResults belong.
reportTemplate.companyuint64Identifier of the Company to which this object belongs.
reportTemplate.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportResults": [
		{
			"archive": boolean,
			"bounds": {
				"east": number,
				"north": number,
				"south": number,
				"west": number
			},
			"company": number,
			"completed": string,
			"created": string,
			"error": string,
			"filtered": [
				number
			],
			"id": number,
			"name": string,
			"notes": string,
			"options": {
				"filtering": string,
				"parameters": [
					{
						"type": string,
						"value": string
					}
				],
				"places": string,
				"regions": [
					string
				],
				"scorecardRules": {
					"baseScore": number,
					"parameters": [
						{
							"condition": string,
							"duration": string,
							"points": number
						}
					]
				},
				"targets": string
			},
			"processedUtc": string,
			"progress": number,
			"runBy": string,
			"schedule": number,
			"scorecards": [
				{
					"asset": number,
					"rulePoints": {
						string: number
					},
					"score": number
				}
			],
			"status": string,
			"targeted": [
				number
			],
			"template": number,
			"timezone": string,
			"totals": [
				{
					"asset": number,
					"distance": number,
					"duration": string,
					"stateDetail": string,
					"summaryCount": number,
					"value": number,
					"valueType": string
				}
			],
			"type": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reportTemplate": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportTemplate object, or it is invalid.
4003The reportTemplate object does not contain an id, or it is invalid.
4015You do not have permission to view ReportResults.
4015You do not have permission to any of the Assets in the Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company whose ReportResults you are trying to list was not found.
40452The ReportTemplate whose ReportResults you are trying to list was not found.

GET/reports/schedules?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/reports/schedules.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/reports/schedules

Creates a new, or updates an existing ReportSchedule.
HTTP Request body description
PropertyTypeRequiredDescription
reportScheduleObject.<string, ?>alwaysA simple object to contain the ReportSchedule parameters.
reportSchedule.enabledbooleanoptionalIndicates whether this schedule is allowed to run.
reportSchedule.iduint64?updateThe unique identifier of the ReportSchedule you want to update.
reportSchedule.namestring
maximum-length: 100
createName for the ReportSchedule.
reportSchedule.notesstringoptionalNotes for the ReportSchedule.
reportSchedule.notifyObject.<string, ?>alwaysA list of users and a targeting expression for Assets which receive report results notifications.
reportSchedule.notify.assetsexpression
maximum-length: 255
optionalA targeting expression to identify which Assets receive the ReportResult.
reportSchedule.notify.usersArray.<email>
maximum-count: 50
optionalList of Users to send emailed report. Each email will only contain the ReportResult for the Assets each User is allowed to view.
reportSchedule.optionsObject.<string, ?>alwaysSpecified parameters for the report logic, targeted Assets, and filtering Places.
reportSchedule.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
reportSchedule.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
reportSchedule.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportSchedule.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
reportSchedule.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
reportSchedule.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
reportSchedule.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
reportSchedule.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
reportSchedule.owneremailcreateThe user which owns the schedule. When report results are created, they will be created with this user's Asset permissions.
reportSchedule.repetitionObject.<string, ?>createThe recurring schedule to generate report results.
reportSchedule.repetition.enddatetimeoptionalThe optional time when the ReportSchedule stops recurring in local-time (not UTC).
reportSchedule.repetition.kindReportRecurrenceType?optionalHow often the report is automatically run. Daily, weekly, monthly, etc...
reportSchedule.repetition.startdatetimeoptionalWhen the ReportSchedule is to begin recurring in local-time (not UTC).
reportSchedule.repetition.weekdaybyte?optionalUsed only for weekly schedules, it's a number between 0 and 6 representing the day of the week, with Sunday being the first day of the week.
reportSchedule.repetition.weekdaysArray.<boolean>optionalUsed only for daily schedules, this 7 item, boolean array, determines if the ReportSchedule should recur on that day of the week.
reportSchedule.templateuint64?createIdentifier of the ReportTemplate used to help create results.
reportSchedule.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportSchedule": {
		"enabled": boolean,
		"id": number,
		"name": string,
		"notes": string,
		"notify": {
			"assets": string,
			"users": [
				string
			]
		},
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"owner": string,
		"repetition": {
			"end": string,
			"kind": string,
			"start": string,
			"weekday": number,
			"weekdays": [
				boolean
			]
		},
		"template": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportScheduleRespIdCompanyTemplateAn object which contains the "id", "company", and "template" keys.
reportSchedule.companyuint64Identifier of the Company to which this object belongs.
reportSchedule.iduint64?Identifier given as input for the command.
reportSchedule.templateuint64?Identifier of the ReportTemplate the report object implements.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedule": {
		"company": number,
		"id": number,
		"template": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportSchedule object, or it is invalid.
4003No valid changes would be performed.
4003The reportSchedule.owner value is not a valid email address or SelfMachine.key.
4003The reportSchedule.repetition.kind is not a valid value.
4003The reportSchedule.repetition.weekdays is not a valid value.
4003The reportSchedule.repetition.weekday is not a valid value.
4003One or more of the reportSchedule.options.parameters was not a valid.
4003One or more of the reportSchedule.options parameters' type was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.conditions was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.durations was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.points was not a valid.
4003During create: When creating a new ReportSchedule, a template was not given.
4003During create: When creating a new ReportSchedule, a name or template was not given.
4003During create: When creating a new ReportSchedule, the given repetition pattern parameters were incomplete.
4003During update: When updating a ReportSchedule, the v was not an array, or contained too few numbers.
4003During update: When updating a ReportSchedule, the name was given as null or blank.
4003The options filtering specified was not a valid.
Returns an ErrorDetailEnum as the errorDetails.
4003One or more of the options parameters type was specified more than once.
Returns an ErrorDetailInput as the errorDetails.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40454During update: When updating the ReportSchedule.owner, and it is a User, and cannot be found.
40454During update: When updating the ReportSchedule.repetition, and the ReportSchedule.owner is a User, and cannot be found.
404127During update: When updating the ReportSchedule.owner, and it is a Machine, and cannot be found.
404127During update: When updating the ReportSchedule.repetition, and the ReportSchedule.owner is a Machine, and cannot be found.
409130During update: When updating a ReportSchedule, the reportSchedule.template can not be changed.

DELETE/reports/schedules

Deletes the specified ReportSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportScheduleRespDeletedAn object which contains the ReportSchedule's id, owning Company id, and deleted status.
reportSchedule.companyuint64Identifier of the Company to which this object belongs.
reportSchedule.deletedbooleanFlag showing if the object is deleted.
reportSchedule.iduint64?Identifier given as input for the command.
reportSchedule.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportSchedule object, or it is invalid.
4003The reportSchedule object does not contain an id, or it is invalid.
4015You do not have permission to view ReportSchedules.
4015You do not have permission to all of the Assets targetted by this ReportSchedule (or ReportTemplate).
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company to which the ReportSchedule belongs was not found.
40452The ReportTemplate to which the ReportSchedule refers was not found.
40493The ReportSchedule you are trying to retrieve was not found.

GET/reports/schedules/{scheduleId}?includeDeleted=boolean

Gets details of the specified ReportSchedule.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
scheduleIduint64requiredUnique identifier of the ReportSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportScheduleReportScheduleThe requested ReportSchedule.
reportSchedule.companyuint64The company to which this report belongs
reportSchedule.enabledbooleanIndicates whether this schedule is allowed to run.
reportSchedule.iduint64Unique identifier
reportSchedule.namestring
maximum-length: 100
Name of this report.
reportSchedule.notesstringNotes about this report.
reportSchedule.notifyReportNotificationsA list of users and a targeting expression for assets which receive report results notifications.
reportSchedule.notify.assetsexpressionA targeting expression to identify which assets receive the report results. The results emailed to each asset will only be for themselves, not all assets. To receive the emailed results, the Asset must have a Asset.messagingAddress, or for a Person type asset, their Contact.emails["Email"].
reportSchedule.notify.usersArray.<email>
for values see: UserGeneral.login
maximum-length of values: 50
List of users to send emailed report. Each email will only contain the results for the assets each user is allowed to view.
reportSchedule.optionsReportOptionsSpecified parameters for the report logic, targeted Assets, and filtering Places.
reportSchedule.options.filteringReportFilterModeThe mechanism to use for filtering based on places and regions.
reportSchedule.options.parametersArray.<ReportParameter>A list of parameters to better shape the results.
reportSchedule.options.placesexpressionA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportSchedule.options.regionsArray.<string>A list of provinces and states, where only assets within those regions will be included in the results.
reportSchedule.options.scorecardRulesReportScorecardRulesRules used to generate scorecard for this report.
reportSchedule.options.scorecardRules.baseScoredoubleBase score for the scorecard.
reportSchedule.options.scorecardRules.parametersArray.<ReportScorecardParameter>Infraction parameters used to generate the final score
reportSchedule.options.targetsexpressionA targeting expression for including/excluding Assets.
reportSchedule.owneremail
maximum-length: 254
Login of the user who has ownership of this report schedule.
reportSchedule.processedUtcdatetimeWhen the was change procesed.
reportSchedule.repetitionReportRecurrenceThe recurring schedule to generate report results.
reportSchedule.repetition.enddatetimeThe optional time when the schedule stops recurring in local-time (not UTC).
reportSchedule.repetition.iterationsuint16The number of times this schedule has been invoked to generate results.
reportSchedule.repetition.kindReportRecurrenceTypeHow often the report is automatically run. Daily, weekly, monthly, etc...
reportSchedule.repetition.lastEndDatedatetimeThe date/time stamp from the last result used to inform the nextStartDate and nextEndDate properties. This value is null when the schedule has not yet run once.
reportSchedule.repetition.lastResultuint64?The unique identifier of the last ReportResult generated by this schedule.
reportSchedule.repetition.lastStartDatedatetimeThe date/time stamp from the last result used to inform the nextStartDate and nextEndDate properties. This value is null when the schedule has not yet run once.
reportSchedule.repetition.nextEndDatedatetimeThis date/time is used as the endDate ReportParameter for the next iteration of this recurring report. This value is null when the schedule is calculated to stop recurring.
reportSchedule.repetition.nextStartDatedatetimeThis date/time is used as the startDate ReportParameter for the next iteration of this recurring report. This value is null when the schedule is calculated to stop recurring.
reportSchedule.repetition.startdatetimeWhen the schedule is to begin recurring in local-time (not UTC).
reportSchedule.repetition.timezone
Deprecated
codifiedThe local timezone used to calculate recurring date/time ranges.
Use owner.timezone instead.
reportSchedule.repetition.weekdaybyteUsed only for weekly schedules, it's a number between 0 and 6 representing the day of the week, with Sunday being the first day of the week.
reportSchedule.repetition.weekdaysArray.<boolean>
fixed count: 7
Used only for daily schedules, this 7 item, boolean array, determines if the schedule should recur on that day of the week.
reportSchedule.templateuint64A reference to the Template used to create this result.
reportSchedule.updatedby: login, from: monster
reportSchedule.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedule": {
		"company": number,
		"enabled": boolean,
		"id": number,
		"name": string,
		"notes": string,
		"notify": {
			"assets": string,
			"users": [
				string
			]
		},
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"owner": string,
		"processedUtc": string,
		"repetition": {
			"end": string,
			"iterations": number,
			"kind": string,
			"lastEndDate": string,
			"lastResult": number,
			"lastStartDate": string,
			"nextEndDate": string,
			"nextStartDate": string,
			"start": string,
			"timezone": string,
			"weekday": number,
			"weekdays": [
				boolean
			]
		},
		"template": number,
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a reportSchedule object, or it is invalid.
4003The reportSchedule object does not contain an id, or it is invalid.
4015You do not have permission to view ReportSchedules.
4015You do not have permission to any of the Assets targetted by this ReportSchedule (or ReportTemplate).
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The company to which the report belongs was not found.
40452The ReportTemplate to which the ReportSchedule refers was not found.
40493The ReportSchedule you are trying to retrieve was not found.

POST/reports/schedules/{scheduleId}

Creates a new, or updates an existing ReportSchedule.
URL Parameters
ParameterTypeRequiredDescription
scheduleIduint64?optionalUnique identifier of the ReportSchedule. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
reportScheduleObject.<string, ?>alwaysA simple object to contain the ReportSchedule parameters.
reportSchedule.enabledbooleanoptionalIndicates whether this schedule is allowed to run.
reportSchedule.iduint64?updateThe unique identifier of the ReportSchedule you want to update.
reportSchedule.namestring
maximum-length: 100
createName for the ReportSchedule.
reportSchedule.notesstringoptionalNotes for the ReportSchedule.
reportSchedule.notifyObject.<string, ?>alwaysA list of users and a targeting expression for Assets which receive report results notifications.
reportSchedule.notify.assetsexpression
maximum-length: 255
optionalA targeting expression to identify which Assets receive the ReportResult.
reportSchedule.notify.usersArray.<email>
maximum-count: 50
optionalList of Users to send emailed report. Each email will only contain the ReportResult for the Assets each User is allowed to view.
reportSchedule.optionsObject.<string, ?>alwaysSpecified parameters for the report logic, targeted Assets, and filtering Places.
reportSchedule.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
reportSchedule.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
reportSchedule.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportSchedule.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
reportSchedule.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
reportSchedule.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
reportSchedule.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
reportSchedule.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
reportSchedule.owneremailcreateThe user which owns the schedule. When report results are created, they will be created with this user's Asset permissions.
reportSchedule.repetitionObject.<string, ?>createThe recurring schedule to generate report results.
reportSchedule.repetition.enddatetimeoptionalThe optional time when the ReportSchedule stops recurring in local-time (not UTC).
reportSchedule.repetition.kindReportRecurrenceType?optionalHow often the report is automatically run. Daily, weekly, monthly, etc...
reportSchedule.repetition.startdatetimeoptionalWhen the ReportSchedule is to begin recurring in local-time (not UTC).
reportSchedule.repetition.weekdaybyte?optionalUsed only for weekly schedules, it's a number between 0 and 6 representing the day of the week, with Sunday being the first day of the week.
reportSchedule.repetition.weekdaysArray.<boolean>optionalUsed only for daily schedules, this 7 item, boolean array, determines if the ReportSchedule should recur on that day of the week.
reportSchedule.templateuint64?createIdentifier of the ReportTemplate used to help create results.
reportSchedule.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportSchedule": {
		"enabled": boolean,
		"id": number,
		"name": string,
		"notes": string,
		"notify": {
			"assets": string,
			"users": [
				string
			]
		},
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"owner": string,
		"repetition": {
			"end": string,
			"kind": string,
			"start": string,
			"weekday": number,
			"weekdays": [
				boolean
			]
		},
		"template": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportScheduleRespIdCompanyTemplateAn object which contains the "id", "company", and "template" keys.
reportSchedule.companyuint64Identifier of the Company to which this object belongs.
reportSchedule.iduint64?Identifier given as input for the command.
reportSchedule.templateuint64?Identifier of the ReportTemplate the report object implements.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedule": {
		"company": number,
		"id": number,
		"template": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportSchedule object, or it is invalid.
4003No valid changes would be performed.
4003The reportSchedule.owner value is not a valid email address or SelfMachine.key.
4003The reportSchedule.repetition.kind is not a valid value.
4003The reportSchedule.repetition.weekdays is not a valid value.
4003The reportSchedule.repetition.weekday is not a valid value.
4003One or more of the reportSchedule.options.parameters was not a valid.
4003One or more of the reportSchedule.options parameters' type was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.conditions was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.durations was not a valid.
4003One or more of the reportSchedule.options.scorecardRules.parameters' ReportScorecardParameter.points was not a valid.
4003During create: When creating a new ReportSchedule, a template was not given.
4003During create: When creating a new ReportSchedule, a name or template was not given.
4003During create: When creating a new ReportSchedule, the given repetition pattern parameters were incomplete.
4003During update: When updating a ReportSchedule, the v was not an array, or contained too few numbers.
4003During update: When updating a ReportSchedule, the name was given as null or blank.
4003The options filtering specified was not a valid.
Returns an ErrorDetailEnum as the errorDetails.
4003One or more of the options parameters type was specified more than once.
Returns an ErrorDetailInput as the errorDetails.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40454During update: When updating the ReportSchedule.owner, and it is a User, and cannot be found.
40454During update: When updating the ReportSchedule.repetition, and the ReportSchedule.owner is a User, and cannot be found.
404127During update: When updating the ReportSchedule.owner, and it is a Machine, and cannot be found.
404127During update: When updating the ReportSchedule.repetition, and the ReportSchedule.owner is a Machine, and cannot be found.
409130During update: When updating a ReportSchedule, the reportSchedule.template can not be changed.

DELETE/reports/schedules/{scheduleId}

Deletes the specified ReportSchedule.
URL Parameters
ParameterTypeRequiredDescription
scheduleIduint64requiredUnique identifier of the ReportSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportScheduleRespDeletedAn object which contains the ReportSchedule's id, owning Company id, and deleted status.
reportSchedule.companyuint64Identifier of the Company to which this object belongs.
reportSchedule.deletedbooleanFlag showing if the object is deleted.
reportSchedule.iduint64?Identifier given as input for the command.
reportSchedule.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportSchedule object, or it is invalid.
4003The reportSchedule object does not contain an id, or it is invalid.
4015You do not have permission to view ReportSchedules.
4015You do not have permission to all of the Assets targetted by this ReportSchedule (or ReportTemplate).
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company to which the ReportSchedule belongs was not found.
40452The ReportTemplate to which the ReportSchedule refers was not found.
40493The ReportSchedule you are trying to retrieve was not found.

DELETE/reports/schedules/{scheduleId}/restore

Restores a deleted ReportSchedule.
URL Parameters
ParameterTypeRequiredDescription
scheduleIduint64requiredUnique identifier of the ReportSchedule.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportScheduleRespDeletedAn object which contains the ReportSchedule's id, owning Company id, and deleted status.
reportSchedule.companyuint64Identifier of the Company to which this object belongs.
reportSchedule.deletedbooleanFlag showing if the object is deleted.
reportSchedule.iduint64?Identifier given as input for the command.
reportSchedule.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedule": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportSchedule object, or it is invalid.
4003The reportSchedule object does not contain an id, or it is invalid.
4015You do not have permission to restore ReportSchedules.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40493The ReportSchedule you are trying to restore was not found.
40094The ReportSchedule you are trying to restore is not deleted.

GET/reports/schedules?template={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of ReportSchedules for the specified ReportTemplate.
URL Parameters
ParameterTypeRequiredDescription
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
templateuint64requiredUnique identifier of the ReportTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportSchedulesArray.<ReportSchedule>The list of schedules.
reportTemplateRespIdCompanyAn object which contains only one key "id" when there is no error. The "id" key is the unique identifier of the company to which the array of objects relate.
reportTemplate.companyuint64Identifier of the Company to which this object belongs.
reportTemplate.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportSchedules": [
		{
			"company": number,
			"enabled": boolean,
			"id": number,
			"name": string,
			"notes": string,
			"notify": {
				"assets": string,
				"users": [
					string
				]
			},
			"options": {
				"filtering": string,
				"parameters": [
					{
						"type": string,
						"value": string
					}
				],
				"places": string,
				"regions": [
					string
				],
				"scorecardRules": {
					"baseScore": number,
					"parameters": [
						{
							"condition": string,
							"duration": string,
							"points": number
						}
					]
				},
				"targets": string
			},
			"owner": string,
			"processedUtc": string,
			"repetition": {
				"end": string,
				"iterations": number,
				"kind": string,
				"lastEndDate": string,
				"lastResult": number,
				"lastStartDate": string,
				"nextEndDate": string,
				"nextStartDate": string,
				"start": string,
				"timezone": string,
				"weekday": number,
				"weekdays": [
					boolean
				]
			},
			"template": number,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"reportTemplate": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a reportTemplate object, or it is invalid.
4003The reportTemplate object does not contain an id, or it is invalid.
4015You do not have permission to view ReportTemplates.
4015You do not have permission to view ReportSchedules.
4015You do not have permission to view Asset history.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The company whose ReportSchedules you are trying to list was not found.
40452The ReportTemplate whose ReportSchedules you are trying to list was not found.

GET/reports/templates?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/reports/templates.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/reports/templates

Creates a new or, updates an existing ReportTemplate.
HTTP Request body description
PropertyTypeRequiredDescription
reportTemplateObject.<string, ?>alwaysA simple object to contain the ReportTemplate parameters.
reportTemplate.companyuint64?createThe Company to which this ReportTemplate belongs.
reportTemplate.fillstringoptionalBackground and fill colour in the UI.
reportTemplate.graphicstringoptionalThe name of the symbol shown in the UI.
reportTemplate.iduint64?updateThe unique identifier of the ReportTemplate you want to update.
reportTemplate.namestring
maximum-length: 100
createName for the ReportTemplate.
reportTemplate.notesstringoptionalNotes about the ReportTemplate.
reportTemplate.optionsObject.<string, ?>alwaysSpecified parameters for the report logic, targeted Assets, and filtering Places and/or regions.
reportTemplate.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
reportTemplate.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
reportTemplate.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportTemplate.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
reportTemplate.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
reportTemplate.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
reportTemplate.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
reportTemplate.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
reportTemplate.strokestringoptionalText and outline colour in the UI.
reportTemplate.typeReportType?createThe kind of logic used to build the report results.
reportTemplate.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportTemplate": {
		"company": number,
		"fill": string,
		"graphic": string,
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"stroke": string,
		"type": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportTemplateRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
reportTemplate.companyuint64Identifier of the Company to which this object belongs.
reportTemplate.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportTemplate": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportTemplate object, or it is invalid.
4003Not enough keys exist in the reportTemplate object.
4003During create: When creating a new ReportTemplate, the name was given, but is blank or null.
4003During create: When creating a new ReportTemplate, a company was not given.
4003During create: When creating a new ReportTemplate, the type was not given.
4003During create: When creating a new ReportTemplate, the type was given, but is invalid.
4003During update: When updating a ReportTemplate, the id was invalid.
4003During update: When updating a ReportTemplate, the v was not an array, or contained too few numbers.
4015You do not have permission to either create a new ReportTemplate.
4015You do not have permission to either update ReportTemplates.
4006During update: When updating a ReportTemplate, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40452During update: The ReportTemplate you are trying to update was not found.
409130During update: When updating a ReportTemplate, the reportTemplate.company can not be changed.
409130During update: When updating a ReportTemplate, the reportTemplate.type can not be changed.

DELETE/reports/templates

Removes the specified ReportTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportTemplateRespDeletedAn object which contains the ReportTemplate's id, owning Company id, and deleted status.
reportTemplate.companyuint64Identifier of the Company to which this object belongs.
reportTemplate.deletedbooleanFlag showing if the object is deleted.
reportTemplate.iduint64?Identifier given as input for the command.
reportTemplate.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportTemplate": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportTemplate object, or it is invalid.
4003The reportTemplate object does not contain an id, or it is invalid.
4015You do not have permission to delete ReportTemplates.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40452The ReportTemplate you are trying to delete was not found.

GET/reports/templates/{templateId}?includeDeleted=boolean

Gets details of the specified ReportTemplate.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
templateIduint64requiredUnique identifier of the ReportTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportTemplateReportTemplateThe requested ReportTemplate.
reportTemplate.companyuint64The company to which this report belongs
reportTemplate.fillcolour
maximum-length: 22
The fill/background colour of the icon.
reportTemplate.graphiccodified
maximum-length: 22
The name of the symbol for this report.
reportTemplate.iduint64Unique identifier
reportTemplate.namestring
maximum-length: 100
Name of this report.
reportTemplate.notesstringNotes about this report.
reportTemplate.optionsReportOptionsSpecified parameters for the report logic, targeted Assets, and filtering Places.
reportTemplate.options.filteringReportFilterModeThe mechanism to use for filtering based on places and regions.
reportTemplate.options.parametersArray.<ReportParameter>A list of parameters to better shape the results.
reportTemplate.options.placesexpressionA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportTemplate.options.regionsArray.<string>A list of provinces and states, where only assets within those regions will be included in the results.
reportTemplate.options.scorecardRulesReportScorecardRulesRules used to generate scorecard for this report.
reportTemplate.options.scorecardRules.baseScoredoubleBase score for the scorecard.
reportTemplate.options.scorecardRules.parametersArray.<ReportScorecardParameter>Infraction parameters used to generate the final score
reportTemplate.options.targetsexpressionA targeting expression for including/excluding Assets.
reportTemplate.processedUtcdatetimeWhen the was change procesed.
reportTemplate.strokecolour
maximum-length: 22
Outline and graphic colour.
reportTemplate.typeReportTypeRefers to the type of logic used by this report.
reportTemplate.updatedby: login, from: monster
reportTemplate.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportTemplate": {
		"company": number,
		"fill": string,
		"graphic": string,
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"processedUtc": string,
		"stroke": string,
		"type": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a reportTemplate object, or it is invalid.
4003The reportTemplate object does not contain an id, or it is invalid.
4015You do not have permission to view ReportTemplates.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40452The ReportTemplate you are trying to retrieve was not found.

POST/reports/templates/{templateId}

Creates a new or, updates an existing ReportTemplate.
URL Parameters
ParameterTypeRequiredDescription
templateIduint64?optionalUnique identifier of the ReportTemplate. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
reportTemplateObject.<string, ?>alwaysA simple object to contain the ReportTemplate parameters.
reportTemplate.companyuint64?createThe Company to which this ReportTemplate belongs.
reportTemplate.fillstringoptionalBackground and fill colour in the UI.
reportTemplate.graphicstringoptionalThe name of the symbol shown in the UI.
reportTemplate.iduint64?updateThe unique identifier of the ReportTemplate you want to update.
reportTemplate.namestring
maximum-length: 100
createName for the ReportTemplate.
reportTemplate.notesstringoptionalNotes about the ReportTemplate.
reportTemplate.optionsObject.<string, ?>alwaysSpecified parameters for the report logic, targeted Assets, and filtering Places and/or regions.
reportTemplate.options.filteringReportFilterMode?optionalThe mechanism to use for filtering based on Places and regions.
reportTemplate.options.parametersArray.<ReportParameter>optionalA list of parameters to better shape the ReportResult.
reportTemplate.options.placesexpressionoptionalA targeting expression for limiting results which only include data from Assets interacting with the targeted Places.
reportTemplate.options.regionsArray.<string>optionalA list of provinces and states, where only Assets within those regions will be included in the ReportResult.
reportTemplate.options.scorecardRulesObject.<string, ?>alwaysRules used to generate ReportScorecard for the ReportResult.
reportTemplate.options.scorecardRules.baseScoredoubleoptionalBase score for the ReportScorecard.
reportTemplate.options.scorecardRules.parametersArray.<ReportScorecardParameter>optionalInfraction parameters used to generate the final ReportScorecard.score.
reportTemplate.options.targetsexpressionoptionalA targeting expression for including/excluding Assets.
reportTemplate.strokestringoptionalText and outline colour in the UI.
reportTemplate.typeReportType?createThe kind of logic used to build the report results.
reportTemplate.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportTemplate": {
		"company": number,
		"fill": string,
		"graphic": string,
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			"filtering": string,
			"parameters": [
				{
					"type": string,
					"value": string
				}
			],
			"places": string,
			"regions": [
				string
			],
			"scorecardRules": {
				"baseScore": number,
				"parameters": [
					{
						"condition": string,
						"duration": string,
						"points": number
					}
				]
			},
			"targets": string
		},
		"stroke": string,
		"type": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportTemplateRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
reportTemplate.companyuint64Identifier of the Company to which this object belongs.
reportTemplate.iduint64?Identifier given as input for the command.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportTemplate": {
		"company": number,
		"id": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportTemplate object, or it is invalid.
4003Not enough keys exist in the reportTemplate object.
4003During create: When creating a new ReportTemplate, the name was given, but is blank or null.
4003During create: When creating a new ReportTemplate, a company was not given.
4003During create: When creating a new ReportTemplate, the type was not given.
4003During create: When creating a new ReportTemplate, the type was given, but is invalid.
4003During update: When updating a ReportTemplate, the id was invalid.
4003During update: When updating a ReportTemplate, the v was not an array, or contained too few numbers.
4015You do not have permission to either create a new ReportTemplate.
4015You do not have permission to either update ReportTemplates.
4006During update: When updating a ReportTemplate, the wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40452During update: The ReportTemplate you are trying to update was not found.
409130During update: When updating a ReportTemplate, the reportTemplate.company can not be changed.
409130During update: When updating a ReportTemplate, the reportTemplate.type can not be changed.

DELETE/reports/templates/{templateId}

Removes the specified ReportTemplate.
URL Parameters
ParameterTypeRequiredDescription
templateIduint64requiredUnique identifier of the ReportTemplate.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportTemplateRespDeletedAn object which contains the ReportTemplate's id, owning Company id, and deleted status.
reportTemplate.companyuint64Identifier of the Company to which this object belongs.
reportTemplate.deletedbooleanFlag showing if the object is deleted.
reportTemplate.iduint64?Identifier given as input for the command.
reportTemplate.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportTemplate": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportTemplate object, or it is invalid.
4003The reportTemplate object does not contain an id, or it is invalid.
4015You do not have permission to delete ReportTemplates.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40452The ReportTemplate you are trying to delete was not found.

PATCH/reports/templates/{templateId}/restore

Restores a deleted ReportTemplate to its previous version.
URL Parameters
ParameterTypeRequiredDescription
templateIduint64requiredUnique identifier of the ReportTemplate.
HTTP Request body description
PropertyTypeRequiredDescription
reportTemplateParamIdalwaysAn object to contain the "id" of the ReportTemplate.
reportTemplate.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reportTemplate": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reportTemplateRespDeletedAn object which contains the ReportTemplate's id, owning Company id, and deleted status.
reportTemplate.companyuint64Identifier of the Company to which this object belongs.
reportTemplate.deletedbooleanFlag showing if the object is deleted.
reportTemplate.iduint64?Identifier given as input for the command.
reportTemplate.vArray.<uint32>
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reportTemplate": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a reportTemplate object, or it is invalid.
4003The reportTemplate object does not contain an id, or it is invalid.
4015You do not have permission to delete ReportTemplates.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40452The ReportTemplate you are trying to restore was not found.
40053The ReportTemplate you are trying to restore was not found, but is not deleted.

Self

GET/self

Gets details of the current session (yourself) and User.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
expirydatetimeThe timestamp of when this session expires.
ghostIdstringYour session identifier.
machineSelfMachineThis Machine's details (if the service is being used by a Machine). If this value is not present, then the session is not a machine account.
machine.companyuint64The company to which this user belongs.
machine.enabledbooleanIndicates whether system access is disable.
machine.formatsObject.<codified, datetimetemplate>
maximum-length of values: 20
The format strings defining the preferred way to display ambiguous values.
machine.groupsArray.<UserGroup>The list of UserGroup to which this User belongs.
machine.insecurebooleanWhen true, no access restrictions (machine.secret, machine.referrers, or machine.ipRanges) are enforced.
machine.ipRangesArray.<ipv4>
maximum-length of values: 19
Restrict service access to only the provided IP ranges. Currently we only support IPv4 ranges using CIDR slash-notation.
machine.keystring
maximum-length: 50
The unique idenifier used to access the system.
machine.languagecodified
maximum-length: 5
minimum-length: 2
Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
machine.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
machine.nicknamestring
maximum-length: 100
Human friendly name for these credentials
machine.notAfterdatetimeAn optional timestamp that restricts this machine account from being used after the given date.
machine.notBeforedatetimeAn optional timestamp that restricts this machine account from being used before the given date.
machine.notesstring
maximum-length: 8000
Notes about this machine.
machine.optionsObject.<codified, string>
maximum-length of values: 20
Additional options which do not fit in with the formats or measurements preferences.
machine.permissionsArray.<Permission>Permission rules which override the group rules.
machine.processedUtcdatetimeWhen the was change procesed.
machine.referrersArray.<url>
maximum-length of values: 254
Optional list of your managed domains from which this machine account can be used.
machine.secretstring
maximum-length: 1000
A token used to encode or validate requests.
machine.servicesArray.<url>
maximum-length of values: 254
List of system service URIs that this machine account is permitted to access.
machine.timezonecodifiedThe service account's local timezone.
machine.updatedby: login, from: monster
machine.vArray.<uint32>
messagestringAn English description of the error.
passwordPolicyPasswordPolicyThis User's Company.passwordPolicy.
passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
passwordPolicy.expireThresholdbyteThe threshold for expiry.
passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
passwordPolicy.minimumLengthbyteThe minimum number of characters required.
reqIdint32?Identifier used by external system to correlate requests to responses.
serverTimedatetimeThe UTC date/time of the server hosting the connection.
sessionPolicySessionPolicyThis User's Company.sessionPolicy.
sessionPolicy.applicationsArray.<string>The list of applications users are allowed to use to create sessions.
sessionPolicy.expireTimeoutuint16The lifetime duration of a session in minutes.
sessionPolicy.idleAllowedbooleanDefines whether a session should be automatically killed when the connection breaks.
sessionPolicy.ipv4RangesArray.<ipv4>
maximum-length of values: 19
Restrict session creation to only the provided IPv4 ranges (using CIDR slash-notation). Leave blank for Internet access.
sessionPolicy.maxSessionsbyteThe maximum number of sessions allowed per user.
sessionPolicy.multiUserSessionMultiUserDefines the behaviour of the system when a user creates multiple sessions.
userSelfUserThis session's User details (if the service is being used by a User). If this value is not present, then the session is not yet authenticated.
user.companyuint64The company to which this user belongs.
user.contactContactAssociated contact information for this user.
user.contact.addressesObject.<string, string>Mailing addresses. Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
user.contact.companyuint64The company to which this contact belongs
user.contact.datesObject.<string, datetime>Date information. Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
user.contact.emailsObject.<string, email>
maximum-length of values: 254
Email addresses. Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
user.contact.iduint64Unique identifier of this contact.
user.contact.namestring
maximum-length: 100
The person's name
user.contact.notesstringNotes about this person.
user.contact.optionsObject.<string, string>Uncategorized information. Use the object keys and values however you'd like.
user.contact.otherNamesObject.<string, string>
maximum-length of values: 254
A collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
user.contact.phonesObject.<string, phone>Phone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
user.contact.picturesArray.<uint64>
for values see: Picture.id
Pictures of this Contact.
user.contact.processedUtcdatetimeWhen the was change procesed.
user.contact.rolesArray.<string>A list of roles they play in the Company.
user.contact.updatedby: login, from: monster
user.contact.urlsObject.<string, url>
maximum-length of values: 254
Websites and other online resources. Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
user.contact.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
user.enabledbooleanIndicates whether system access is disabled.
user.formatsObject.<codified, datetimetemplate>
maximum-length of values: 20
The format strings defining the preferred way to display ambiguous values.
user.groupsArray.<UserGroup>The list of UserGroups to which this User belongs.
user.languagecodified
maximum-length: 5
minimum-length: 2
Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
user.loginemail
maximum-length: 254
minimum-length: 6
The unique public email address used to access the system.
user.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
user.nicknamestring
maximum-length: 100
Human friendly name for these credentials
user.notifyArray.<UserNotifications>
maximum-count: 7
Definition of how and when to send alerts to the user.
user.optionsObject.<codified, string>
maximum-length of values: 20
Additional options which do not fit in with the formats or measurements preferences.
user.passwordExpiredbooleanIndicated whether the credentials have expired according to the company's policy.
user.permissionsArray.<Permission>Individual permission rules which override the UserGroup rules.
user.processedUtcdatetimeWhen the was change procesed.
user.timezonecodifiedThe user's local timezone.
user.updatedby: login, from: monster
user.vArray.<uint32>Version keys for all parts of your User.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"expiry": string,
	"ghostId": string,
	"machine": {
		"company": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			{
				"company": number,
				"id": number,
				"name": string,
				"notes": string,
				"permissions": [
					{
						"company": number,
						"kind": string,
						"labels": [
							string
						],
						"level": string,
						"method": string,
						"type": string
					}
				],
				"processedUtc": string,
				"updated": {
				},
				"v": [
					number
				]
			}
		],
		"insecure": boolean,
		"ipRanges": [
			string
		],
		"key": string,
		"language": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notAfter": string,
		"notBefore": string,
		"notes": string,
		"options": {
			string: string
		},
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"processedUtc": string,
		"referrers": [
			string
		],
		"secret": string,
		"services": [
			string
		],
		"timezone": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"passwordPolicy": {
		"expireMode": string,
		"expireThreshold": number,
		"includeLetters": boolean,
		"includeNumbers": boolean,
		"includeSpecial": boolean,
		"includeUpperLower": boolean,
		"minimumLength": number
	},
	"reqId": number,
	"serverTime": string,
	"sessionPolicy": {
		"applications": [
			string
		],
		"expireTimeout": number,
		"idleAllowed": boolean,
		"ipv4Ranges": [
			string
		],
		"maxSessions": number,
		"multiUser": string
	},
	"user": {
		"company": number,
		"contact": {
			"addresses": {
				string: string
			},
			"company": number,
			"dates": {
				string: string
			},
			"emails": {
				string: string
			},
			"id": number,
			"name": string,
			"notes": string,
			"options": {
				string: string
			},
			"otherNames": {
				string: string
			},
			"phones": {
				string: number
			},
			"pictures": [
				number
			],
			"processedUtc": string,
			"roles": [
				string
			],
			"updated": {
			},
			"urls": {
				string: string
			},
			"v": [
				number
			]
		},
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			{
				"company": number,
				"id": number,
				"name": string,
				"notes": string,
				"permissions": [
					{
						"company": number,
						"kind": string,
						"labels": [
							string
						],
						"level": string,
						"method": string,
						"type": string
					}
				],
				"processedUtc": string,
				"updated": {
				},
				"v": [
					number
				]
			}
		],
		"language": string,
		"login": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notify": [
			{
				"email": string,
				"enabled": boolean,
				"end": string,
				"name": string,
				"offline": [
					string
				],
				"online": [
					string
				],
				"sms": number,
				"start": string,
				"weekdays": [
					boolean
				]
			}
		],
		"options": {
			string: string
		},
		"passwordExpired": boolean,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"processedUtc": string,
		"timezone": string,
		"updated": {
		},
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
40428The session is valid, but the CompanyPolicies is missing.
If you receive this error, please contact technical support.
40454The session is valid, but the User (or Machine) is missing.
If you receive this error, please contact technical support.

GET/self/assume?ghostId={string}

Light-weight command to return your current session state.
URL Parameters
ParameterTypeRequiredDescription
ghostIdstringrequiredSession identifier
Response description
PropertyTypeDescription
companyuint64?The User's Company.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
expirydatetimeThe timestamp of when this session expires.
ghostIdstringYour session identifier.
loginstringThe User's login.
messagestringAn English description of the error.
passwordExpiredbooleanWhen true, the User's password must be changed before action commands will be processed.
reqIdint32?Identifier used by external system to correlate requests to responses.
serverTimedatetimeThe UTC date/time of the server hosting the connection.
statusSessionStatusYour current session state.
Response structure
{
	"company": number,
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"expiry": string,
	"ghostId": string,
	"login": string,
	"message": string,
	"passwordExpired": boolean,
	"reqId": number,
	"serverTime": string,
	"status": string
}
Possible exceptions
HTTP StatusError CodeDescription
5002Your session status could not be determined.
If you receive this error, please contact technical support.

POST/self/contact

Allows a User to update their own Contact. If your User has no associated Contact, you will receive a Contact not found error.
HTTP Request body description
PropertyTypeRequiredDescription
addressesObject.<string, string>optionalMailing addresses Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
datesObject.<string, datetime>optionalDate information Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
emailsObject.<string, email>
maximum-length of values: 254
optionalEmail addresses Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
namestringoptionalName for yourself.
notesstringoptionalNotes for yourself.
optionsObject.<string, string>optionalUncategorized information Use the object keys and values however you'd like.
otherNamesObject.<string, string>
maximum-length of values: 254
optionalA collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
phonesObject.<string, phone?>optionalPhone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
picturesArray.<uint64>
for values see: Picture.id
optionalPictures of yourself.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
rolesArray.<codified>optionalA list of roles they play in the Company.
urlsObject.<string, url>
maximum-length of values: 254
optionalWebsites and other online resources Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
HTTP Request body structure
{
	"addresses": {
		string: string
	},
	"dates": {
		string: string
	},
	"emails": {
		string: string
	},
	"name": string,
	"notes": string,
	"options": {
		string: string
	},
	"otherNames": {
		string: string
	},
	"phones": {
		string: number
	},
	"pictures": [
		number
	],
	"reqId": number,
	"roles": [
		string
	],
	"urls": {
		string: string
	}
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a contact object, or it is invalid.
4003The contact object does not contain an id, or it is invalid.
4003No valid changes would be performed.
4003The v was not an array, or contained too few numbers.
4003One of the otherNames keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the emails keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the phones keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the addresses keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the urls keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the dates keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the options keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the pictures values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4006The wrong version key(s) were given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40431Your User does not have a Contact defined.
40454Your User was not found. If the problem persists, please contact support.
40469One or more of the pictures identifiers given was not found.
40185Your User is disabled. If the problem persists, please contact support.

POST/self/login

Creates a new session and allows access to authorized services.
HTTP Request body description
PropertyTypeRequiredDescription
passwordstringalwaysUser's password.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
userAgentstringoptionalApplication name. This should match the allowed applications from user's company's SessionPolicy.applications.
usernamestringalwaysUser's email address.
HTTP Request body structure
{
	"password": string,
	"reqId": number,
	"userAgent": string,
	"username": string
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The username is not a valid email address.
4003The password is blank or not given.
40111The username and/or password are not correct.
40312The client application is not allowed based on the Company's policy.
40313The client IP address is not allowed based on the Company's policy.
40114The User's Company's policy does not allow for multiple sessions per User, and there is already another active session.
40428The User's Company cannot be found. If you encounter this error, please contact support.
50373There are too many concurrent sessions for this User.
40185The credentials are correct, but the User is not allowed to log in.

GET/self/login?username={string}&password={string}&userAgent=string

Creates a new session and allows access to authorized services.
URL Parameters
ParameterTypeRequiredDescription
passwordstringrequiredYour password (keep it secret, keep it safe)
userAgentstringoptionalIdentification of the software used to log in
usernamestringrequiredYour login (an email address)
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The username is not a valid email address.
4003The password is blank or not given.
40111The username and/or password are not correct.
40312The client application is not allowed based on the Company's policy.
40313The client IP address is not allowed based on the Company's policy.
40114The User's Company's policy does not allow for multiple sessions per User, and there is already another active session.
40428The User's Company cannot be found. If you encounter this error, please contact support.
50373There are too many concurrent sessions for this User.
40185The credentials are correct, but the User is not allowed to log in.

GET/self/logout

Ends your session.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
expirydatetimeThe timestamp from when you session expired.
ghostIdstringYour old, no longer valid, session identifier.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"expiry": string,
	"ghostId": string,
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.

POST/self/logout

Ends your session.
HTTP Request body description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
expirydatetimeThe timestamp from when you session expired.
ghostIdstringYour old, no longer valid, session identifier.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"expiry": string,
	"ghostId": string,
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.

POST/self/password

Allows a session User to change their own password.
HTTP Request body description
PropertyTypeRequiredDescription
currentstringalwaysYour current password, as verification that you are the proper account owner.
passwordstringalwaysYour new password must conform to your company's password policy.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"current": string,
	"password": string,
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
expiresdatetimeSpecific date/time of when the password will expire.
messagestringAn English description of the error.
passwordPolicyPasswordPolicyYour Company's password policy.
passwordPolicy.expireModePasswordExpiryModeDefines how passwords expire.
passwordPolicy.expireThresholdbyteThe threshold for expiry.
passwordPolicy.includeLettersbooleanDo passwords require alphabetical characters.
passwordPolicy.includeNumbersbooleanDo passwords require numeric characters.
passwordPolicy.includeSpecialbooleanDo passwords require non-alphanumeric characters.
passwordPolicy.includeUpperLowerbooleanDo passwords require upper-case and lower-case letters.
passwordPolicy.minimumLengthbyteThe minimum number of characters required.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"expires": string,
	"message": string,
	"passwordPolicy": {
		"expireMode": string,
		"expireThreshold": number,
		"includeLetters": boolean,
		"includeNumbers": boolean,
		"includeSpecial": boolean,
		"includeUpperLower": boolean,
		"minimumLength": number
	},
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The current password is blank or not given.
4003The new password is blank or not given.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40111The current password is not correct.
40115The new password is not strong enough to comply with the PasswordPolicy requirements.
40017The current password cannot be the same as the new password.
40428Your CompanyPolicies is missing. If the problem persists, please contact support.
40428Your Company's PasswordPolicy is missing. If the problem persists, please contact support.
40454The session User was not found. If the problem persists, please contact support.
40185The session User is disabled. If the problem persists, please contact support.

POST/self/preferences

Allows a session User to change their own preferences.
HTTP Request body description
PropertyTypeRequiredDescription
formatsObject.<string, string>optionalFormatting help for dates, times, numbers.
languagestringoptionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
measurementsObject.<string, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
notifyArray.<UserNotifications>optionalList of UserNotifications preferences. Please note that active times cannot overlap.
optionsObject.<string, string>optionalAdditional options which do not fit in with the formats or measurements preferences. If a value of null is given, the option is removed. To keep the option, you can use a blank string. For convenience, if the value of an option is given as JSON (instead of a string), they are automatically serialized with no white-space.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
timezonecodifiedoptionalYour local Timezone used to calculate times.
HTTP Request body structure
{
	"formats": {
		string: string
	},
	"language": string,
	"measurements": {
		string: string
	},
	"notify": [
		{
			"email": string,
			"enabled": boolean,
			"end": string,
			"name": string,
			"offline": [
				string
			],
			"online": [
				string
			],
			"sms": number,
			"start": string,
			"weekdays": [
				boolean
			]
		}
	],
	"options": {
		string: string
	},
	"reqId": number,
	"timezone": string
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003No valid changes would be performed.
4003The given language was not a valid region.
4003One of the keys given in the formats dictionary was blank.
4003One of the keys given in the measurements dictionary was blank.
4003One of the keys given in the options dictionary was blank.
4003One of the given notify values was null, had a blank name property, or was not a valid object.
4003One of the measurements could not be parsed.
Returns an ErrorDetailInput as the errorDetails.
4003One of the notify could not be parsed.
Returns an ErrorDetailInput as the errorDetails.
4003One of the notify did not contain a name.
Returns an ErrorDetailInput as the errorDetails.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40454Your User was not found. If the problem persists, please contact support.
40462The given timezone could not be found.
Returns an ErrorDetailInput as the errorDetails.
40185Your User is disabled. If the problem persists, please contact support.

POST/self/recover

Begins the password recovery process. If successful, will send an email to you with a code used to create a temporary password.
HTTP Request body description
PropertyTypeRequiredDescription
keystringoptionalOptional key in the User's Contact.emails address list to use for recovery.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
usernamestringalwaysUser's email address.
HTTP Request body structure
{
	"key": string,
	"reqId": number,
	"username": string
}
Response description
PropertyTypeDescription
emailstringUser's email address.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
namestringUser's nickname or Contact name.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"email": string,
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"name": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002There was a communication error. If the problem persists, please contact support.
If you receive this error, please contact technical support.
4003The username is not a valid email address.
40428The User's Company or its branch could not be found.
40431When specifying the email address to key, and the user's contact is not found.
40454The User was not found.
40185The User is not allowed to log in.
409130When specifying the email address to key, and the user's contact does not have a value for that key.

GET/self/recover/{guid}?length=number

Completes the password recovery process. If successful, will create a new password for your user and mark it as expired so you must change your password after using it to login the first time.
URL Parameters
ParameterTypeRequiredDescription
guidstringrequiredUnique identifier sent to you from the beginning of the process
lengthuint64?optionalOptionally supplied randomized password length. If the provided length is smaller than the company PasswordPolicy dictates, then the company policy length is used.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
passwordstringUser's temporary password.
reqIdint32?Identifier used by external system to correlate requests to responses.
usernamestringUser's email address.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"password": string,
	"reqId": number,
	"username": string
}
Possible exceptions
HTTP StatusError CodeDescription
5002There was a communication error. If the problem persists, please contact support.
If you receive this error, please contact technical support.
4003The guid is invalid or blank.
4003The requested temporary password length is too short.
40454The User was not found.
40185The User is not allowed to log in.

GET/self/recover?username={string}&key=string

Begins the password recovery process. If successful, will send an email to you with a code used to create a temporary password.
URL Parameters
ParameterTypeRequiredDescription
keystringoptionalOptionally specified email address name from your Contact information
usernamestringrequiredUser login (an email address)
Response description
PropertyTypeDescription
emailstringUser's email address.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
namestringUser's nickname or Contact name.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"email": string,
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"name": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002There was a communication error. If the problem persists, please contact support.
If you receive this error, please contact technical support.
4003The username is not a valid email address.
40428The User's Company or its branch could not be found.
40431When specifying the email address to key, and the user's contact is not found.
40454The User was not found.
40185The User is not allowed to log in.
409130When specifying the email address to key, and the user's contact does not have a value for that key.

GET/self/sessions

Gets the list of your own sessions.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
sessionsArray.<SessionFull>The list of requested SessionFull.
userRespLoginCompanyAn object to contain the "login" of the User to which the array of SessionFulls belong.
user.companyuint64Identifier of the Company to which the User belongs.
user.loginstringThe User's login.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"sessions": [
		{
			"active": boolean,
			"company": number,
			"created": string,
			"expiry": string,
			"handle": string,
			"ipAddress": string,
			"lastActivity": string,
			"lastCommand": string,
			"login": string,
			"sockets": number,
			"status": string,
			"userAgent": string
		}
	],
	"user": {
		"company": number,
		"login": string
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

Users and Groups

GET/companies/{companyId}/contacts?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of Contacts for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Contacts belong.
company.iduint64?Identifier given as input for the command.
contactsArray.<Contact>The list of requested Contacts.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"contacts": [
		{
			"addresses": {
				string: string
			},
			"company": number,
			"dates": {
				string: string
			},
			"emails": {
				string: string
			},
			"id": number,
			"name": string,
			"notes": string,
			"options": {
				string: string
			},
			"otherNames": {
				string: string
			},
			"phones": {
				string: number
			},
			"pictures": [
				number
			],
			"processedUtc": string,
			"roles": [
				string
			],
			"updated": {
			},
			"urls": {
				string: string
			},
			"v": [
				number
			]
		}
	],
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view Contacts for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/companies/{companyId}/machines?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Machines for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
firststringoptionalWhen using , sets the first alphabetic SelfMachine.key when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic SelfMachine.key when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Machines belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machinesArray.<Machine>The list requested of Machines.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machines": [
		{
			"company": number,
			"enabled": boolean,
			"formats": {
				string: string
			},
			"groups": [
				number
			],
			"insecure": boolean,
			"ipRanges": [
				string
			],
			"key": string,
			"language": string,
			"measurements": {
				string: string
			},
			"nickname": string,
			"notAfter": string,
			"notBefore": string,
			"notes": string,
			"options": {
				string: string
			},
			"permissions": [
				{
					"company": number,
					"kind": string,
					"labels": [
						string
					],
					"level": string,
					"method": string,
					"type": string
				}
			],
			"processedUtc": string,
			"referrers": [
				string
			],
			"secret": string,
			"services": [
				string
			],
			"timezone": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's Machines.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/companies/{companyId}/users?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Users for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
firststringoptionalWhen using , sets the first alphabetic User.login when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic User.login when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Users belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
usersArray.<User>The list of requested Users.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"users": [
		{
			"company": number,
			"contact": number,
			"enabled": boolean,
			"formats": {
				string: string
			},
			"groups": [
				number
			],
			"language": string,
			"login": string,
			"measurements": {
				string: string
			},
			"nickname": string,
			"notify": [
				{
					"email": string,
					"enabled": boolean,
					"end": string,
					"name": string,
					"offline": [
						string
					],
					"online": [
						string
					],
					"sms": number,
					"start": string,
					"weekdays": [
						boolean
					]
				}
			],
			"options": {
				string: string
			},
			"passwordExpired": boolean,
			"permissions": [
				{
					"company": number,
					"kind": string,
					"labels": [
						string
					],
					"level": string,
					"method": string,
					"type": string
				}
			],
			"processedUtc": string,
			"timezone": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	]
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's Users.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/companies/{companyId}/users/advanceds?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Users for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
firststringoptionalWhen using , sets the first alphabetic User.login when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic User.login when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Users belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userAdvancedsArray.<UserAdvanced>The list of requested Users.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userAdvanceds": [
		{
			"company": number,
			"groups": [
				number
			],
			"login": string,
			"permissions": [
				{
					"company": number,
					"kind": string,
					"labels": [
						string
					],
					"level": string,
					"method": string,
					"type": string
				}
			],
			"processedUtc": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	]
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's Users.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/companies/{companyId}/users/generals?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Users for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
firststringoptionalWhen using , sets the first alphabetic User.login when listing from the database.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic User.login when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Users belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGeneralsArray.<UserGeneral>The list of requested Users.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGenerals": [
		{
			"company": number,
			"contact": number,
			"enabled": boolean,
			"formats": {
				string: string
			},
			"language": string,
			"login": string,
			"measurements": {
				string: string
			},
			"nickname": string,
			"notify": [
				{
					"email": string,
					"enabled": boolean,
					"end": string,
					"name": string,
					"offline": [
						string
					],
					"online": [
						string
					],
					"sms": number,
					"start": string,
					"weekdays": [
						boolean
					]
				}
			],
			"options": {
				string: string
			},
			"passwordExpired": boolean,
			"processedUtc": string,
			"timezone": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	]
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's Users.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/companies/{companyId}/users/groups?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

Gets the list of UserGroups for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
highestuint64?optionalWhen using , sets the largest valued id objects to retrieve.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
lowestuint64?optionalWhen using , sets the smallest valued id objects to retrieve.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of contacts belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGroupsArray.<UserGroup>The requested list of UserGroups.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGroups": [
		{
			"company": number,
			"id": number,
			"name": string,
			"notes": string,
			"permissions": [
				{
					"company": number,
					"kind": string,
					"labels": [
						string
					],
					"level": string,
					"method": string,
					"type": string
				}
			],
			"processedUtc": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	]
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's UserGroups.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/companies/{companyId}/users/sessions

Gets the list of SessionFull for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of SessionFulls belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
sessionsArray.<SessionFull>The list of requested SessionFull.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"sessions": [
		{
			"active": boolean,
			"company": number,
			"created": string,
			"expiry": string,
			"handle": string,
			"ipAddress": string,
			"lastActivity": string,
			"lastCommand": string,
			"login": string,
			"sockets": number,
			"status": string,
			"userAgent": string
		}
	]
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view SessionFulls for this Company.
4015You do not have permission to view Users for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/contacts?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/contacts/.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/contacts

Creates a new or updates an existing Contact.
HTTP Request body description
PropertyTypeRequiredDescription
contactObject.<string, ?>alwaysA simple object to contain the Contact parameters.
contact.addressesObject.<string, string>optionalMailing addresses Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
contact.companyuint64?createThe Company to which this Contact belongs. After creation, this value is read-only.
contact.datesObject.<string, datetime>optionalDate information Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
contact.emailsObject.<string, email>
maximum-length of values: 254
optionalEmail addresses Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
contact.iduint64?updateThe unique identifier of the Contact you want to update.
contact.namestring
maximum-length: 100
optionalName for the Contact.
contact.notesstringoptionalNotes for the Contact.
contact.optionsObject.<string, string>optionalUncategorized information Use the object keys and values however you'd like.
contact.otherNamesObject.<string, string>
maximum-length of values: 254
optionalA collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
contact.phonesObject.<string, phone?>optionalPhone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
contact.picturesArray.<uint64>
for values see: Picture.id
optionalPictures of this Contact.
contact.rolesArray.<codified>optionalA list of roles they play in the Company.
contact.urlsObject.<string, url>
maximum-length of values: 254
optionalWebsites and other online resources Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
contact.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"contact": {
		"addresses": {
			string: string
		},
		"company": number,
		"dates": {
			string: string
		},
		"emails": {
			string: string
		},
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			string: string
		},
		"otherNames": {
			string: string
		},
		"phones": {
			string: number
		},
		"pictures": [
			number
		],
		"roles": [
			string
		],
		"urls": {
			string: string
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
contactRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
contact.companyuint64Identifier of the Company to which this object belongs.
contact.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"contact": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a contact object, or it is invalid.
4003Not enough keys exist in the contact object.
4003During create: When creating a new Contact, a company was not given.
4003During create: When creating a new Contact, a name was not given, or it is invalid.
4003During update: When updating a Contact, the id was invalid.
4003During update: When updating a Contact, the name was given as blank.
4003During update: When updating a Contact, the v was not an array, or contained too few numbers.
4003One of the contact.otherNames keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.emails keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.phones keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.addresses keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.urls keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.dates keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.options keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.pictures values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Contact.
4015You do not have permission to update this Contact.
4006During update: When updating a Contact, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40431During update: The Contact was not found by its unique identifier.
40469One of the contact.pictures given as input in the Pictures array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
409130During update: When updating a Contact, the company was provided as a different value.

DELETE/contacts

Deletes an existing Contact.
Response description
PropertyTypeDescription
contactRespDeletedAn object which contains the Contact's id, owning Company id, and deleted status.
contact.companyuint64Identifier of the Company to which this object belongs.
contact.deletedbooleanFlag showing if the object is deleted.
contact.iduint64?Identifier given as input for the command.
contact.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"contact": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a contact object, or it is invalid.
4003The contact object does not contain an id, or it is invalid.
4015You do not have permission to delete this Contact.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40431The Contact was not found by its unique identifier.
409121This Contact is still being used by a Asset or User.
Returns an ErrorDetailContactInUse as the errorDetails.

GET/contacts/{contactId}?includeDeleted=boolean

Gets details of the specified Contact.
URL Parameters
ParameterTypeRequiredDescription
contactIduint64requiredUnique identifier of the Contact.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
contactContactThe requested Contact.
contact.addressesObject.<string, string>Mailing addresses. Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
contact.companyuint64The company to which this contact belongs
contact.datesObject.<string, datetime>Date information. Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
contact.emailsObject.<string, email>
maximum-length of values: 254
Email addresses. Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
contact.iduint64Unique identifier of this contact.
contact.namestring
maximum-length: 100
The person's name
contact.notesstringNotes about this person.
contact.optionsObject.<string, string>Uncategorized information. Use the object keys and values however you'd like.
contact.otherNamesObject.<string, string>
maximum-length of values: 254
A collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
contact.phonesObject.<string, phone>Phone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
contact.picturesArray.<uint64>
for values see: Picture.id
Pictures of this Contact.
contact.processedUtcdatetimeWhen the was change procesed.
contact.rolesArray.<string>A list of roles they play in the Company.
contact.updatedby: login, from: monster
contact.urlsObject.<string, url>
maximum-length of values: 254
Websites and other online resources. Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
contact.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"contact": {
		"addresses": {
			string: string
		},
		"company": number,
		"dates": {
			string: string
		},
		"emails": {
			string: string
		},
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			string: string
		},
		"otherNames": {
			string: string
		},
		"phones": {
			string: number
		},
		"pictures": [
			number
		],
		"processedUtc": string,
		"roles": [
			string
		],
		"updated": {
		},
		"urls": {
			string: string
		},
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a contact object, or it is invalid.
4003The contact object does not contain an id, or it is invalid.
4015You do not have permission to view this Contact.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40431The Contact was not found by its unique identifier.

POST/contacts/{contactId}

Creates a new or updates an existing Contact.
URL Parameters
ParameterTypeRequiredDescription
contactIduint64?optionalUnique identifier of the Contact. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
contactObject.<string, ?>alwaysA simple object to contain the Contact parameters.
contact.addressesObject.<string, string>optionalMailing addresses Use the object key like a name of the address. Example keys: Home, Work, Park, etc.
contact.companyuint64?createThe Company to which this Contact belongs. After creation, this value is read-only.
contact.datesObject.<string, datetime>optionalDate information Use the object key like a name of the date. Example keys: Birthday, Started Date, Retired On, etc.
contact.emailsObject.<string, email>
maximum-length of values: 254
optionalEmail addresses Use the object key like a name of the address. Example keys: Home, Work, Support, Old, etc.
contact.iduint64?updateThe unique identifier of the Contact you want to update.
contact.namestring
maximum-length: 100
optionalName for the Contact.
contact.notesstringoptionalNotes for the Contact.
contact.optionsObject.<string, string>optionalUncategorized information Use the object keys and values however you'd like.
contact.otherNamesObject.<string, string>
maximum-length of values: 254
optionalA collection of other names this person might go by. Use the object key like a name identifier. Example keys: Initials, Nickname, Maiden Name, etc.
contact.phonesObject.<string, phone?>optionalPhone numbers. Use the object key like a name of the phone number. Example keys: Mobile, Fax, Home, Office, etc.
contact.picturesArray.<uint64>
for values see: Picture.id
optionalPictures of this Contact.
contact.rolesArray.<codified>optionalA list of roles they play in the Company.
contact.urlsObject.<string, url>
maximum-length of values: 254
optionalWebsites and other online resources Use the object key like a name of the address. Example keys: Downloads, Support, FTP, etc.
contact.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"contact": {
		"addresses": {
			string: string
		},
		"company": number,
		"dates": {
			string: string
		},
		"emails": {
			string: string
		},
		"id": number,
		"name": string,
		"notes": string,
		"options": {
			string: string
		},
		"otherNames": {
			string: string
		},
		"phones": {
			string: number
		},
		"pictures": [
			number
		],
		"roles": [
			string
		],
		"urls": {
			string: string
		},
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
contactRespIdCompanyAn object which contains the "id" and "company" keys when there is no error.
contact.companyuint64Identifier of the Company to which this object belongs.
contact.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"contact": {
		"company": number,
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a contact object, or it is invalid.
4003Not enough keys exist in the contact object.
4003During create: When creating a new Contact, a company was not given.
4003During create: When creating a new Contact, a name was not given, or it is invalid.
4003During update: When updating a Contact, the id was invalid.
4003During update: When updating a Contact, the name was given as blank.
4003During update: When updating a Contact, the v was not an array, or contained too few numbers.
4003One of the contact.otherNames keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.emails keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.phones keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.addresses keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.urls keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.dates keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.options keys or values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the contact.pictures values is invalid.
Returns an ErrorDetailInput as the errorDetails.
4015You do not have permission to create a new Contact.
4015You do not have permission to update this Contact.
4006During update: When updating a Contact, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40431During update: The Contact was not found by its unique identifier.
40469One of the contact.pictures given as input in the Pictures array was not found.
Returns an ErrorDetailBadIds as the errorDetails.
409130During update: When updating a Contact, the company was provided as a different value.

DELETE/contacts/{contactId}

Deletes an existing Contact.
URL Parameters
ParameterTypeRequiredDescription
contactIduint64requiredUnique identifier of the Contact.
Response description
PropertyTypeDescription
contactRespDeletedAn object which contains the Contact's id, owning Company id, and deleted status.
contact.companyuint64Identifier of the Company to which this object belongs.
contact.deletedbooleanFlag showing if the object is deleted.
contact.iduint64?Identifier given as input for the command.
contact.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"contact": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a contact object, or it is invalid.
4003The contact object does not contain an id, or it is invalid.
4015You do not have permission to delete this Contact.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40431The Contact was not found by its unique identifier.
409121This Contact is still being used by a Asset or User.
Returns an ErrorDetailContactInUse as the errorDetails.

PATCH/contacts/{contactId}/restore

Restores the specified Contact.
URL Parameters
ParameterTypeRequiredDescription
contactIduint64requiredUnique identifier of the Contact.
HTTP Request body description
PropertyTypeRequiredDescription
contactParamIdalwaysAn object to contain the "id" of the Contact.
contact.iduint64alwaysIdentifier given as input for the command.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"contact": {
		"id": number
	},
	"reqId": number
}
Response description
PropertyTypeDescription
contactRespDeletedAn object which contains the Contact's id, owning Company id, and deleted status.
contact.companyuint64Identifier of the Company to which this object belongs.
contact.deletedbooleanFlag showing if the object is deleted.
contact.iduint64?Identifier given as input for the command.
contact.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"contact": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a contact object, or it is invalid.
4003The contact object does not contain an id, or it is invalid.
4015You do not have permission to restore this Contact.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40431The Contact was not found by its unique identifier.
40032The Contact was found, but is not marked as deleted.

GET/machines?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

This request is an alias of /companies/{your-company-id}/machines.
URL Parameters
ParameterTypeRequiredDefaultDescription
firststringoptionalWhen using , sets the first alphabetic SelfMachine.key when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic SelfMachine.key when listing from the database.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/machines

Creates a new or updates an existing Machine.
HTTP Request body description
PropertyTypeRequiredDescription
machineObject.<string, ?>alwaysAn object to contain the Machine parameters.
machine.companyuint64?createThe company to which this Machine belongs. After creation, this value is read-only.
machine.enabledbooleanoptionalIndicates whether system access is disable.
machine.formatsObject.<string, string>optionalThe format strings defining the preferred way to display ambiguous values.
machine.groupsArray.<uint64>
for values see: UserGroup.id
optionalA list of UserGroup to which this Machine belongs.
machine.insecurebooleanoptionalIndicates whether completely insecure/unrestricted system access is allowed.
machine.ipRangesArray.<ipv4>
maximum-length of values: 19
optionalRestrict Machine access to only the provided IPv4 ranges (using CIDR slash-notation).
machine.keystringupdateThe unique identifier of the Machine you want to update.
machine.languagestring
maximum-length: 5
minimum-length: 2
optionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
machine.measurementsObject.<string, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
machine.nicknamestring
maximum-length: 100
optionalHuman friendly name for this Machine.
machine.notAfterdatetimeoptionalAn optional timestamp that restricts this Machine from being used after the given date.
machine.notBeforedatetimeoptionalAn optional timestamp that restricts this Machine from being used before the given date.
machine.notesstring
maximum-length: 8000
optionalNotes about this Machine.
machine.optionsObject.<string, string>optionalAdditional options which do not fit in with the formats or measurements preferences.
machine.permissionsArray.<ParamPermission>optionalIndividual permission rules which override the UserGroup rules.
machine.referrersArray.<url>
maximum-length of values: 254
optionalOptional list of your managed domains from which this Machine can be used.
machine.secretbooleanoptionalA flag to either remove, or generate a new SelfMachine.secret.
machine.servicesArray.<url>
maximum-length of values: 254
optionalList of Fleet Freedom service URIs that this Machine is permitted to access.
machine.timezonecodifiedoptionalThe Machine's local timezone.
machine.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"machine": {
		"company": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			number
		],
		"insecure": boolean,
		"ipRanges": [
			string
		],
		"key": string,
		"language": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notAfter": string,
		"notBefore": string,
		"notes": string,
		"options": {
			string: string
		},
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string
			}
		],
		"referrers": [
			string
		],
		"secret": boolean,
		"services": [
			string
		],
		"timezone": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machineRespKeyCompanyAn object which contains the "key" and "company" keys when there is no error.
machine.companyuint64Identifier of the Company to which the Machine belongs.
machine.keystringThe Machine's key.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machine": {
		"company": number,
		"key": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
5002Unable to generate unique key.
If you receive this error, please contact technical support.
4003The request does not contain a machine object, or it is invalid.
4003No valid changes would be performed.
4003The given language value was not a valid culture.
4003One of the keys given in the machine.formats dictionary was blank.
4003One of the keys given in the machine.measurements dictionary was blank.
4003One of the keys given in the machine.options dictionary was blank.
4003During create: When creating a new Machine, a key was given. Keys are generated by the system during creation.
4003During create: When creating a new Machine, a company was not given.
4003One of the schemes in the given machine.services array was not allowed.
Returns an ErrorDetailEnum as the errorDetails.
4003One of the schemes in the given machine.referrers array was not allowed.
Returns an ErrorDetailEnum as the errorDetails.
4003The given machine.notBefore value could not be parsed into a date/time.
Returns an ErrorDetailInput as the errorDetails.
4003The given machine.notAfter value could not be parsed into a date/time.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.measurements dictionary was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.groups array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.permissions array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.services array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.referrers array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.ipRanges array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.ipRanges array was a loopback.
Returns an ErrorDetailInput as the errorDetails.
4003During update: When updating a Machine, the given key was invalid.
Returns an ErrorDetailInput as the errorDetails.
4015During create: You do not have sufficient permission to create a new Machine.
4015During update: You do not have sufficient permission to update Machines.
4006During update: When updating a Machine, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430One or more of the UserGroups given could not be found, or were from a different Company.
Returns an ErrorDetailBadIds as the errorDetails.
40462The given Timezone value could not be found.
Returns an ErrorDetailInput as the errorDetails.
40171The Machine you are creating or updating would have higher, or more, permissions than you do.
Returns an ErrorDetailEscalation as the errorDetails.
404127During update: When updating a Machine and the Machine does not exists.
409130During update: When updating a Machine, the machine.company can not be changed.

DELETE/machines

Deletes an existing Machine.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machineRespKeyDeletedAn object which contains the Machine's key, owning Company id, and deleted status.
machine.companyuint64Identifier of the Company to which the Machine belongs.
machine.deletedbooleanFlag showing if the object is deleted.
machine.keystringThe Machine's key.
machine.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machine": {
		"company": number,
		"deleted": boolean,
		"key": string,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a machine object, or it is invalid.
4003The machine object does not contain a key, or it is invalid.
4015You do not have permission to delete Machines.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404127The requested Machine is not found.

GET/machines/{key}?includeDeleted=boolean

Gets details of the specified Machine.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
keystringrequiredUnique identifier of the Machine.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machineMachineThe requested Machine.
machine.companyuint64The company to which this user belongs.
machine.enabledbooleanIndicates whether system access is disable.
machine.formatsObject.<codified, datetimetemplate>
maximum-length of values: 20
The format strings defining the preferred way to display ambiguous values.
machine.groupsArray.<uint64>A list of groups to which this machine account belongs.
machine.insecurebooleanWhen true, no access restrictions (SelfMachine.secret, SelfMachine.referrers, or SelfMachine.ipRanges) are enforced.
machine.ipRangesArray.<ipv4>
maximum-length of values: 19
Restrict service access to only the provided IP ranges. Currently we only support IPv4 ranges using CIDR slash-notation.
machine.keystring
maximum-length: 50
The unique idenifier used to access the system.
machine.languagecodified
maximum-length: 5
minimum-length: 2
Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
machine.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
machine.nicknamestring
maximum-length: 100
Human friendly name for these credentials
machine.notAfterdatetimeAn optional timestamp that restricts this machine account from being used after the given date.
machine.notBeforedatetimeAn optional timestamp that restricts this machine account from being used before the given date.
machine.notesstring
maximum-length: 8000
Notes about this machine.
machine.optionsObject.<codified, string>
maximum-length of values: 20
Additional options which do not fit in with the formats or measurements preferences.
machine.permissionsArray.<Permission>Permission rules which override the group rules.
machine.processedUtcdatetimeWhen the was change procesed.
machine.referrersArray.<url>
maximum-length of values: 254
Optional list of your managed domains from which this machine account can be used.
machine.secretstring
maximum-length: 1000
A token used to encode or validate requests.
machine.servicesArray.<url>
maximum-length of values: 254
List of system service URIs that this machine account is permitted to access.
machine.timezonecodifiedThe service account's local timezone.
machine.updatedby: login, from: monster
machine.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machine": {
		"company": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			number
		],
		"insecure": boolean,
		"ipRanges": [
			string
		],
		"key": string,
		"language": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notAfter": string,
		"notBefore": string,
		"notes": string,
		"options": {
			string: string
		},
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"processedUtc": string,
		"referrers": [
			string
		],
		"secret": string,
		"services": [
			string
		],
		"timezone": string,
		"updated": {
		},
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a machine object, or it is invalid.
4003The machine object does not contain a key, or it is invalid.
4015You do not have permission to view Machines.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404127The requested Machine is not found.

POST/machines/{key}

Creates a new or updates an existing Machine.
URL Parameters
ParameterTypeRequiredDescription
keystringoptionalUnique identifier of the Machine. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
machineObject.<string, ?>alwaysAn object to contain the Machine parameters.
machine.companyuint64?createThe company to which this Machine belongs. After creation, this value is read-only.
machine.enabledbooleanoptionalIndicates whether system access is disable.
machine.formatsObject.<string, string>optionalThe format strings defining the preferred way to display ambiguous values.
machine.groupsArray.<uint64>
for values see: UserGroup.id
optionalA list of UserGroup to which this Machine belongs.
machine.insecurebooleanoptionalIndicates whether completely insecure/unrestricted system access is allowed.
machine.ipRangesArray.<ipv4>
maximum-length of values: 19
optionalRestrict Machine access to only the provided IPv4 ranges (using CIDR slash-notation).
machine.keystringupdateThe unique identifier of the Machine you want to update.
machine.languagestring
maximum-length: 5
minimum-length: 2
optionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
machine.measurementsObject.<string, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
machine.nicknamestring
maximum-length: 100
optionalHuman friendly name for this Machine.
machine.notAfterdatetimeoptionalAn optional timestamp that restricts this Machine from being used after the given date.
machine.notBeforedatetimeoptionalAn optional timestamp that restricts this Machine from being used before the given date.
machine.notesstring
maximum-length: 8000
optionalNotes about this Machine.
machine.optionsObject.<string, string>optionalAdditional options which do not fit in with the formats or measurements preferences.
machine.permissionsArray.<ParamPermission>optionalIndividual permission rules which override the UserGroup rules.
machine.referrersArray.<url>
maximum-length of values: 254
optionalOptional list of your managed domains from which this Machine can be used.
machine.secretbooleanoptionalA flag to either remove, or generate a new SelfMachine.secret.
machine.servicesArray.<url>
maximum-length of values: 254
optionalList of Fleet Freedom service URIs that this Machine is permitted to access.
machine.timezonecodifiedoptionalThe Machine's local timezone.
machine.vArray.<int32>optional
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"machine": {
		"company": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			number
		],
		"insecure": boolean,
		"ipRanges": [
			string
		],
		"key": string,
		"language": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notAfter": string,
		"notBefore": string,
		"notes": string,
		"options": {
			string: string
		},
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string
			}
		],
		"referrers": [
			string
		],
		"secret": boolean,
		"services": [
			string
		],
		"timezone": string,
		"v": [
			number
		]
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machineRespKeyCompanyAn object which contains the "key" and "company" keys when there is no error.
machine.companyuint64Identifier of the Company to which the Machine belongs.
machine.keystringThe Machine's key.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machine": {
		"company": number,
		"key": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
5002Unable to generate unique key.
If you receive this error, please contact technical support.
4003The request does not contain a machine object, or it is invalid.
4003No valid changes would be performed.
4003The given language value was not a valid culture.
4003One of the keys given in the machine.formats dictionary was blank.
4003One of the keys given in the machine.measurements dictionary was blank.
4003One of the keys given in the machine.options dictionary was blank.
4003During create: When creating a new Machine, a key was given. Keys are generated by the system during creation.
4003During create: When creating a new Machine, a company was not given.
4003One of the schemes in the given machine.services array was not allowed.
Returns an ErrorDetailEnum as the errorDetails.
4003One of the schemes in the given machine.referrers array was not allowed.
Returns an ErrorDetailEnum as the errorDetails.
4003The given machine.notBefore value could not be parsed into a date/time.
Returns an ErrorDetailInput as the errorDetails.
4003The given machine.notAfter value could not be parsed into a date/time.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.measurements dictionary was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.groups array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.permissions array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.services array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.referrers array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.ipRanges array was invalid.
Returns an ErrorDetailInput as the errorDetails.
4003One of the values given in the machine.ipRanges array was a loopback.
Returns an ErrorDetailInput as the errorDetails.
4003During update: When updating a Machine, the given key was invalid.
Returns an ErrorDetailInput as the errorDetails.
4015During create: You do not have sufficient permission to create a new Machine.
4015During update: You do not have sufficient permission to update Machines.
4006During update: When updating a Machine, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430One or more of the UserGroups given could not be found, or were from a different Company.
Returns an ErrorDetailBadIds as the errorDetails.
40462The given Timezone value could not be found.
Returns an ErrorDetailInput as the errorDetails.
40171The Machine you are creating or updating would have higher, or more, permissions than you do.
Returns an ErrorDetailEscalation as the errorDetails.
404127During update: When updating a Machine and the Machine does not exists.
409130During update: When updating a Machine, the machine.company can not be changed.

DELETE/machines/{key}

Deletes an existing Machine.
URL Parameters
ParameterTypeRequiredDescription
keystringrequiredUnique identifier of the Machine.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machineRespKeyDeletedAn object which contains the Machine's key, owning Company id, and deleted status.
machine.companyuint64Identifier of the Company to which the Machine belongs.
machine.deletedbooleanFlag showing if the object is deleted.
machine.keystringThe Machine's key.
machine.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machine": {
		"company": number,
		"deleted": boolean,
		"key": string,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a machine object, or it is invalid.
4003The machine object does not contain a key, or it is invalid.
4015You do not have permission to delete Machines.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404127The requested Machine is not found.

PATCH/machines/{key}/restore

Restores the specified Machine if it's been deleted.
URL Parameters
ParameterTypeRequiredDescription
keystringrequiredUnique identifier of the Machine.
HTTP Request body description
PropertyTypeRequiredDescription
machineParamKeyalwaysAn object to contain the "key" of the Machine.
machine.keystringalwaysThe Machine's login.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"machine": {
		"key": string
	},
	"reqId": number
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machineRespKeyDeletedAn object which contains the Machine's key, owning Company id, and deleted status.
machine.companyuint64Identifier of the Company to which the Machine belongs.
machine.deletedbooleanFlag showing if the object is deleted.
machine.keystringThe Machine's key.
machine.vArray.<uint32>
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machine": {
		"company": number,
		"deleted": boolean,
		"key": string,
		"v": [
			number
		]
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a machine object, or it is invalid.
4003The machine object does not contain a key, or it is invalid.
4015You do not have permission to restore deleted Machines.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
404127The requested Machine is not found.
400128The requested Machine was found, but is not marked as deleted.

GET/machines?groupId={uint64}&includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

Gets the list of Machines for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
firststringoptionalWhen using , sets the first alphabetic SelfMachine.key when listing from the database.
groupIduint64requiredUnique identifier of the UserGroup.
includeArchivebooleanoptionalSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalFalse by default, but when true, the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic SelfMachine.key when listing from the database.
limituint16?optionalWhen using , sets the maximum number of objects retrieved from the archive.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of Machines belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
machinesArray.<Machine>The list requested of Machines.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"machines": [
		{
			"company": number,
			"enabled": boolean,
			"formats": {
				string: string
			},
			"groups": [
				number
			],
			"insecure": boolean,
			"ipRanges": [
				string
			],
			"key": string,
			"language": string,
			"measurements": {
				string: string
			},
			"nickname": string,
			"notAfter": string,
			"notBefore": string,
			"notes": string,
			"options": {
				string: string
			},
			"permissions": [
				{
					"company": number,
					"kind": string,
					"labels": [
						string
					],
					"level": string,
					"method": string,
					"type": string
				}
			],
			"processedUtc": string,
			"referrers": [
				string
			],
			"secret": string,
			"services": [
				string
			],
			"timezone": string,
			"updated": {
			},
			"v": [
				number
			]
		}
	],
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company's Machines.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.

GET/users?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

This request is an alias of /companies/{your-company-id}/users/.
URL Parameters
ParameterTypeRequiredDefaultDescription
firststringoptionalWhen using , sets the first alphabetic User.login when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic User.login when listing from the database.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/users

Creates a new or updates an existing User.
HTTP Request body description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
userObject.<string, ?>always
user.companyuint64?createThe company to which this User belongs. After creation, this value is read-only.
user.contactuint64?optionalContact information for this User.
user.enabledbooleanoptionalIndicates whether system access is disable.
user.formatsObject.<codified, string>optionalThe format strings defining the preferred way to display ambiguous values.
user.groupsArray.<uint64>
for values see: UserGroup.id
optionalA list of UserGroups to which this User is a member.
user.languagestring
maximum-length: 5
minimum-length: 2
optionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
user.loginemailalwaysThe unique identifier of the User you want to update.
user.measurementsObject.<codified, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
user.nicknamestring
maximum-length: 100
optionalHuman friendly name for these credentials
user.notifyArray.<UserNotifications>optionalDefinition of how and when to send alerts to the User.
user.optionsObject.<codified, string>optionalAdditional options which do not fit in with the formats or measurements preferences.
user.passwordstringcreateThis User's password.
user.passwordExpiredbooleanoptionalIndicated whether the credentials have expired according to the company's policy.
user.permissionsArray.<ParamPermission>
maximum-count of values: 254
optionalIndividual permission rules which override the UserGroup rules.
user.timezonecodifiedoptionalThe User's local timezone.
user.vArray.<int32>optional
HTTP Request body structure
{
	"reqId": number,
	"user": {
		"company": number,
		"contact": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			number
		],
		"language": string,
		"login": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notify": [
			{
				"email": string,
				"enabled": boolean,
				"end": string,
				"name": string,
				"offline": [
					string
				],
				"online": [
					string
				],
				"sms": number,
				"start": string,
				"weekdays": [
					boolean
				]
			}
		],
		"options": {
			string: string
		},
		"password": string,
		"passwordExpired": boolean,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string
			}
		],
		"timezone": string,
		"v": [
			number
		]
	}
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userRespLoginCompany
user.companyuint64Identifier of the Company to which the User belongs.
user.loginstringThe User's login.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"user": {
		"company": number,
		"login": string
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a user object, or it is invalid.
4003No valid changes would be performed.
4003The user object did not contain a login, or was not a valid email address.
4003The user object contains a contact which is not valid.
4003The user object contains a blank password.
4003The given language was not a valid region.
4003One of the keys given in the user.formats dictionary was blank.
4003One of the keys given in the user.measurements dictionary was blank.
4003One of the keys given in the user.options dictionary was blank.
4003One of the given user.notify values was null, had a blank name property, or was not a valid object.
4003The contact given is from a different company than the User.
4003During create: When creating a new User, a company was not given.
4003During create: When creating a new User, a password was not given.
4003During update: When updating a User, the company can not be changed.
4003One of the user.measurements could not be parsed.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.notify preferences could not be parsed.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.notify preferences did not contain a name.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.groups was not given as a number.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.permissions was invalid.
Returns an ErrorDetailInput as the errorDetails.
4015During create: You do not have sufficient permission to create a new User.
4015During update: You do not have sufficient permission to update Users.
4015During update: You do not have sufficient permission to update User permissions.
4015During update: You do not have sufficient permission to view contacts.
4006During update: When updating a User, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40115The user.password given for the User was not strong enough.
40316You cannot execute this command because your password has expired.
40428The User's company's password policy could not be found.
If you receive this error, please contact technical support.
40430One or more of the UserGroups given could not be found, or were from a different company.
Returns an ErrorDetailBadIds as the errorDetails.
40431The Contact given could not be found.
40454During update: When updating a User and the User does not exists.
40055During create: When creating a new User and the User already exists.
40357You cannot disable your own User.
40462The given Timezone could not be found.
Returns an ErrorDetailInput as the errorDetails.
40171The User you are creating or updating would have higher, or more, permissions than you do.
Returns an ErrorDetailEscalation as the errorDetails.
409130The specified user.contact was found, but was not in the same Company as the given User.
409130During update: When updating an User, the user.company can not be changed.

DELETE/users

Deletes an existing User.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userRespLoginDeletedAn object which contains the User's login, owning Company id, and deleted status.
user.companyuint64Identifier of the Company to which the User belongs.
user.deletedbooleanFlag showing if the object is deleted.
user.loginstringThe User's login.
user.vArray.<uint32>
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"user": {
		"company": number,
		"deleted": boolean,
		"login": string,
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a user object, or it is invalid.
4003The user object does not contain a login, or it is an invalid email address.
4015You do not have permission to delete Users.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40454The requested User is not found.
40357You cannot delete your own User.

GET/users/{login}?includeDeleted=boolean

Gets details of the specified User.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
loginemailrequiredUnique identifier of the User.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userUserThe requested User.
user.companyuint64The company to which this user belongs.
user.contactuint64?Contact information for this user.
user.enabledbooleanIndicates whether system access is disabled.
user.formatsObject.<codified, datetimetemplate>
maximum-length of values: 20
The format strings defining the preferred way to display ambiguous values.
user.groupsArray.<uint64>A list of groups to which this user belongs.
user.languagecodified
maximum-length: 5
minimum-length: 2
Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
user.loginemail
maximum-length: 254
minimum-length: 6
Unique identifier of this user.
user.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
user.nicknamestring
maximum-length: 100
Human friendly name for these credentials
user.notifyArray.<UserNotifications>
maximum-count: 7
Definition of how and when to send alerts to the user.
user.optionsObject.<codified, string>
maximum-length of values: 20
Additional options which do not fit in with the formats or measurements preferences.
user.passwordExpiredbooleanIndicated whether the credentials have expired according to the company's policy.
user.permissionsArray.<Permission>Individual permission rules which override the group rules.
user.processedUtcdatetimeWhen the was change procesed.
user.timezonecodifiedThe user's local timezone.
user.updatedby: login, from: monster
user.vArray.<int32>
fixed count: 2
Object version keys used to validate synchronization for all object properties.
user.v[0]int32The first element is for the general properties
user.v[1]int32The second element is for the advanced properties
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"user": {
		"company": number,
		"contact": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			number
		],
		"language": string,
		"login": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notify": [
			{
				"email": string,
				"enabled": boolean,
				"end": string,
				"name": string,
				"offline": [
					string
				],
				"online": [
					string
				],
				"sms": number,
				"start": string,
				"weekdays": [
					boolean
				]
			}
		],
		"options": {
			string: string
		},
		"passwordExpired": boolean,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"processedUtc": string,
		"timezone": string,
		"updated": {
		},
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a user object, or it is invalid.
4003The user object does not contain a login, or it is an invalid email address.
4015You do not have permission to view Users.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40454The requested User is not found.

POST/users/{login}

Creates a new or updates an existing User.
URL Parameters
ParameterTypeRequiredDescription
loginemailoptionalUnique identifier of the User. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
userObject.<string, ?>always
user.companyuint64?createThe company to which this User belongs. After creation, this value is read-only.
user.contactuint64?optionalContact information for this User.
user.enabledbooleanoptionalIndicates whether system access is disable.
user.formatsObject.<codified, string>optionalThe format strings defining the preferred way to display ambiguous values.
user.groupsArray.<uint64>
for values see: UserGroup.id
optionalA list of UserGroups to which this User is a member.
user.languagestring
maximum-length: 5
minimum-length: 2
optionalPreferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
user.loginemailalwaysThe unique identifier of the User you want to update.
user.measurementsObject.<codified, SystemsOfUnits?>optionalPreferred way of displaying ambiguous numbers in the context of measurements.
user.nicknamestring
maximum-length: 100
optionalHuman friendly name for these credentials
user.notifyArray.<UserNotifications>optionalDefinition of how and when to send alerts to the User.
user.optionsObject.<codified, string>optionalAdditional options which do not fit in with the formats or measurements preferences.
user.passwordstringcreateThis User's password.
user.passwordExpiredbooleanoptionalIndicated whether the credentials have expired according to the company's policy.
user.permissionsArray.<ParamPermission>
maximum-count of values: 254
optionalIndividual permission rules which override the UserGroup rules.
user.timezonecodifiedoptionalThe User's local timezone.
user.vArray.<int32>optional
HTTP Request body structure
{
	"reqId": number,
	"user": {
		"company": number,
		"contact": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"groups": [
			number
		],
		"language": string,
		"login": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notify": [
			{
				"email": string,
				"enabled": boolean,
				"end": string,
				"name": string,
				"offline": [
					string
				],
				"online": [
					string
				],
				"sms": number,
				"start": string,
				"weekdays": [
					boolean
				]
			}
		],
		"options": {
			string: string
		},
		"password": string,
		"passwordExpired": boolean,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string
			}
		],
		"timezone": string,
		"v": [
			number
		]
	}
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userRespLoginCompany
user.companyuint64Identifier of the Company to which the User belongs.
user.loginstringThe User's login.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"user": {
		"company": number,
		"login": string
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a user object, or it is invalid.
4003No valid changes would be performed.
4003The user object did not contain a login, or was not a valid email address.
4003The user object contains a contact which is not valid.
4003The user object contains a blank password.
4003The given language was not a valid region.
4003One of the keys given in the user.formats dictionary was blank.
4003One of the keys given in the user.measurements dictionary was blank.
4003One of the keys given in the user.options dictionary was blank.
4003One of the given user.notify values was null, had a blank name property, or was not a valid object.
4003The contact given is from a different company than the User.
4003During create: When creating a new User, a company was not given.
4003During create: When creating a new User, a password was not given.
4003During update: When updating a User, the company can not be changed.
4003One of the user.measurements could not be parsed.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.notify preferences could not be parsed.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.notify preferences did not contain a name.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.groups was not given as a number.
Returns an ErrorDetailInput as the errorDetails.
4003One of the user.permissions was invalid.
Returns an ErrorDetailInput as the errorDetails.
4015During create: You do not have sufficient permission to create a new User.
4015During update: You do not have sufficient permission to update Users.
4015During update: You do not have sufficient permission to update User permissions.
4015During update: You do not have sufficient permission to view contacts.
4006During update: When updating a User, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40115The user.password given for the User was not strong enough.
40316You cannot execute this command because your password has expired.
40428The User's company's password policy could not be found.
If you receive this error, please contact technical support.
40430One or more of the UserGroups given could not be found, or were from a different company.
Returns an ErrorDetailBadIds as the errorDetails.
40431The Contact given could not be found.
40454During update: When updating a User and the User does not exists.
40055During create: When creating a new User and the User already exists.
40357You cannot disable your own User.
40462The given Timezone could not be found.
Returns an ErrorDetailInput as the errorDetails.
40171The User you are creating or updating would have higher, or more, permissions than you do.
Returns an ErrorDetailEscalation as the errorDetails.
409130The specified user.contact was found, but was not in the same Company as the given User.
409130During update: When updating an User, the user.company can not be changed.

DELETE/users/{login}

Deletes an existing User.
URL Parameters
ParameterTypeRequiredDescription
loginemailrequiredUnique identifier of the User.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userRespLoginDeletedAn object which contains the User's login, owning Company id, and deleted status.
user.companyuint64Identifier of the Company to which the User belongs.
user.deletedbooleanFlag showing if the object is deleted.
user.loginstringThe User's login.
user.vArray.<uint32>
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"user": {
		"company": number,
		"deleted": boolean,
		"login": string,
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a user object, or it is invalid.
4003The user object does not contain a login, or it is an invalid email address.
4015You do not have permission to delete Users.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40454The requested User is not found.
40357You cannot delete your own User.

GET/users/{login}/advanceds?includeDeleted=boolean

Gets details of the specified User.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
loginemailrequiredUnique identifier of the User.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userAdvancedUserAdvancedThe requested User.
userAdvanced.companyuint64The company to which this user belongs.
userAdvanced.groupsArray.<uint64>A list of groups to which this user belongs.
userAdvanced.loginemail
maximum-length: 254
minimum-length: 6
The unique public email address used to access the system.
userAdvanced.permissionsArray.<Permission>Individual permission rules which override the group rules.
userAdvanced.processedUtcdatetimeWhen the was change procesed.
userAdvanced.updatedby: login, from: monster
userAdvanced.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userAdvanced": {
		"company": number,
		"groups": [
			number
		],
		"login": string,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"processedUtc": string,
		"updated": {
		},
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a user object, or it is invalid.
4003The user object does not contain an id, or it is invalid.
4015You do not have permission to view this User's advanced details.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The User was not found by its unique identifier.

GET/users/{login}/generals?includeDeleted=boolean

Gets details of the specified User.
URL Parameters
ParameterTypeRequiredDescription
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
loginemailrequiredUnique identifier of the User.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGeneralUserGeneralThe requested User.
userGeneral.companyuint64The company to which this user belongs.
userGeneral.contactuint64?Contact information for this user.
userGeneral.enabledbooleanIndicates whether system access is disabled.
userGeneral.formatsObject.<codified, datetimetemplate>
maximum-length of values: 20
The format strings defining the preferred way to display ambiguous values.
userGeneral.languagecodified
maximum-length: 5
minimum-length: 2
Preferred region/language for the UI and notifications. Valid formats use <ISO 639-1><dash><ISO 3166-2> such as "fr-CA" or "en-US".
userGeneral.loginemail
maximum-length: 254
minimum-length: 6
The unique public email address used to access the system.
userGeneral.measurementsObject.<codified, SystemsOfUnits>Preferred way of displaying ambiguous numbers in the context of measurements.
userGeneral.nicknamestring
maximum-length: 100
Human friendly name for these credentials
userGeneral.notifyArray.<UserNotifications>
maximum-count: 7
Definition of how and when to send alerts to the user.
userGeneral.optionsObject.<codified, string>
maximum-length of values: 20
Additional options which do not fit in with the formats or measurements preferences.
userGeneral.passwordExpiredbooleanIndicated whether the credentials have expired according to the company's policy.
userGeneral.processedUtcdatetimeWhen the was change procesed.
userGeneral.timezonecodifiedThe user's local timezone.
userGeneral.updatedby: login, from: monster
userGeneral.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGeneral": {
		"company": number,
		"contact": number,
		"enabled": boolean,
		"formats": {
			string: string
		},
		"language": string,
		"login": string,
		"measurements": {
			string: string
		},
		"nickname": string,
		"notify": [
			{
				"email": string,
				"enabled": boolean,
				"end": string,
				"name": string,
				"offline": [
					string
				],
				"online": [
					string
				],
				"sms": number,
				"start": string,
				"weekdays": [
					boolean
				]
			}
		],
		"options": {
			string: string
		},
		"passwordExpired": boolean,
		"processedUtc": string,
		"timezone": string,
		"updated": {
		},
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a user object, or it is invalid.
4003The user object does not contain an id, or it is invalid.
4015You do not have permission to view this User's simple details.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40420The User was not found by its unique identifier.

PATCH/users/{login}/restore

Restores the specified User if it's been deleted.
URL Parameters
ParameterTypeRequiredDescription
loginemailrequiredUnique identifier of the User.
HTTP Request body description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
userParamLoginalwaysAn object to contain the "login" of the User.
user.loginemailalwaysThe User's login.
HTTP Request body structure
{
	"reqId": number,
	"user": {
		"login": string
	}
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userRespLoginDeletedAn object which contains the User's login, owning Company id, and deleted status.
user.companyuint64Identifier of the Company to which the User belongs.
user.deletedbooleanFlag showing if the object is deleted.
user.loginstringThe User's login.
user.vArray.<uint32>
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"user": {
		"company": number,
		"deleted": boolean,
		"login": string,
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a user object, or it is invalid.
4003The user object does not contain a login, or it is an invalid email address.
4015You do not have permission to restore Users.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40454The requested User is not found.
40055The requested User not found, but is not marked as deleted.

GET/users/{login}/sessions

Gets the list of SessionFull for the specified Company.
URL Parameters
ParameterTypeRequiredDescription
loginemailrequiredUnique identifier of the User.
Response description
PropertyTypeDescription
companyRespIdAn object to contain the "id" of the Company to which the array of SessionFulls belong.
company.iduint64?Identifier given as input for the command.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
sessionsArray.<SessionFull>The list of requested SessionFull.
Response structure
{
	"company": {
		"id": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"sessions": [
		{
			"active": boolean,
			"company": number,
			"created": string,
			"expiry": string,
			"handle": string,
			"ipAddress": string,
			"lastActivity": string,
			"lastCommand": string,
			"login": string,
			"sockets": number,
			"status": string,
			"userAgent": string
		}
	]
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view SessionFulls for this Company.
4015You do not have permission to view Users for this Company.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.

GET/users/advanceds?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

This request is an alias of /companies/{your-company-id}/users/.
URL Parameters
ParameterTypeRequiredDefaultDescription
firststringoptionalWhen using , sets the first alphabetic User.login when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic User.login when listing from the database.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/users/generals?includeDeleted=boolean&includeArchive=boolean&limit=number&first=string&last=string

This request is an alias of /companies/{your-company-id}/users/.
URL Parameters
ParameterTypeRequiredDefaultDescription
firststringoptionalWhen using , sets the first alphabetic User.login when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
laststringoptionalWhen using , sets the last alphabetic User.login when listing from the database.
limituint16optionalWhen using , sets the maximum number of objects in this response.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

GET/users/groups?includeDeleted=boolean&includeArchive=boolean&limit=number&lowest=number&highest=number

This request is an alias of /companies/{your-company-id}/users/groups/.
URL Parameters
ParameterTypeRequiredDefaultDescription
highestuint64optionalWhen using , sets the maximum id when listing from the database.
includeArchivebooleanoptionalfalseSame as by default, when true the command will also return archived objects.
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
limituint16optionalWhen using , sets the maximum number of objects in this response.
lowestuint64optionalWhen using , sets the minimum id when listing from the database.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/users/groups

Creates a new or updates an existing UserGroup.
HTTP Request body description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
userGroupObject.<string, ?>alwaysA simple object to contain the UserGroup parameters.
userGroup.companyuint64?createThe company to which this UserGroup belongs. After creation, this value is read-only.
userGroup.iduint64?updateThe unique identifier of the UserGroup you want to update.
userGroup.namestring
maximum-length: 100
createName for the UserGroup.
userGroup.notesstringoptionalNotes for the UserGroup.
userGroup.permissionsArray.<ParamPermission>
maximum-count of values: 254
optionalList of permissions assigned to members of this UserGroup.
userGroup.vArray.<int32>optional
HTTP Request body structure
{
	"reqId": number,
	"userGroup": {
		"company": number,
		"id": number,
		"name": string,
		"notes": string,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string
			}
		],
		"v": [
			number
		]
	}
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGroupRespIdCompanyAn object which contains the "id" and "company".
userGroup.companyuint64Identifier of the Company to which this object belongs.
userGroup.iduint64?Identifier given as input for the command.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGroup": {
		"company": number,
		"id": number
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a userGroup object, or it is invalid.
4003Not enough keys exist in the userGroup object.
4003During create: When creating a new UserGroup, a company was not given.
4003During create: When creating a new UserGroup, a name was not given, or it is invalid.
4003During create: When creating a new UserGroup, no Permissions were given.
4003During update: When updating a UserGroup, the id was invalid.
4003During update: When updating a UserGroup, the userGroup object contained too few keys.
4003During update: When updating a UserGroup, all Permissions were removed.
4015During create: You do not have permission to create a new UserGroup.
4015During update: You do not have permission to update UserGroups.
4006During update: When updating a UserGroup, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430During update: The UserGroup was not found by its unique identifier.
40171Resulting permissions would grant a higher level of access than session User's own access level.
409130During update: When updating a UserGroup, the userGroup.company can not be changed.

DELETE/users/groups

Deletes an existing UserGroup.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGroupRespDeletedAn object which contains the "id" and "company" keys when there is no error.
userGroup.companyuint64Identifier of the Company to which this object belongs.
userGroup.deletedbooleanFlag showing if the object is deleted.
userGroup.iduint64?Identifier given as input for the command.
userGroup.vArray.<uint32>
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGroup": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a userGroup object, or it is invalid.
4003The requested userGroup id was invalid.
4015You do not have permission to delete UserGroups.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430The UserGroup was not found by its unique identifier.
40965The UserGroup is currently in use. Please remove any Users who are a member of the UserGroup, then try again.

GET/users/groups/{groupId}?includeDeleted=boolean

Gets an existing UserGroup.
URL Parameters
ParameterTypeRequiredDescription
groupIduint64requiredUnique identifier of the UserGroup.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGroupUserGroupThe requested UserGroup.
userGroup.companyuint64The company to which this group belongs.
userGroup.iduint64Unique identifier of this group.
userGroup.namestring
maximum-length: 100
A name given to this group.
userGroup.notesstringNotes about this group, and to whom this group should be applied.
userGroup.permissionsArray.<Permission>Permissions for this group.
userGroup.processedUtcdatetimeWhen the was change procesed.
userGroup.updatedby: login, from: monster
userGroup.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGroup": {
		"company": number,
		"id": number,
		"name": string,
		"notes": string,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string,
				"type": string
			}
		],
		"processedUtc": string,
		"updated": {
		},
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a userGroup object, or it is invalid.
4003The requested userGroup id was invalid.
4015You do not have permission to view UserGroups.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430The UserGroup was not found by its unique identifier.

POST/users/groups/{groupId}

Creates a new or updates an existing UserGroup.
URL Parameters
ParameterTypeRequiredDescription
groupIduint64?optionalUnique identifier of the UserGroup. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
userGroupObject.<string, ?>alwaysA simple object to contain the UserGroup parameters.
userGroup.companyuint64?createThe company to which this UserGroup belongs. After creation, this value is read-only.
userGroup.iduint64?updateThe unique identifier of the UserGroup you want to update.
userGroup.namestring
maximum-length: 100
createName for the UserGroup.
userGroup.notesstringoptionalNotes for the UserGroup.
userGroup.permissionsArray.<ParamPermission>
maximum-count of values: 254
optionalList of permissions assigned to members of this UserGroup.
userGroup.vArray.<int32>optional
HTTP Request body structure
{
	"reqId": number,
	"userGroup": {
		"company": number,
		"id": number,
		"name": string,
		"notes": string,
		"permissions": [
			{
				"company": number,
				"kind": string,
				"labels": [
					string
				],
				"level": string,
				"method": string
			}
		],
		"v": [
			number
		]
	}
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGroupRespIdCompanyAn object which contains the "id" and "company".
userGroup.companyuint64Identifier of the Company to which this object belongs.
userGroup.iduint64?Identifier given as input for the command.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGroup": {
		"company": number,
		"id": number
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a userGroup object, or it is invalid.
4003Not enough keys exist in the userGroup object.
4003During create: When creating a new UserGroup, a company was not given.
4003During create: When creating a new UserGroup, a name was not given, or it is invalid.
4003During create: When creating a new UserGroup, no Permissions were given.
4003During update: When updating a UserGroup, the id was invalid.
4003During update: When updating a UserGroup, the userGroup object contained too few keys.
4003During update: When updating a UserGroup, all Permissions were removed.
4015During create: You do not have permission to create a new UserGroup.
4015During update: You do not have permission to update UserGroups.
4006During update: When updating a UserGroup, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430During update: The UserGroup was not found by its unique identifier.
40171Resulting permissions would grant a higher level of access than session User's own access level.
409130During update: When updating a UserGroup, the userGroup.company can not be changed.

DELETE/users/groups/{groupId}

Deletes an existing UserGroup.
URL Parameters
ParameterTypeRequiredDescription
groupIduint64requiredUnique identifier of the UserGroup.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGroupRespDeletedAn object which contains the "id" and "company" keys when there is no error.
userGroup.companyuint64Identifier of the Company to which this object belongs.
userGroup.deletedbooleanFlag showing if the object is deleted.
userGroup.iduint64?Identifier given as input for the command.
userGroup.vArray.<uint32>
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGroup": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a userGroup object, or it is invalid.
4003The requested userGroup id was invalid.
4015You do not have permission to delete UserGroups.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430The UserGroup was not found by its unique identifier.
40965The UserGroup is currently in use. Please remove any Users who are a member of the UserGroup, then try again.

PATCH/users/groups/{groupId}/restore

Restores a previously deleted UserGroup.
URL Parameters
ParameterTypeRequiredDescription
groupIduint64requiredUnique identifier of the UserGroup.
HTTP Request body description
PropertyTypeRequiredDescription
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
userGroupParamIdalwaysAn object to contain the "id" of the UserGroup.
userGroup.iduint64alwaysIdentifier given as input for the command.
HTTP Request body structure
{
	"reqId": number,
	"userGroup": {
		"id": number
	}
}
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
userGroupRespDeletedAn object which contains the "id" and "company" keys when there is no error.
userGroup.companyuint64Identifier of the Company to which this object belongs.
userGroup.deletedbooleanFlag showing if the object is deleted.
userGroup.iduint64?Identifier given as input for the command.
userGroup.vArray.<uint32>
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"userGroup": {
		"company": number,
		"deleted": boolean,
		"id": number,
		"v": [
			number
		]
	}
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a userGroup object, or it is invalid.
4003The requested userGroup id was invalid.
4015You do not have permission to delete UserGroups.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40430The UserGroup was not found by its unique identifier.
40066The UserGroup was found, but is not marked as deleted.

GET/users/sessions

This request is an alias of /companies/{your-company-id}/sessions/.
URL Parameters
ParameterTypeRequiredDefaultDescription
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

DELETE/users/sessions

Terminates a SessionFull and forces the User to log back in.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
sessionSessionAn object which contains the SessionFull's handle, related User login, and owning Company id.
session.companyuint64?Identifier of the Company to which this object belongs
session.expirydatetimeA timestamp for when the Session will expire.
session.handlestringA "handle" identifying a resource.
session.loginstringThe User to which the Session belongs.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"session": {
		"company": number,
		"expiry": string,
		"handle": string,
		"login": string
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a session object, or it is invalid.
4003The session object does not contain a handle, or it is invalid.
4015You do not have permission to kill this SessionFull.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40419The SessionFull was not found by its handle, or it is expired.

GET/users/sessions?handle={string}

Gets details of the specified SessionFull.
URL Parameters
ParameterTypeRequiredDescription
handlestringoptionalUnique identifier of the SessionFull.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
sessionSessionFullThe requested SessionFull.
session.activebooleanIndicator that this SessionFull is using at least one WebSocket connection.
session.companyuint64?Identifier of the Company to which this object belongs
session.createddatetimeThe timestamp from the moment this SessionFull was created.
session.expirydatetimeA timestamp for when the Session will expire.
session.handlestringA "handle" identifying a resource.
session.ipAddressipv4The (most recent) IP address that used this SessionFull to connect.
session.lastActivitydatetimeA timestamp from the last command or call to the system.
session.lastCommandstringThe name or path of the last command executed.
session.loginstringThe User to which the Session belongs.
session.socketsint32The number of current-active WebSocket connections.
session.statusSessionStatusThis SessionFull's current state.
session.userAgentstringThe (most recent) software being used by this SessionFull.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"session": {
		"active": boolean,
		"company": number,
		"created": string,
		"expiry": string,
		"handle": string,
		"ipAddress": string,
		"lastActivity": string,
		"lastCommand": string,
		"login": string,
		"sockets": number,
		"status": string,
		"userAgent": string
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a session object, or it is invalid.
4003The session object does not contain a handle, or it is invalid.
4015You do not have permission to view this session.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40419The session was not found by its handle, or it is expired.

DELETE/users/sessions?handle={string}

Terminates a SessionFull and forces the User to log back in.
URL Parameters
ParameterTypeRequiredDescription
handlestringoptionalUnique identifier of the SessionFull.
Response description
PropertyTypeDescription
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
sessionSessionAn object which contains the SessionFull's handle, related User login, and owning Company id.
session.companyuint64?Identifier of the Company to which this object belongs
session.expirydatetimeA timestamp for when the Session will expire.
session.handlestringA "handle" identifying a resource.
session.loginstringThe User to which the Session belongs.
Response structure
{
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number,
	"session": {
		"company": number,
		"expiry": string,
		"handle": string,
		"login": string
	}
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a session object, or it is invalid.
4003The session object does not contain a handle, or it is invalid.
4015You do not have permission to kill this SessionFull.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40419The SessionFull was not found by its handle, or it is expired.

White-labelling

GET/companies/{companyId}/reseller?includeDeleted=boolean

Gets details of the specified CompanyReseller.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
includeDeletedbooleanoptionalFalse by default, but when true the command will also return deleted objects.
Response description
PropertyTypeDescription
companyResellerCompanyResellerThe requested CompanyReseller.
companyReseller.contactInfoObject.<string, uint64>
maximum-count of keys: 100
for values see: Contact.id
A list of Contacts for company specific things like Technical Support, Billing, etc...
companyReseller.domainstring
maximum-length: 100
The URN and path to the instance of v4. It does not contain the protocol because all instances are required to be HTTPS.
companyReseller.favouritestring
maximum-length: 200
The name of the icon file used for browser bookmarks.
companyReseller.gamutObject.<string, ColourStyle>
maximum-length of keys: 25
Colours used as templates for status tags, labels, and places.
companyReseller.graphicsObject.<string, codified>
maximum-length of keys: 25
maximum-length of values: 30
A list of symbol names and their corresponding FontAwesome icon names.
companyReseller.iconstring
maximum-length: 200
The name of the image uploaded as the logo (used for collapsed/mobile view).
companyReseller.iduint64Unique identifier of the Company.
companyReseller.languagesArray.<codified>
maximum-length of values: 5
A list of supported languages for your customers.
companyReseller.notifyEmailNotificationServerEmailThe server used for notification and conversational email messages sent and received by the system.
companyReseller.notifyEmail.incomingAddressstringThe domain or IP address of the incoming email server.
companyReseller.notifyEmail.incomingLoginstringThe username used to login to the incoming email server.
companyReseller.notifyEmail.incomingMessageNumberuint32IMAP message sequence number so only recent messages are retrieved.
companyReseller.notifyEmail.incomingPortuint16The port number of the incoming email server.
companyReseller.notifyEmail.incomingSecurebooleanIs the incoming email server using a secure SSL/TLS connection (it should).
companyReseller.notifyEmail.incomingTypestringThe type of incoming protocol to use (IMAP or POP3).
companyReseller.notifyEmail.outgoingAddressstringThe domain or IP address of the outgoing email server.
companyReseller.notifyEmail.outgoingLoginstringThe username used to login to the outgoing email server.
companyReseller.notifyEmail.outgoingPortuint16The port number of the outgoing email server.
companyReseller.notifyEmail.outgoingReplyToemailAn optional field which can be set as the "sent from" and/or "reply-to" address.
companyReseller.notifyEmail.outgoingSecurebooleanIs the outgoing email server using a secure SSL/TLS connection (it should).
companyReseller.notifyEmail.outgoingTypestringThe type of outgoing protocol to use (only SMTP).
companyReseller.notifySmsNotificationServerSmsDefinition for load-balanced outbound SMS numbers for the reseller.
companyReseller.notifySms.notifyLimituint16A per-number/per-day limit on the amount of Notifications sent.
companyReseller.notifySms.phoneNumbersObject.<string, Array.<phone>>
fixed length of keys: 2
All phone numbers listed by the country (using two-digit ISO 3166-1 alpha-2 country codes) they each serve.
companyReseller.parentuint64The unique identifier of this company's parent organization.
companyReseller.processedUtcdatetimeWhen the was change procesed.
companyReseller.recoverBodystringThe body of the email sent to a user requesting a password reset.
companyReseller.recoverIsHtmlboolean
companyReseller.recoverSubjectstringThe subject of the email sent to a user requesting a password reset.
companyReseller.serviceNamestring
maximum-length: 150
The name of the branded service being provided to the seller's customers.
companyReseller.termsPreamblestringA preamble to the general terms and conditions offered by Fleet Freedom.
companyReseller.termsUpdateddatetimeThe date and time when the terms were updated. This will promt users who are logging-in to re-agree to the new terms
companyReseller.updatedby: login, from: monster
companyReseller.vArray.<uint32>Object version keys used to validate synchronization for all object properties.
companyReseller.websiteObject.<string, colour>
maximum-length of keys: 25
maximum-length of values: 22
Themed colours used in the web-based UI.
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyReseller": {
		"contactInfo": {
			string: number
		},
		"domain": string,
		"favourite": string,
		"gamut": {
			string: {
				"fill": string,
				"stroke": string
			}
		},
		"graphics": {
			string: string
		},
		"icon": string,
		"id": number,
		"languages": [
			string
		],
		"logo": string,
		"notifyEmail": {
			"incomingAddress": string,
			"incomingLogin": string,
			"incomingMessageNumber": number,
			"incomingPort": number,
			"incomingSecure": boolean,
			"incomingType": string,
			"outgoingAddress": string,
			"outgoingLogin": string,
			"outgoingPort": number,
			"outgoingReplyTo": string,
			"outgoingSecure": boolean,
			"outgoingType": string
		},
		"notifySms": {
			"notifyLimit": number,
			"phoneNumbers": {
				string: [
					number
				]
			}
		},
		"parent": number,
		"processedUtc": string,
		"recoverBody": string,
		"recoverIsHtml": boolean,
		"recoverSubject": string,
		"serviceName": string,
		"termsPreamble": string,
		"termsUpdated": string,
		"updated": {
		},
		"v": [
			number
		],
		"website": {
			string: string
		}
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to view this CompanyReseller.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
40428The CompanyReseller was not found by its unique identifier.

POST/companies/{companyId}/reseller

Adds or updates the CompanyReseller to a Company.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company. This value is optional, and ignored by the command.
HTTP Request body description
PropertyTypeRequiredDescription
companyResellerObject.<string, ?>alwaysA simple object to contain the CompanyReseller parameters.
companyReseller.contactInfoObject.<string, uint64?>
maximum-count of keys: 100
for values see: Contact.id
optionalA list of Contacts for company specific things like Technical Support, Billing, etc...
companyReseller.domainstring
maximum-length: 100
createThe URN and path to the instance of v4. It does not contain the protocol because all instances are required to be HTTPS.
companyReseller.favouritestring
maximum-length: 200
optionalThe name of the icon file used for browser bookmarks.
companyReseller.gamutObject.<string, ColourStyle>
maximum-length of keys: 25
createColours used as templates for status tags, labels, and places.
companyReseller.graphicsObject.<string, codified>
maximum-length of keys: 25
maximum-length of values: 30
createA list of symbol names and their corresponding FontAwesome icon names.
companyReseller.iconstring
maximum-length: 200
createThe name of the image uploaded as the logo (used for collapsed/mobile view).
companyReseller.iduint64alwaysThe unique identifier of the company you want to update.
companyReseller.languagesArray.<codified>
maximum-length of values: 5
optionalA list of supported languages for your customers.
companyReseller.notifyEmailObject.<string, ?>createSettings for sending and receiving email notifcations and asset messages.
companyReseller.notifyEmail.incomingAddressstringoptionalThe domain or IP address of the incoming email server.
companyReseller.notifyEmail.incomingLoginstringoptionalThe username used to login to the incoming email server.
companyReseller.notifyEmail.incomingMessageNumberuint32?optionalIMAP message sequence number so only recent messages are retrieved.
companyReseller.notifyEmail.incomingPasswordstringoptionalThe password used to login to the incoming email server.
companyReseller.notifyEmail.incomingPortuint16?optionalThe port number of the incoming email server.
companyReseller.notifyEmail.incomingSecurebooleanoptionalIs the incoming email server using a secure SSL/TLS connection (it should).
companyReseller.notifyEmail.incomingTypestringoptionalThe type of incoming protocol to use (IMAP or POP3).
companyReseller.notifyEmail.outgoingAddressstringoptionalThe domain or IP address of the outgoing email server.
companyReseller.notifyEmail.outgoingLoginstringoptionalThe username used to login to the outgoing email server.
companyReseller.notifyEmail.outgoingPasswordstringoptionalThe password used to login to the outgoing email server.
companyReseller.notifyEmail.outgoingPortuint16?optionalThe port number of the outgoing email server.
companyReseller.notifyEmail.outgoingReplyToemailoptionalAn optional field which can be set as the "sent from" and/or "reply-to" address.
companyReseller.notifyEmail.outgoingSecurebooleanoptionalIs the outgoing email server using a secure SSL/TLS connection (it should).
companyReseller.notifySmsObject.<string, ?>createSettings for sending and receiving SMS notifcations and asset messages.
companyReseller.notifySms.notifyLimituint16?optionalA per-number/per-day limit on the amount of Notifications sent.
companyReseller.notifySms.phoneNumbersObject.<string, Array.<phone>>
fixed length of keys: 2
optionalAll phone numbers listed by the country (using two-digit ISO 3166-1 alpha-2 country codes) they each serve.
companyReseller.recoverBodystringcreateThe body of the email sent to a user requesting a password reset.
companyReseller.recoverIsHtmlbooleanoptional
companyReseller.recoverSubjectstringoptionalThe subject of the email sent to a user requesting a password reset.
companyReseller.serviceNamestring
maximum-length: 150
createThe name of the branded service being provided to the seller's customers.
companyReseller.termsPreamblestringoptionalA small body of text added as a preamble for the Trak-iT Wireless Inc. terms of service.
companyReseller.termsUpdateddatetimeoptionalA timestamp from when the preamble was changed.
companyReseller.vArray.<int32>optional
companyReseller.websiteObject.<string, colour>
maximum-length of keys: 25
maximum-length of values: 22
createThemed colours used in the web-based UI.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"companyReseller": {
		"contactInfo": {
			string: number
		},
		"domain": string,
		"favourite": string,
		"gamut": {
			string: {
				"fill": string,
				"stroke": string
			}
		},
		"graphics": {
			string: string
		},
		"icon": string,
		"id": number,
		"languages": [
			string
		],
		"logo": string,
		"notifyEmail": {
			"incomingAddress": string,
			"incomingLogin": string,
			"incomingMessageNumber": number,
			"incomingPassword": string,
			"incomingPort": number,
			"incomingSecure": boolean,
			"incomingType": string,
			"outgoingAddress": string,
			"outgoingLogin": string,
			"outgoingPassword": string,
			"outgoingPort": number,
			"outgoingReplyTo": string,
			"outgoingSecure": boolean
		},
		"notifySms": {
			"notifyLimit": number,
			"phoneNumbers": {
				string: [
					number
				]
			}
		},
		"recoverBody": string,
		"recoverIsHtml": boolean,
		"recoverSubject": string,
		"serviceName": string,
		"termsPreamble": string,
		"termsUpdated": string,
		"v": [
			number
		],
		"website": {
			string: string
		}
	},
	"reqId": number
}
Response description
PropertyTypeDescription
companyResellerRespIdParentAn object which contains the "id" and "company" keys.
companyReseller.iduint64?Identifier given as input for the command.
companyReseller.parentuint64?Identifier of the parent to which this company belongs
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyReseller": {
		"id": number,
		"parent": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a companyReseller object, or it is invalid.
4003No valid changes would be performed.
4003The value for companyReseller.notifyEmail.incomingType was invalid. It can only be IMAP or POP3.
4003The value for companyReseller.notifyEmail.outgoingReplyTo was not valid email address.
4003One of the keys in the companyReseller.notifySms.phoneNumbers object is blank.
4003One of the values in the companyReseller.notifySms.phoneNumbers object is not valid.
4003During create: When adding a CompanyReseller, the companyReseller.id was not given.
4003During create: When adding a CompanyReseller, the companyReseller.serviceName was not given or was blank.
4003During create: When adding a CompanyReseller, the companyReseller.logo was not given.
4003During create: When adding a CompanyReseller, the companyReseller.icon was not given.
4003During create: When adding a CompanyReseller, the companyReseller.domain was not given.
4003During create: When adding a CompanyReseller, the companyReseller.website was not given or was invalid.
4003During create: When adding a CompanyReseller, the companyReseller.graphics was not given or was invalid.
4003During create: When adding a CompanyReseller, the companyReseller.gamut was not given or was invalid.
4003During create: When adding a CompanyReseller, the companyReseller.recoverBody was not given or was blank.
4003During update: When updating the CompanyReseller, the v was not an array, or contained too few numbers.
4003During update: When updating the CompanyReseller, the companyReseller.serviceName was given as blank or white-space.
4003During update: When updating the CompanyReseller, the companyReseller.logo was given as blank or white-space.
4003During update: When updating the CompanyReseller, the companyReseller.icon was given as blank or white-space.
4003During update: When updating the CompanyReseller, the companyReseller.domain was given as blank or white-space.
4015You do not have permission to add a CompanyReseller.
4015You do not have permission to update the CompanyReseller.
4006During update: When updating a CompanyReseller, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
404106During update: The CompanyReseller was not found by its unique identifier.
409130The resulting CompanyReseller.recoverSubject and CompanyReseller.recoverBody do not contain the required %GUID%.
409130During update: When updating the CompanyReseller, the resulting NotificationServerEmail would be invalid.
409130During update: When updating the CompanyReseller, the resulting NotificationServerSms would be invalid.

DELETE/companies/{companyId}/reseller

Deletes an existing CompanyReseller.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
Response description
PropertyTypeDescription
companyResellerRespParentDeletedAn object which contains the company's unique identifier and deleted status.
companyReseller.deletedbooleanFlag showing if the object is deleted.
companyReseller.iduint64?Identifier given as input for the command.
companyReseller.parentuint64Identifier of the parent to which the Company is a child.
companyReseller.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyReseller": {
		"deleted": boolean,
		"id": number,
		"parent": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a companyReseller object, or it is invalid.
4003The companyReseller object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to delete this CompanyReseller.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
404106The CompanyReseller was not found by its unique identifier.

PATCH/companies/{companyId}/reseller/restore

Restores the specified CompanyReseller.
URL Parameters
ParameterTypeRequiredDescription
companyIduint64requiredUnique identifier of the Company.
HTTP Request body description
PropertyTypeRequiredDefaultDescription
companyParamIdalwaysAn object to contain the "id" key.
company.iduint64alwaysIdentifier given as input for the command.
includeDeletedbooleanoptionalfalseWhen true, the command will also return a deleted Company.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"company": {
		"id": number
	},
	"includeDeleted": boolean,
	"reqId": number
}
Response description
PropertyTypeDescription
companyResellerRespParentDeletedAn object which contains the company's unique identifier and deleted status.
companyReseller.deletedbooleanFlag showing if the object is deleted.
companyReseller.iduint64?Identifier given as input for the command.
companyReseller.parentuint64Identifier of the parent to which the Company is a child.
companyReseller.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyReseller": {
		"deleted": boolean,
		"id": number,
		"parent": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a company object, or it is invalid.
4003The company object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to restore this CompanyReseller.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
404106The CompanyReseller was not found by its unique identifier.
400107The CompanyReseller was found, but is not marked as deleted.

GET/companies/reseller?includeDeleted=boolean

This request is an alias of /companies/{your-company-id}/reseller.
URL Parameters
ParameterTypeRequiredDefaultDescription
includeDeletedbooleanoptionalfalseFalse by default, but when true the command will also return deleted objects.
your-company-iduint64aliased{your-company-id}Your own Company's identifier.

PATCH/companies/reseller

Adds or updates the CompanyReseller to a Company.
HTTP Request body description
PropertyTypeRequiredDescription
companyResellerObject.<string, ?>alwaysA simple object to contain the CompanyReseller parameters.
companyReseller.contactInfoObject.<string, uint64?>
maximum-count of keys: 100
for values see: Contact.id
optionalA list of Contacts for company specific things like Technical Support, Billing, etc...
companyReseller.domainstring
maximum-length: 100
createThe URN and path to the instance of v4. It does not contain the protocol because all instances are required to be HTTPS.
companyReseller.favouritestring
maximum-length: 200
optionalThe name of the icon file used for browser bookmarks.
companyReseller.gamutObject.<string, ColourStyle>
maximum-length of keys: 25
createColours used as templates for status tags, labels, and places.
companyReseller.graphicsObject.<string, codified>
maximum-length of keys: 25
maximum-length of values: 30
createA list of symbol names and their corresponding FontAwesome icon names.
companyReseller.iconstring
maximum-length: 200
createThe name of the image uploaded as the logo (used for collapsed/mobile view).
companyReseller.iduint64alwaysThe unique identifier of the company you want to update.
companyReseller.languagesArray.<codified>
maximum-length of values: 5
optionalA list of supported languages for your customers.
companyReseller.notifyEmailObject.<string, ?>createSettings for sending and receiving email notifcations and asset messages.
companyReseller.notifyEmail.incomingAddressstringoptionalThe domain or IP address of the incoming email server.
companyReseller.notifyEmail.incomingLoginstringoptionalThe username used to login to the incoming email server.
companyReseller.notifyEmail.incomingMessageNumberuint32?optionalIMAP message sequence number so only recent messages are retrieved.
companyReseller.notifyEmail.incomingPasswordstringoptionalThe password used to login to the incoming email server.
companyReseller.notifyEmail.incomingPortuint16?optionalThe port number of the incoming email server.
companyReseller.notifyEmail.incomingSecurebooleanoptionalIs the incoming email server using a secure SSL/TLS connection (it should).
companyReseller.notifyEmail.incomingTypestringoptionalThe type of incoming protocol to use (IMAP or POP3).
companyReseller.notifyEmail.outgoingAddressstringoptionalThe domain or IP address of the outgoing email server.
companyReseller.notifyEmail.outgoingLoginstringoptionalThe username used to login to the outgoing email server.
companyReseller.notifyEmail.outgoingPasswordstringoptionalThe password used to login to the outgoing email server.
companyReseller.notifyEmail.outgoingPortuint16?optionalThe port number of the outgoing email server.
companyReseller.notifyEmail.outgoingReplyToemailoptionalAn optional field which can be set as the "sent from" and/or "reply-to" address.
companyReseller.notifyEmail.outgoingSecurebooleanoptionalIs the outgoing email server using a secure SSL/TLS connection (it should).
companyReseller.notifySmsObject.<string, ?>createSettings for sending and receiving SMS notifcations and asset messages.
companyReseller.notifySms.notifyLimituint16?optionalA per-number/per-day limit on the amount of Notifications sent.
companyReseller.notifySms.phoneNumbersObject.<string, Array.<phone>>
fixed length of keys: 2
optionalAll phone numbers listed by the country (using two-digit ISO 3166-1 alpha-2 country codes) they each serve.
companyReseller.recoverBodystringcreateThe body of the email sent to a user requesting a password reset.
companyReseller.recoverIsHtmlbooleanoptional
companyReseller.recoverSubjectstringoptionalThe subject of the email sent to a user requesting a password reset.
companyReseller.serviceNamestring
maximum-length: 150
createThe name of the branded service being provided to the seller's customers.
companyReseller.termsPreamblestringoptionalA small body of text added as a preamble for the Trak-iT Wireless Inc. terms of service.
companyReseller.termsUpdateddatetimeoptionalA timestamp from when the preamble was changed.
companyReseller.vArray.<int32>optional
companyReseller.websiteObject.<string, colour>
maximum-length of keys: 25
maximum-length of values: 22
createThemed colours used in the web-based UI.
reqIdint32?optionalIdentifier used by external system to correlate requests to responses.
HTTP Request body structure
{
	"companyReseller": {
		"contactInfo": {
			string: number
		},
		"domain": string,
		"favourite": string,
		"gamut": {
			string: {
				"fill": string,
				"stroke": string
			}
		},
		"graphics": {
			string: string
		},
		"icon": string,
		"id": number,
		"languages": [
			string
		],
		"logo": string,
		"notifyEmail": {
			"incomingAddress": string,
			"incomingLogin": string,
			"incomingMessageNumber": number,
			"incomingPassword": string,
			"incomingPort": number,
			"incomingSecure": boolean,
			"incomingType": string,
			"outgoingAddress": string,
			"outgoingLogin": string,
			"outgoingPassword": string,
			"outgoingPort": number,
			"outgoingReplyTo": string,
			"outgoingSecure": boolean
		},
		"notifySms": {
			"notifyLimit": number,
			"phoneNumbers": {
				string: [
					number
				]
			}
		},
		"recoverBody": string,
		"recoverIsHtml": boolean,
		"recoverSubject": string,
		"serviceName": string,
		"termsPreamble": string,
		"termsUpdated": string,
		"v": [
			number
		],
		"website": {
			string: string
		}
	},
	"reqId": number
}
Response description
PropertyTypeDescription
companyResellerRespIdParentAn object which contains the "id" and "company" keys.
companyReseller.iduint64?Identifier given as input for the command.
companyReseller.parentuint64?Identifier of the parent to which this company belongs
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyReseller": {
		"id": number,
		"parent": number
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a companyReseller object, or it is invalid.
4003No valid changes would be performed.
4003The value for companyReseller.notifyEmail.incomingType was invalid. It can only be IMAP or POP3.
4003The value for companyReseller.notifyEmail.outgoingReplyTo was not valid email address.
4003One of the keys in the companyReseller.notifySms.phoneNumbers object is blank.
4003One of the values in the companyReseller.notifySms.phoneNumbers object is not valid.
4003During create: When adding a CompanyReseller, the companyReseller.id was not given.
4003During create: When adding a CompanyReseller, the companyReseller.serviceName was not given or was blank.
4003During create: When adding a CompanyReseller, the companyReseller.logo was not given.
4003During create: When adding a CompanyReseller, the companyReseller.icon was not given.
4003During create: When adding a CompanyReseller, the companyReseller.domain was not given.
4003During create: When adding a CompanyReseller, the companyReseller.website was not given or was invalid.
4003During create: When adding a CompanyReseller, the companyReseller.graphics was not given or was invalid.
4003During create: When adding a CompanyReseller, the companyReseller.gamut was not given or was invalid.
4003During create: When adding a CompanyReseller, the companyReseller.recoverBody was not given or was blank.
4003During update: When updating the CompanyReseller, the v was not an array, or contained too few numbers.
4003During update: When updating the CompanyReseller, the companyReseller.serviceName was given as blank or white-space.
4003During update: When updating the CompanyReseller, the companyReseller.logo was given as blank or white-space.
4003During update: When updating the CompanyReseller, the companyReseller.icon was given as blank or white-space.
4003During update: When updating the CompanyReseller, the companyReseller.domain was given as blank or white-space.
4015You do not have permission to add a CompanyReseller.
4015You do not have permission to update the CompanyReseller.
4006During update: When updating a CompanyReseller, an incorrect v value was given as input.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
404106During update: The CompanyReseller was not found by its unique identifier.
409130The resulting CompanyReseller.recoverSubject and CompanyReseller.recoverBody do not contain the required %GUID%.
409130During update: When updating the CompanyReseller, the resulting NotificationServerEmail would be invalid.
409130During update: When updating the CompanyReseller, the resulting NotificationServerSms would be invalid.

DELETE/companies/reseller

Deletes an existing CompanyReseller.
Response description
PropertyTypeDescription
companyResellerRespParentDeletedAn object which contains the company's unique identifier and deleted status.
companyReseller.deletedbooleanFlag showing if the object is deleted.
companyReseller.iduint64?Identifier given as input for the command.
companyReseller.parentuint64Identifier of the parent to which the Company is a child.
companyReseller.vArray.<uint32>
errorCodeErrorCodeThe unique, numeric error code when processing this request.
errorDetailsErrorDetailAn object to provide developers with a hint about the nature of the error. The key is not always present, and only available for some errors.
messagestringAn English description of the error.
reqIdint32?Identifier used by external system to correlate requests to responses.
Response structure
{
	"companyReseller": {
		"deleted": boolean,
		"id": number,
		"parent": number,
		"v": [
			number
		]
	},
	"errorCode": number,
	"errorDetails": {
		"kind": string
	},
	"message": string,
	"reqId": number
}
Possible exceptions
HTTP StatusError CodeDescription
5002A communication error occurred.
If you receive this error, please contact technical support.
4003The request does not contain a companyReseller object, or it is invalid.
4003The companyReseller object does not contain an id, or it is invalid.
4015You do not have permission to view this Company.
4015You do not have permission to delete this CompanyReseller.
4017You cannot execute this command because your session has expired.
4018You cannot execute this command because you are not logged in.
40316You cannot execute this command because your password has expired.
40428The Company was not found by its unique identifier.
404106The CompanyReseller was not found by its unique identifier.