pointeron
  • Docs
  • API
  • Store
  • Home
  • Docs
  • Store
  • Home
  • Guides

    • Introduction
    • Quickstart
    • SDKs
    • Authentication
    • Pagination
    • Errors
    • Webhooks
  • Resources

    • Organizations
    • Assets
    • Devices
    • Locations
      • The location model
      • List all locationsGET
      • Ingest a locationPOST
      • Retrieve a locationGET
      • Delete a locationDELETE
      • Location history route displayGET
    • Geofences
    • Alerts
    • Webhooks
    • API Keys
    • Data Exports
  • Sign in
PreviousDevices
NextGeofences

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.


GET/v1/locations

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

GET
/v1/locations
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",
      // ..
    }
  ]
}

POST/v1/locations

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

POST
/v1/locations
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
}

GET/v1/locations/:id

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

GET
/v1/locations/SIuAFUNKdSYHZF2w
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/v1/locations/:id

Delete a location

This endpoint allows you to delete location data points. Note: This will permanently delete the location data.

Request

DELETE
/v1/locations/SIuAFUNKdSYHZF2w
curl -X DELETE https://api.pointeron.com/v1/locations/SIuAFUNKdSYHZF2w \
  -H "Authorization: Bearer {token}"

GET/v1/assets/{id}/location-history

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 LineString geometry and properties containing color (hex string) and speed_band (one of stopped, 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_count if the route was simplified.

  • Name
    route_simplified
    Type
    boolean
    Description

    true if 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_stop is true and 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 their start_lat/start_lng and end_lat/end_lng.

Speed bands

BandColorSpeed 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

GET
/v1/assets/5/location-history
{
  "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
  }
}

Was this page helpful?