Skip to main content
POST
Record an asset's current telemetry
Records an asset’s position together with the readings taken at the same moment — speed, heading, odometer, fuel level, and ambient temperature. If you only have a position and an odometer, use Record asset location instead. Everything else on this page behaves identically to that endpoint.
This endpoint requires the visibility:create scope. See Authentication.
assetId is the Alvys id of a driver, truck, or trailer — the Id returned by the drivers, trucks, and trailers endpoints. It is not a unit number.

Ordering and duplicate readings

Positions are ordered per asset by RecordedAt. A reading older than, or equal to, the one already held for this source is discarded and answered 409 Conflict.
A 409 is a normal out-of-order outcome, not a failure. Do not retry it — resending the same reading will keep answering 409. Send the next reading instead.

Endpoint

Request Parameters

Request Body

Pass TripId when you know it. On an asset running more than one active trip — a team, drop-and-hook, or multi-stop asset — Alvys otherwise picks the trip with the nearest stop, and the tracking update, ETA, and customer tracking page follow that choice.
The request body is limited to 8 KB. Send one reading per request.

Example Request Body

Example CURL request

Response Fields

Example Response

201 Created

Status Codes

A 409 carries the error type https://api.alvys.com/errors/Conflict/StaleLocation and reports the RecordedAt of the position currently held, so you can tell how far behind your feed is.

Rate Limits

All endpoints are subject to rate limits to protect the API from traffic spikes. See Rate Limits.

Authorizations

Authorization
string
header
required

OAuth 2.0 client-credentials access token. Obtain one from https://auth.alvys.com/oauth/token (grant_type=client_credentials, audience=https://api.alvys.com/public/), then paste it here. The playground sends it as Authorization: Bearer <token>.

Path Parameters

assetId
string
required
version
string
default:1.0
required

API version (e.g., 1.0)

Example:

"1.0"

Body

Coordinates
object | null
RecordedAt
string<date-time> | null
Address
object | null
TripId
string | null
Speed
number<double> | null
Heading
number<double> | null
Odometer
number<double> | null
OdometerReadingAt
string<date-time> | null
FuelPercent
number<double> | null
AmbientTemperature
object | null

Response

Created

AssetId
string
required
AssetType
string
required
Source
string
required
Coordinates
object
required
RecordedAt
string<date-time>
required
ReceivedAt
string<date-time>
required
Address
object | null
FormattedAddress
string | null
TripId
string | null
TripNumber
string | null
Speed
number<double> | null
Heading
number<double> | null
Odometer
number<double> | null
OdometerReadingAt
string<date-time> | null
FuelPercent
number<double> | null
AmbientTemperature
object | null