Skip to main content
Trips represent longer “actions” during which a vehicle is in motion, typically starting with an ignition on or engine start event and ending with an ignition off or engine stop event. If no ignition data is available, the c.technology system can automatically detect trips based on movement and speed thresholds. Trips are segmented into shorter sections called “triplegs” based on changes in speed, or other significant events. Together with vehicle actions, trips make up the logbook of a vehicle.

Trip structure

A trip is structured as follows:
{
    "id": "trip_01k5bb7jgdfbmvj20fjz261p75",  // Unique trip ID in TypeID format.
    "vehicle_id": "veh_01jnk61e5pf6zs5ag6483xqe43",  // The vehicle the trip is associated with.
    "timestamp_start": "2025-09-17T07:36:52.078000+0000",  // Start time of the trip.
    "timestamp_end": "2025-09-17T12:21:49.566000+0000",  // End time of the trip.
    "completed": false,  // Indicates if the trip has been completed (ended with ignition off).
    "deleted": false,
    "valid": true,
    "validation_score": 0.9795778132487861,  // Confidence score of the trip's validity (0.0 to 1.0).
    "name": null,  // Optional user-supplied name for the trip.
    "driver": null,
    "notes": null,
    "fuel_manual_lt": null,
    "image_rect_url": "...",  // URL to a rectangular image representing the trip (e.g. map snapshot).
    "speed_max": 16,
    "speed_avg": 8.704024183580822,
    "distance_tot": 19456.237482334018,
    "distance_tot_gps": 19456.237482334018,
    "distance_tot_can": null,
    "distance_tot_odo": 0,
    "duration_tot": 7505.23,
    "duration_cruising": 7016.248999999999,
    "fuel_start_level_pct": null,
    "fuel_start_level_lt": null,
    "fuel_most_recent_pct": null,
    "fuel_most_recent_vlt": null,
    "fuel_used_pct": null,
    "fuel_used_lt": 0,
    "fuel_num_refueled": null,
    "fuel_refueled_pct": null,
    "fuel_refueled_lt": null,
    "fuel_avg_lt_per_100km": null,
    "battery_start_level_volt": 13.539857142857143,
    "battery_end_level_volt": 13.345333333333334,
    "start_energy_available_ah": null,
    "end_energy_available_ah": null,
    "continuous_energy_consumption_ah": null,
    "start_energy_available_wh": null,
    "end_energy_available_wh": null,
    "continuous_energy_consumption_wh": null,
    "start_energy_available_pct": null,
    "end_energy_available_pct": null,
    "continuous_energy_consumption_pct": null,
    "n2k_operation_hours_tot": 7380,
    "can_fuel_consumption_avg": null,
    "can_fuel_consumption_max": null,
    "can_fuel_consumption_tot": null,
    "can_rpm_max": null,
    "can_rpm_avg": null,
    "visibility": "PRIVATE"
}
A trip may be classified as “invalid” if it was detected via automatic GPS data analysis, but does not meet certain criteria (e.g. minimum distance or duration, or contains many GPS outliers). The path of a trip can be retrieved by querying the associated triplegs:
curl -X GET https://api.ctechnology.io/api/v2.2/trip/{trip_id}/path?fields=timestamp,latitude,longitude,altitude,speed&simplify=true \
-H "Authorization: Token {access_token}"
Adding &simplify=true will reduce the number of points in the path while maintaining its overall shape, which is useful for visualization.
I