Skip to main content

Temperature Report

Temperature sensor readings from vehicle-mounted hardware. Track cold chain compliance and detect excursions.

GET/apidev/v1/reports/avl/temperature
PermissionAPICLI_RPTAVL_TEMPERATURA
Rate Limit10 req/min (sliding window)
Cache300s (5 min)
Max Range31 days

Overview​

Returns temperature sensor readings from vehicles equipped with onboard temperature monitoring. Critical for cold chain logistics, pharmaceutical transport, and food delivery compliance.

  • Raw readings — individual data points with timestamps
  • Daily aggregation — perday=true for aggregated values per day
  • Subtotals — subtotals=true for summary rows
info

Only vehicles with a temperature sensor configured return meaningful readings. Devices without a sensor report temperature: 0.


Request​

Request Headers​

Every request to a protected endpoint requires these headers:

HeaderRequiredDescription
AuthorizationYesBearer token obtained from the Login endpoint. Format: Bearer <token>
X-API-KeyYesCompany integration key provided during onboarding. Format: gtk_xxx...
tenantYesYour assigned tenant domain (default: geotareas.com) — always send your assigned tenant
Content-TypeConditionalapplication/json — required for POST and PUT requests

Query Parameters​

ParameterTypeRequiredDefaultDescription
startdatestringYes—ISO 8601 start date-time
enddatestringYes—ISO 8601 end date-time. Max range 31 days
devicesstringNoAll visibleComma-separated device IDs. Max 500
perdaybooleanNofalseAggregate readings by day
subtotalsbooleanNofalseInclude subtotal rows
limitintegerNo25Records per page (1–100)
offsetintegerNo0Records to skip
subtotals=true changes how limit behaves

The subtotal and grand-total rows are appended after the page has been cut, and the result is then trimmed back to limit. So with subtotals=true the response still returns at most limit rows, but some of that budget is spent on summary rows — you get fewer detail rows than a plain page of the same size.

Summary rows are not flagged in the payload. You can only recognise them by device_name: a per-device subtotal reads "<device name> (subtotal)" and the grand total reads "Total general". If you are aggregating the data yourself, filter those rows out or you will double-count.

meta.total always counts detail rows only. For a clean paginated read, leave subtotals off and compute your own totals.


Code Examples​

curl -s "https://$TENANT/apidev/v1/reports/avl/temperature?startdate=2026-03-01T00:00:00&enddate=2026-03-15T23:59:59&limit=50&perday=true" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Response Fields​

FieldTypeDescription
device_namestringDisplay name of the vehicle/device
temperaturenumberAverage temperature sensor 1 reading (°C). 0 if the vehicle has no sensor
datetimestring | nullDate of the record. Only populated when perday=true
tip

Temperature values are in degrees Celsius. Convert client-side if needed: F = (C × 9/5) + 32.

Example Response​

{
"success": true,
"data": [
{
"device_name": "Reefer R-401",
"temperature": -2.4,
"datetime": "2026-03-05"
},
{
"device_name": "Reefer R-401",
"temperature": -1.8,
"datetime": "2026-03-06"
}
],
"meta": {
"total": 14,
"limit": 50,
"offset": 0
}
}

Errors​

CodeHTTPDescription
INVALID_DATE_RANGE400Date range exceeds the 31-day maximum, end before start, or non-ISO dates
VALIDATION_ERROR400Invalid params: missing dates
UNAUTHORIZED401Missing, invalid, or expired tenant / Authorization / X-API-Key
FORBIDDEN403User lacks APICLI_RPTAVL_TEMPERATURA permission
RATE_LIMITED429Exceeded 10 req/min
INTERNAL_ERROR500Unexpected server error