Docs
← chronapilot.com v 2026-05-12
API reference · ETA Tracking

ETA Tracking

Live event-day arrival tracking. Ingest location updates, fire webhooks on lateness and arrival.

Aspirational surface. This resource is part of the developer-platform roadmap. The field shapes follow the same conventions as live resources and are stable for prototype integrations.

Endpoints

POST /v1/events/{id}/tracking/start Begin live ETA tracking
POST /v1/events/{id}/tracking/location Push a location update
GET /v1/events/{id}/tracking Current ETA snapshot
POST /v1/events/{id}/tracking/stop Stop tracking

Object shape

The tracking object models a live event-day arrival prediction. ChronaPilot ingests location updates from your client and compares against the original ETA.

FieldTypeDescription
event_idstringReference event.
statusstringnot_started, in_transit, arrived, stalled.
current_locationobjectlat, lng, recorded_at.
predicted_arrivaldatetimeETA at current pace.
minutes_lateintegerNegative if early, positive if late, 0 if on schedule.
confidencestringlow, medium, high.
updated_atdatetimeLast update timestamp.

Start tracking

HTTP
POST /v1/events/{id}/tracking/start

Caller must subsequently push location updates at any cadence ≥ 5s. Webhooks fire on:

  • ETA crosses the event start time (event.late_predicted).
  • User arrives within 50m of the destination (user.arrived).
  • Tracking is stopped (event.tracking_stopped).
Body fieldTypeDescription
start_locationobject?Optional initial position.
idle_timeout_secondsintegerIf no update arrives within this window, status flips to stalled. Default 120.

Push a location update

HTTP
POST /v1/events/{id}/tracking/location
JSON
{
  "lat": 34.052,
  "lng": -118.243,
  "accuracy_m": 8,
  "speed_mps": 12.4,
  "recorded_at": "2026-05-22T13:35:00-07:00"
}

We recommend batching at 5–10s intervals on mobile, ≤ 2s only when stationary thresholds are crossed.

Current tracking snapshot

HTTP
GET /v1/events/{id}/tracking

Stop

HTTP
POST /v1/events/{id}/tracking/stop

Reference implementation

Built on UserLocation ingestion (/src/Preeminent.ChronaPilot.Shared/Models/UserLocation.cs) and the AlertEngine's late-detection loop. The public live-tracking surface is currently in private preview.