Download OpenAPI specification:Download
The public facing Parsyl API
This endpoint serves two purposes. It either sends a One Time Password (OTP) to an email address or phone, or exchanges a client ID and secret pair for an access token. In the first case, the OTP must be exchanged for an access token by calling the token exchange endpoint below. If a client ID and secret are used, no further authentication is required.
The login request
| locale | string Enum: "en" "fr" The language to use for the emailed one time password. |
| redirectTo | string For internal use only |
string The email address to send a one time password to. |
{- "locale": "en",
- "redirectTo": "string",
- "email": "string"
}{- "access_token": "string",
- "expires_in": 0,
- "sends": 0,
- "maxSends": 0,
- "retryAfter": 0
}This endpoint will either exchange a One Time Password (OTP) for an access token, or exchange an expired access token and refresh token pair for a new access token.
| refresh | boolean An optional parameter to indicate whether a refresh token should be issued along with the access token |
The login request
| token | string The one time password. |
string The email address this one time password was sent to. |
{- "token": "string",
- "email": "string"
}{- "accessToken": "string",
- "refreshToken": "string"
}Obtain the list of all shipments
| companyId required | any The ID of the company |
| limit | any The limit on devices to return |
| offset | any The current query offset |
| Authorization required | any Authorization JWT token |
[- {
- "id": "string",
- "name": "string",
- "description": "string",
- "goods": "string",
- "status": "pending",
- "start": 0,
- "stop": 0,
- "autoGenerated": true,
- "origin": {
- "id": "string"
}, - "destination": {
- "id": "string"
}, - "insuredValue": {
- "value": 0,
- "currency": "USD",
- "units": "cents"
}, - "devices": [
- {
- "id": "string",
- "deviceId": "string",
- "niceId": "string",
- "type": "string",
- "label": "string",
- "tags": [
- "string"
], - "firmwareVersion": "string",
- "softDeviceVersion": "string",
- "bootLoaderVersion": "string",
- "batteryCapacityMAH": 0,
- "batteryVoltageMV": 0,
- "batteryDescription": "string",
- "storageCapacityKB": 0,
- "storageDescription": "string",
- "active": true,
- "lifecycle": "string",
- "lastUpload": 0,
- "lastDataUpload": 0,
- "latestSensorData": 0,
- "companyId": "string",
- "companyName": "string",
- "containerId": "string",
- "containerName": "string",
- "associatedAt": 0,
- "latestTemperatureExcursion": 0,
- "latestHumidityExcursion": 0,
- "location": "string",
- "containerAssociationTime": 0,
- "containerDisassociationTime": 0,
- "containerPathId": "string"
}
], - "excursions": {
- "shipmentCount": 0,
- "duration": 0,
- "temperature": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}, - "humidity": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}
}
}
]Create a shipment
| companyId required | any The ID of the company |
| Authorization required | any Authorization JWT token |
The shipment definition
| name | string The name of this shipment. Can be any string. |
| description | string A description for this shipment. Can be any string. |
| goods | string A description of the contents of this shipment. Can be any string. |
| status | string Enum: "pending" "in-transit" "complete" The current status of this shipment. |
| start | integer <int64> The start time of this shipment. The time is in Unix Timestamp milliseconds. |
| stop | integer <int64> The stop time of this shipment. The time is in Unix Timestamp milliseconds. |
object The identifier (UUID) of the origin waypoint. | |
object The identifier (UUID) of the destination waypoint. | |
object (InsuredValue) | |
Array of objects |
{- "name": "string",
- "description": "string",
- "goods": "string",
- "status": "pending",
- "start": 0,
- "stop": 0,
- "origin": {
- "id": "string"
}, - "destination": {
- "id": "string"
}, - "insuredValue": {
- "value": 0,
- "currency": "USD",
- "units": "cents"
}, - "devices": [
- {
- "deviceId": "string"
}
]
}{- "id": "string",
- "name": "string",
- "description": "string",
- "goods": "string",
- "status": "pending",
- "start": 0,
- "stop": 0,
- "autoGenerated": true,
- "origin": {
- "id": "string"
}, - "destination": {
- "id": "string"
}, - "insuredValue": {
- "value": 0,
- "currency": "USD",
- "units": "cents"
}, - "devices": [
- {
- "id": "string",
- "deviceId": "string",
- "niceId": "string",
- "type": "string",
- "label": "string",
- "tags": [
- "string"
], - "firmwareVersion": "string",
- "softDeviceVersion": "string",
- "bootLoaderVersion": "string",
- "batteryCapacityMAH": 0,
- "batteryVoltageMV": 0,
- "batteryDescription": "string",
- "storageCapacityKB": 0,
- "storageDescription": "string",
- "active": true,
- "lifecycle": "string",
- "lastUpload": 0,
- "lastDataUpload": 0,
- "latestSensorData": 0,
- "companyId": "string",
- "companyName": "string",
- "containerId": "string",
- "containerName": "string",
- "associatedAt": 0,
- "latestTemperatureExcursion": 0,
- "latestHumidityExcursion": 0,
- "location": "string",
- "containerAssociationTime": 0,
- "containerDisassociationTime": 0,
- "containerPathId": "string"
}
], - "excursions": {
- "shipmentCount": 0,
- "duration": 0,
- "temperature": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}, - "humidity": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}
}
}Update a shipment
| companyId required | any The company ID |
| shipmentId required | any The ID of the shipment to update |
| Authorization required | any Authorization JWT token |
The shipment definition
| name | string The name of this shipment. Can be any string. |
| description | string A description for this shipment. Can be any string. |
| goods | string A description of the contents of this shipment. Can be any string. |
| status | string Enum: "pending" "in-transit" "complete" The current status of this shipment. |
| start | integer <int64> The start time of this shipment. The time is in Unix Timestamp milliseconds. |
| stop | integer <int64> The stop time of this shipment. The time is in Unix Timestamp milliseconds. |
object The identifier (UUID) of the origin waypoint. | |
object The identifier (UUID) of the destination waypoint. | |
object (InsuredValue) | |
Array of objects |
{- "name": "string",
- "description": "string",
- "goods": "string",
- "status": "pending",
- "start": 0,
- "stop": 0,
- "origin": {
- "id": "string"
}, - "destination": {
- "id": "string"
}, - "insuredValue": {
- "value": 0,
- "currency": "USD",
- "units": "cents"
}, - "devices": [
- {
- "deviceId": "string"
}
]
}{- "id": "string",
- "name": "string",
- "description": "string",
- "goods": "string",
- "status": "pending",
- "start": 0,
- "stop": 0,
- "autoGenerated": true,
- "origin": {
- "id": "string"
}, - "destination": {
- "id": "string"
}, - "insuredValue": {
- "value": 0,
- "currency": "USD",
- "units": "cents"
}, - "devices": [
- {
- "id": "string",
- "deviceId": "string",
- "niceId": "string",
- "type": "string",
- "label": "string",
- "tags": [
- "string"
], - "firmwareVersion": "string",
- "softDeviceVersion": "string",
- "bootLoaderVersion": "string",
- "batteryCapacityMAH": 0,
- "batteryVoltageMV": 0,
- "batteryDescription": "string",
- "storageCapacityKB": 0,
- "storageDescription": "string",
- "active": true,
- "lifecycle": "string",
- "lastUpload": 0,
- "lastDataUpload": 0,
- "latestSensorData": 0,
- "companyId": "string",
- "companyName": "string",
- "containerId": "string",
- "containerName": "string",
- "associatedAt": 0,
- "latestTemperatureExcursion": 0,
- "latestHumidityExcursion": 0,
- "location": "string",
- "containerAssociationTime": 0,
- "containerDisassociationTime": 0,
- "containerPathId": "string"
}
], - "excursions": {
- "shipmentCount": 0,
- "duration": 0,
- "temperature": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}, - "humidity": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}
}
}Get a specific shipment and its details
| shipmentId required | any The shipment ID |
| Authorization required | any Authorization JWT token |
{- "id": "string",
- "name": "string",
- "description": "string",
- "goods": "string",
- "status": "pending",
- "start": 0,
- "stop": 0,
- "autoGenerated": true,
- "origin": {
- "id": "string"
}, - "destination": {
- "id": "string"
}, - "insuredValue": {
- "value": 0,
- "currency": "USD",
- "units": "cents"
}, - "devices": [
- {
- "id": "string",
- "deviceId": "string",
- "niceId": "string",
- "type": "string",
- "label": "string",
- "tags": [
- "string"
], - "firmwareVersion": "string",
- "softDeviceVersion": "string",
- "bootLoaderVersion": "string",
- "batteryCapacityMAH": 0,
- "batteryVoltageMV": 0,
- "batteryDescription": "string",
- "storageCapacityKB": 0,
- "storageDescription": "string",
- "active": true,
- "lifecycle": "string",
- "lastUpload": 0,
- "lastDataUpload": 0,
- "latestSensorData": 0,
- "companyId": "string",
- "companyName": "string",
- "containerId": "string",
- "containerName": "string",
- "associatedAt": 0,
- "latestTemperatureExcursion": 0,
- "latestHumidityExcursion": 0,
- "location": "string",
- "containerAssociationTime": 0,
- "containerDisassociationTime": 0,
- "containerPathId": "string"
}
], - "excursions": {
- "shipmentCount": 0,
- "duration": 0,
- "temperature": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}, - "humidity": {
- "duration": 0,
- "shipmentCount": 0,
- "excursionCount": 0
}
}
}Get all waypoints associated with a company
| companyId required | any The ID of the company |
| related | any If 'false' don't include the company's related waypoints |
| Authorization required | any Authorization JWT token |
[- {
- "id": "string",
- "name": "string",
- "timezone": "string",
- "customName": "string",
- "location": {
- "latitude": 0,
- "longitude": 0
}
}
]Create a waypoint
| companyId required | any The ID of the company |
| Authorization required | any Authorization JWT token |
The waypoint definition
| name | string The name of this waypoint. Can be any string. |
| timezone | string The timezone associated with this waypoint. |
| customName | string An alternate name of this waypoint. Can be any string. |
object The location of this waypoint |
{- "name": "string",
- "timezone": "string",
- "customName": "string",
- "location": {
- "latitude": 0,
- "longitude": 0
}
}{- "id": "string",
- "name": "string",
- "timezone": "string",
- "customName": "string",
- "location": {
- "latitude": 0,
- "longitude": 0
}
}Get a specific waypoint and its details.
| companyId required | any The ID of the company |
| waypointId required | any The ID of the waypoint |
| Authorization required | any Authorization JWT token |
{- "id": "string",
- "name": "string",
- "timezone": "string",
- "customName": "string",
- "location": {
- "latitude": 0,
- "longitude": 0
}
}Update a waypoint
| companyId required | any The ID of the company |
| waypointId required | any The ID of the waypoint |
| Authorization required | any Authorization JWT token |
The waypoint definition
| name | string The name of this waypoint. Can be any string. |
| timezone | string The timezone associated with this waypoint. |
| customName | string An alternate name of this waypoint. Can be any string. |
object The location of this waypoint |
{- "name": "string",
- "timezone": "string",
- "customName": "string",
- "location": {
- "latitude": 0,
- "longitude": 0
}
}{- "id": "string",
- "name": "string",
- "timezone": "string",
- "customName": "string",
- "location": {
- "latitude": 0,
- "longitude": 0
}
}Parse a Trek advertisement
| advertisement required | any Advertisement data as a hex string |
| Authorization required | any Authorization JWT token |
{- "deviceId": "string",
- "profileId": "string",
- "ageOfShipmentEnd": {
- "value": 0,
- "units": "string"
}, - "ageOfShipmentStart": {
- "value": 0,
- "units": "string"
}, - "latestTemperature": 0,
- "latestHumidity": 0,
- "dataReady": true,
- "epochUnset": true,
- "button": true,
- "shockEventSeverity": 0,
- "tempUnderSeverity": 0,
- "tempOverSeverity": 0,
- "humidityUnderSeverity": 0,
- "humidityOverSeverity": 0,
- "recordingState": "string",
- "switchTempFailsafeActive": true,
- "selfTestFailed": true,
- "modeSwitch": true,
- "minutesSinceLastRecordingPeriodStarted": 0,
- "minutesSinceLastRecordingPeriodStopped": 0,
- "minutesUntilRecordingStarts": 0,
- "minutesUntilRecordingPeriodStarts": 0,
- "minutesUntilRecordingPeriodStops": 0,
- "minutesSinceCurrentRecordingPeriodStarted": 0,
- "minutesUntilCurrentRecordingPeriodStops": 0
}