Developers

Vehicle Location API

Let a broker, shipper or TMS read a carrier's trucks' current location automatically, without phone calls or manual updates. For each truck you get the unit number, VIN, driver, GPS position, the nearest town with distance and direction, the time of the position and the carrier's USDOT number. The API is read-only. Each token only sees the trucks of the carrier that created it.

Base URL

https://api-dev.prologeld.com/api/v1/external

Authorization

Send the token in the Authorization header of every request:

Authorization: Bearer {token}

Ask the carrier for a token. The carrier creates it in the ProLogELD dashboard under Settings → API Access and can revoke it at any time. A revoked token stops working immediately. Limit: 120 requests per minute per token.

GET /vehicles/current

Current location of all the carrier's trucks, sorted by unit number, page by page.

GET/vehicles/current

Query parameters

NameTypeRequiredDefaultDescription
pageIntegerNo0Page number (first page is 0)
sizeIntegerNo10Trucks per page, 1–100

Request sample

curl -X GET "https://api-dev.prologeld.com/api/v1/external/vehicles/current?page=0&size=10" \
  -H "accept: application/json" \
  -H "Authorization: Bearer {token}"

Sample response (HTTP 200)

{
  "result": {
    "code": "ok",
    "description": "ok"
  },
  "content": [
    {
      "vehicle": {
        "id": "6701c2e5f1a4b3c2d1e0f981",
        "make": "Freightliner",
        "model": "Cascadia",
        "vin": "1FUJGLDR3CLBP8834",
        "unit_number": "826"
      },
      "driver": {
        "id": "6701c2e5f1a4b3c2d1e0f912",
        "name": "John Smith"
      },
      "location": {
        "vehicle_coordinates": {
          "latitude": 26.0451,
          "longitude": -80.1172
        },
        "nearby_location_coordinates": {
          "latitude": 26.0523,
          "longitude": -80.1439
        },
        "distance": 1.7,
        "state": "FL",
        "location": "Dania Beach",
        "time": "2026-10-12T14:05:09Z",
        "direction": "e"
      },
      "dot": "1234567"
    },
    {
      "vehicle": {
        "id": "6701c2e5f1a4b3c2d1e0f982",
        "make": "Volvo",
        "model": "VNL 760",
        "vin": "4V4NC9EH5LN223344",
        "unit_number": "827"
      },
      "driver": null,
      "location": null,
      "dot": "1234567"
    }
  ],
  "pageable": {
    "total": 12,
    "prev": null,
    "next": 1,
    "current": 0
  }
}

Sample response (HTTP 401)

{
  "result": {
    "code": "invalid_token",
    "description": "Invalid token"
  },
  "content": null
}

Sample response (HTTP 403)

{
  "result": {
    "code": "forbidden",
    "description": "forbidden"
  },
  "content": null
}

GET /vehicles/{unit_number}

Current location of one truck, by its unit number.

GET/vehicles/{unit_number}

Path parameters

NameTypeRequiredDescription
unit_numberStringYesTruck / unit number, e.g. 826 (not case-sensitive)

Request sample

curl -X GET "https://api-dev.prologeld.com/api/v1/external/vehicles/826" \
  -H "accept: application/json" \
  -H "Authorization: Bearer {token}"

Sample response (HTTP 200)

{
  "result": {
    "code": "ok",
    "description": "ok"
  },
  "content": {
    "vehicle": {
      "id": "6701c2e5f1a4b3c2d1e0f981",
      "make": "Freightliner",
      "model": "Cascadia",
      "vin": "1FUJGLDR3CLBP8834",
      "unit_number": "826"
    },
    "driver": {
      "id": "6701c2e5f1a4b3c2d1e0f912",
      "name": "John Smith"
    },
    "location": {
      "vehicle_coordinates": {
        "latitude": 26.0451,
        "longitude": -80.1172
      },
      "nearby_location_coordinates": {
        "latitude": 26.0523,
        "longitude": -80.1439
      },
      "distance": 1.7,
      "state": "FL",
      "location": "Dania Beach",
      "time": "2026-10-12T14:05:09Z",
      "direction": "e"
    },
    "dot": "1234567"
  }
}

Sample response (HTTP 404)

{
  "result": {
    "code": "not_found",
    "description": "Vehicle not found"
  },
  "content": null
}

Response fields

Every truck in content has the same structure in both endpoints.

FieldTypeDescription
result.codeStringok, or an error code (see Errors)
result.descriptionStringText for the result code
contentArray or ObjectArray of trucks for /vehicles/current; one truck for /vehicles/{unit_number}; null on errors
pageable.totalNumberNumber of trucks in the company
pageable.prevNumber or nullPrevious page number
pageable.nextNumber or nullNext page number
pageable.currentNumberThis page number (first page is 0)
vehicle.idStringProLogELD vehicle ID
vehicle.makeStringMake (vehicle name in ProLogELD)
vehicle.modelStringModel
vehicle.vinStringVIN
vehicle.unit_numberStringTruck / unit number
driverObject or nullDriver assigned to the truck; null when none
driver.idStringProLogELD driver ID
driver.nameStringDriver name
locationObject or nullLast known position; null when the truck has no driver or no GPS yet
location.vehicle_coordinates.latitude / longitudeNumberTruck position (WGS 84)
location.nearby_location_coordinates.latitude / longitudeNumberCenter of the nearest town
location.distanceNumberMiles from that town to the truck
location.stateStringState / province code of that town
location.locationStringName of that town
location.timeStringWhen the position was recorded, UTC, ISO 8601 (2026-10-12T14:05:09Z)
location.directionStringDirection from the town to the truck: n ne e se s sw w nw (empty when in town)
dotStringUSDOT number of the carrier

Errors

Errors have the same shape as a success, with content: null.

HTTPresult.codeWhen
200okSuccess
400bad_requestWrong page or size
401invalid_tokenToken missing, wrong or revoked
403forbiddenThe carrier's account is suspended
404not_foundNo truck with that unit number in this company
429too_many_requestsMore than 120 requests a minute with one token

Notes

  • Positions come from the driver's ELD app and are refreshed about once a minute while the app is online. Check location.time to see how fresh a position is.
  • While a driver uses Personal Conveyance, the position is shared with reduced precision (about 10 km), as required by FMCSA rules.
  • Polling every 1–5 minutes is enough for tracking. Please stay under 120 requests a minute.
  • Keep the token secret, like a password. If it leaks, ask the carrier to revoke it and create a new one.

Need help connecting? Contact ProLogELD support.

Town names and coordinates: GeoNames (geonames.org), CC BY 4.0.