PureTrack provides a simple API endpoint to insert JSON data. To use this you'll need to be issued an insert key for your application. Contact Us to obtain a key.
Make it easier for your users to send safety tracking data to PureTrack without having to use a separate app.
The API is used to insert new data, so your app needs to keep track of what you've already sent to PureTrack.
Multiple trackers and/or location points can be sent in one call, so you can buffer multiple points into a single HTTP request. This reduces the number of requests, and reducing device power by not transmitting data as frequently. For example, you could record locations every 5 seconds, but send to the server every minute.
Once you get your app sending data to PureTrack:
Contact us when ready.
Sending a DeviceID is critical with each call. This is how PureTrack identifies who the data is from.
A user can link multiple data sources to feed into the one PureTrack 'map marker'. To do this they will need to know their DeviceID that you send from your app.
DeviceID guidelines:
POST https://puretrack.io/api/insert
Example call, one tracker only.
{
"rego": "ZK-ABC",
"label": "asdf",
"key": "{YOUR_KEY_GOES_HERE}",
"type": 9,
"deviceID": "1234",
"username": "timbo",
"points": [
{
"ts": 1713563621,
"lat": -41.2334745,
"lng": 174.348365,
"alt": 345.1,
"speed": 25,
"course": 270,
"vspeed": 5.3
},
{
"ts": 1713563624,
"lat": -41.1634343,
"lng": 174.36545,
"alt": 335.1,
"speed": 28,
"course": 240,
"vspeed": 5.1
},
{
"ts": 1713563629,
"lat": -41.194343,
"lng": 174.38545,
"alt": 325.1,
"speed": 29,
"course": 190,
"vspeed": 5.0
}
]
}
Example call, with one or more trackers. Note the array of items. The key needs to be repeated for each tracker, and is the same for each.
[{
"rego": "ZK-ABC",
"label": "Sam ABC",
"key": "{YOUR_KEY_GOES_HERE}",
"type": 9,
"deviceID": "1234",
"username": "sambo",
"points": [
{
"ts": 1713563621,
"lat": -41.2334745,
"lng": 174.348365,
"alt": 345.1,
"speed": 25,
"course": 270,
"vspeed": 5.3
},
{
"ts": 1713563624,
"lat": -41.1634343,
"lng": 174.36545,
"alt": 335.1,
"speed": 28,
"course": 240,
"vspeed": 5.1
}
]
},
{
"rego": "ZK-XYZ",
"label": "Jimbo XYZ",
"key": "{YOUR_KEY_GOES_HERE}",
"type": 9,
"deviceID": "4567",
"username": "jimbo",
"points": [
{
"ts": 1713563621,
"lat": -41.2334745,
"lng": 174.348365,
"alt": 345.1,
"speed": 25,
"course": 270,
"vspeed": 5.3
},
{
"ts": 1713563624,
"lat": -41.1634343,
"lng": 174.36545,
"alt": 335.1,
"speed": 28,
"course": 240,
"vspeed": 5.1
}
]
}]
{
"trackers_received": 2,
"total_points_recieved": 6,
"total_points_inserted": 5,
"time": 29.019832611083984,
"success": true,
"http_code": 200
}
If some points weren't valid, e.g. missing data, the points inserted will be fewer than the points recieved.
This is designed so a user can send to PureTrack from your app without configuring anything at the PureTrack end, but if they want to merge their data with other sources they can.
There are two fields you can send: 'rego' and 'label'.
The rego field should only be used for aircraft with a registration i.e. for gliding or powered aircraft.
If you're app is primarily for paragliding or any other activity, you should probably only show the 'label'.
If your app is for both, you might need to let the user choose one or the other. Or as mentioned above, a registration can be inserted into the label field using the 'a:' prefix.