Locations
Locations are the core data type in Pointeron — they represent individual GPS data points recorded by your tracking devices. On this page, we'll dive into the different location endpoints you can use to manage location data programmatically. We'll look at how to query, ingest, and delete location data.
The location model
The location model contains all the information about the GPS data points recorded by your tracking devices, including coordinates, speed, heading, and accuracy.
Properties
- Name
id- Type
- string
- Description
Unique identifier for the location data point.
- Name
asset_id- Type
- string
- Description
Unique identifier for the asset this location belongs to.
- Name
device- Type
- object
- Description
The device object for the device that recorded this location.
- Name
latitude- Type
- float
- Description
The latitude coordinate.
- Name
longitude- Type
- float
- Description
The longitude coordinate.
- Name
altitude- Type
- float
- Description
The altitude in meters above sea level.
- Name
speed- Type
- float
- Description
The speed in km/h at the time of recording.
- Name
heading- Type
- integer
- Description
The heading in degrees (0-360).
- Name
accuracy- Type
- float
- Description
The GPS accuracy in meters.
- Name
recorded_at- Type
- timestamp
- Description
Timestamp of when the location was recorded by the device.
- Name
created_at- Type
- timestamp
- Description
Timestamp of when the location was ingested by Pointeron.
List all locations
This endpoint allows you to retrieve a paginated list of all location data points (for an asset if an asset id is provided). By default, a maximum of ten locations are shown per page.
Optional attributes
- Name
asset_id- Type
- string
- Description
Limit to locations from a given asset.
- Name
limit- Type
- integer
- Description
Limit the number of locations returned.
Request
curl -G https://api.pointeron.com/v1/locations \
-H "Authorization: Bearer {token}" \
-d asset_id=WAz8eIbvDR60rouK \
-d limit=10
Response
{
"has_more": false,
"data": [
{
"id": "SIuAFUNKdSYHZF2w",
"asset_id": "WAz8eIbvDR60rouK",
"device": {
"id": "xgQQXg3hrtjh7AvZ",
"name": "Fleet Tracker 01",
"identifier": "GT06-ABC123",
"last_active_at": 705103200,
"created_at": 692233200
},
"latitude": 46.0569,
"longitude": 14.5058,
"altitude": 295.0,
"speed": 45.2,
"heading": 180,
"accuracy": 5.0,
"recorded_at": 705103200,
"created_at": 705103200
},
{
"id": "hSIhXBhNe8X1d8Et",
// ..
}
]
}
Ingest a location
This endpoint allows you to ingest a new location data point for one of your assets.
Required attributes
- Name
asset_id- Type
- string
- Description
Unique identifier for the asset this location belongs to.
- Name
latitude- Type
- float
- Description
The latitude coordinate.
- Name
longitude- Type
- float
- Description
The longitude coordinate.
Optional attributes
- Name
altitude- Type
- float
- Description
The altitude in meters above sea level.
- Name
speed- Type
- float
- Description
The speed in km/h at the time of recording.
- Name
heading- Type
- integer
- Description
The heading in degrees (0-360).
- Name
accuracy- Type
- float
- Description
The GPS accuracy in meters.
- Name
recorded_at- Type
- timestamp
- Description
Timestamp of when the location was recorded by the device.
Request
curl https://api.pointeron.com/v1/locations \
-H "Authorization: Bearer {token}" \
-d asset_id="WAz8eIbvDR60rouK" \
-d latitude=46.0569 \
-d longitude=14.5058
Response
{
"id": "gWqY86BMFRiH5o11",
"asset_id": "WAz8eIbvDR60rouK",
"device": {
"id": "xgQQXg3hrtjh7AvZ",
"name": "Fleet Tracker 01",
"identifier": "GT06-ABC123",
"last_active_at": 705103200,
"created_at": 692233200
},
"latitude": 46.0569,
"longitude": 14.5058,
"altitude": null,
"speed": null,
"heading": null,
"accuracy": null,
"recorded_at": 705103200,
"created_at": 705103200
}
Retrieve a location
This endpoint allows you to retrieve a location data point by providing the location id. Refer to the list at the top of this page to see which properties are included with location objects.
Request
curl https://api.pointeron.com/v1/locations/SIuAFUNKdSYHZF2w \
-H "Authorization: Bearer {token}"
Response
{
"id": "SIuAFUNKdSYHZF2w",
"asset_id": "WAz8eIbvDR60rouK",
"device": {
"id": "xgQQXg3hrtjh7AvZ",
"name": "Fleet Tracker 01",
"identifier": "GT06-ABC123",
"last_active_at": 705103200,
"created_at": 692233200
},
"latitude": 46.0569,
"longitude": 14.5058,
"altitude": 295.0,
"speed": 45.2,
"heading": 180,
"accuracy": 5.0,
"recorded_at": 705103200,
"created_at": 705103200
}
Delete a location
This endpoint allows you to delete location data points. Note: This will permanently delete the location data.
Request
curl -X DELETE https://api.pointeron.com/v1/locations/SIuAFUNKdSYHZF2w \
-H "Authorization: Bearer {token}"
Location history route display
When you request location history for an asset, the response includes pre-computed route display data alongside the raw location points. This allows you to render speed-colored routes on a map without processing thousands of points client-side.
Additional response fields
- Name
route_features- Type
- array
- Description
An array of GeoJSON Feature objects, each with a
LineStringgeometry and properties containingcolor(hex string) andspeed_band(one ofstopped,moving,moderate,speeding). Render these directly as map layers for a speed-colored route.
- Name
route_display_count- Type
- integer
- Description
The number of points used to build the route display. May be less than
returned_countif the route was simplified.
- Name
route_simplified- Type
- boolean
- Description
trueif the server downsampled the route for performance. Speed-band transition points are always preserved during simplification.
- Name
history[].stop_center_lat- Type
- float | null
- Description
Dwell-cluster center latitude, present on every point. Non-null only when
is_stopistrueand the point belongs to a qualified dwell — render parked points and markers at this canonical coordinate instead of the raw jittered fix.
- Name
history[].stop_center_lng- Type
- float | null
- Description
Dwell-cluster center longitude. Pairs with
stop_center_lat. Parked (parked_stop) events carry the same coordinate as theirstart_lat/start_lngandend_lat/end_lng.
Speed bands
| Band | Color | Speed range |
|---|---|---|
stopped | #6b7280 (gray) | Under 5 km/h |
moving | #22c55e (green) | 5 – 50 km/h |
moderate | #3b82f6 (blue) | 50 – 80 km/h |
speeding | #ef4444 (red) | Over 80 km/h |
Response
{
"success": true,
"data": {
"history": [
{
"lat": 46.0569,
"lng": 14.5058,
"recorded_at": "2026-04-10T08:30:00Z",
"speed": 0,
"speed_band": "stopped",
"is_stop": true,
"stop_center_lat": 46.056912,
"stop_center_lng": 14.505793
}
],
"returned_count": 842,
"total_count": 842,
"limit": 5000,
"truncated": false,
"band_counts": {
"stopped": 120,
"moving": 580,
"moderate": 130,
"speeding": 12
},
"route_features": [
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[14.5058, 46.0569],
[14.5062, 46.0571]
]
},
"properties": {
"color": "#6b7280",
"speed_band": "stopped"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[14.5062, 46.0571],
[14.5108, 46.0612],
[14.5145, 46.0634]
]
},
"properties": {
"color": "#22c55e",
"speed_band": "moving"
}
}
],
"route_display_count": 350,
"route_simplified": true
}
}