Skip to content
Proaction
TelematicsAPI v1
DocumentationDistance traveled

Usage / API reference

Distance traveled

Measure distance accumulated during valid observed odometer intervals.

GET/v1/connections/{id}/vehicles/{vehicleId}/distance

Authentication: Bearer consumer API key with an explicit connection grant.

Preview contract. Availability depends on the deployed release, authorized connection and asset.

How to use this endpoint

  • Returns metric.value in meters, not the lifetime odometer reading. For the lifetime meter, use current readings.
  • Requires a window of at most seven days; inspect coverage and missing/insufficient/partial/complete status.
  • Uses the same counter-gap, reset, source-change and dense-window rules as asset utilization.

Parameters

NameWhereRequiredType and behavior
idpathYesstring
vehicleIdpathYesstring
startTimequeryYesstring

RFC3339 with offset. History: inclusive; counters use only samples within the window. No interpolation.

endTimequeryYesstring

After startTime and no later than now. History: exclusive. Counter summaries permit a boundary sample at endTime.

Request example

bash
curl "$TELEMATICS_ORIGIN/v1/connections/$CONNECTION_ID/vehicles/$VEHICLE_ID/distance?startTime=2026-10-01T00:00:00Z&endTime=2026-10-01T00:20:00Z" \
  --header "Authorization: Bearer $TELEMATICS_CONSUMER_KEY"

Response fields

HTTP 200 returns CounterReport. Fields listed as required are guaranteed by this contract; optional fields may be absent.

FieldTypeRequired
vehicleIdstringYes
windowWindowYes
definitionstringNo
metricCounterYes
limitationsstring[]No

Nested field shapes and constraints are defined in the OpenAPI contract. For latest telemetry values, see normalized units and availability.

Response example

Synthetic values; this is a shape example, not a live customer response.

json
{
  "vehicleId": "asset-001",
  "window": {
    "startTime": "2026-10-01T00:00:00Z",
    "endTime": "2026-10-01T00:20:00Z"
  },
  "definition": "engine_runtime_over_observed_time_v1",
  "metric": {
    "status": "missing",
    "value": null,
    "coverageSeconds": 0,
    "coveragePercent": 0,
    "sampleCount": 0,
    "excludedIntervals": 0,
    "sources": [],
    "intervals": [],
    "unit": "meters"
  },
  "limitations": [
    "Runtime includes idling and PTO; it is not productive work or availability utilization.",
    "Only same-source counter pairs within 30 minutes are counted. Resets, source changes and larger gaps are excluded.",
    "Unobserved time is unknown. No interpolation or backfill is assumed."
  ]
}

Errors and retries

HTTP statusMeaning
400Invalid time window, metric or cursor
401Consumer authentication denied
404Resource missing or connection access denied
413Requested utilization has more than 10,000 readings; narrow the window
503Service or database unavailable

Errors return {"error":"reason_code"}. Honor Retry-After when a 429 includes it. Permission and provider failures never become zero-valued telemetry. Connection health and reading status provide separate signals.

Response schema
{
  "type": "object",
  "properties": {
    "vehicleId": {
      "type": "string"
    },
    "window": {
      "$ref": "#/components/schemas/Window"
    },
    "definition": {
      "type": "string"
    },
    "metric": {
      "$ref": "#/components/schemas/Counter"
    },
    "limitations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "vehicleId",
    "window",
    "metric"
  ]
}

← API overview · Download OpenAPI

Proaction TelematicsOne API for your fleet data.

Search documentation