Example prompts
You do not have to learn tool names — that is the agent's job. These prompts show what a question sounds like, which tools the agent will reach for, and the plan that first grants them. All of them work against the sandbox fleet with a public test key.
The prompts are illustrative. Say it the way you would say it to a colleague — "anything odd with the vans this week?" works as well as the tidy versions below.
Fleet status — from the free plan
| Ask | Tools |
|---|---|
| How many vehicles are offline right now, and for how long? | list_devices, fleet_summary (disconnectedHours) |
| Which firmware version is each dashcam on? | list_devices, get_device |
| What's the battery state on Van 07? | get_device |
| List the vehicles that are parked but still online. | list_devices |
get_device reports the firmware version a dashcam is running; whether an
update is available is not in the MCP surface (REST
GET /v1/devices/{psn}/firmware), and neither are device settings or SD-card
health. The agent is told to say so instead of guessing.
Safety review — from Starter
| Ask | Tools |
|---|---|
| Which vehicles braked hard yesterday? | list_events |
| Were there any impacts while parked over the weekend? | list_events |
| Where did we break the posted speed limit this week? | list_events (type speed_limit) |
| How does this month's harsh-acceleration count compare to last month, per vehicle? | safety_event_stats |
"Riskiest vehicles" is a ranking question, not an event-list question: the
agent reaches for driving_report (Standard plan) rather than
safety_event_stats, because the report ranks vehicles over a period from the
dashcam's own detection counters — see the row in
Reports and video below. list_events and
safety_event_stats count uploaded recordings, which is a different, narrower
population.
A plain "how many harsh-braking events did we have yesterday?" therefore has
two honest answers, and they can be orders of magnitude apart. A well-behaved
agent says which one it counted — "11 uploaded recordings" or "N detections
reported by the dashcams" — and offers the other, or asks which you meant. What
it must not do is add up a driving_report ranking page and call that the
fleet total: the ranking stops at limit rows.
Trips and locations — from Starter
| Ask | Tools |
|---|---|
| Where is every vehicle right now? | fleet_locations |
| Where is Truck 114 right now? | list_devices, fleet_locations (one psn) |
| Draw me last Tuesday's route for Truck 114. | list_trips, trip_track |
| How many trips did Van 07 make this week, and how long were they? | list_trips |
| Was Sedan 01 anywhere near the depot at 14:00 yesterday? | list_trips, trip_track |
Reports and video — from Standard
| Ask | Tools |
|---|---|
| Give me a fleet summary for today. | fleet_summary |
| Write a driving report for Truck 114 for yesterday. | driving_report |
| Rank the fleet by driving score for the last 7 days. | driving_report |
| Show me the top 3 vehicles for risky driving this week. | driving_report (ranking mode, sorted by events) |
| Which vehicle drove the most kilometres last week? | driving_report (ranking mode — the top limit vehicles by distance, zero-activity ones included) |
| Get me the front-camera clip for the 14:07 harsh-braking event. | list_events, get_event_video (6 MB of transfer_bytes) |
| Show me yesterday's parking impacts with pictures. | list_events with includeThumbnails — a still image per event (first 25 of a call), no quota; the links last 5 minutes |
Geofences — from Pro
| Ask | Tools |
|---|---|
| Which vehicles left the North yard after 18:00 this week? | geofence_alerts (filtered on geofenceName; list_geofences first only if the name is ambiguous) |
| Create a 300 m geofence around the airport depot. | asks you for the center coordinates → create_geofence → approval → confirm_action |
| Delete the old "Test zone" geofence. | list_geofences, delete_geofence → approval → confirm_action |
SD-card footage — from Pro
| Ask | Tools |
|---|---|
| What recordings are still on Van 07's SD card from yesterday afternoon? | list_sd_recordings |
| Show me the thumbnail and G-sensor trace for the 14:07 recording. | get_sd_recording_metadata |
| Let me watch the 14:07 clip from Van 07. | play_sd_recording — runs directly (sub-stream only, uses the vehicle's mobile data); returns a playable link plus the jobId behind it |
| Recall the 14:07 clip from Van 07 in full resolution — the insurer needs it. | recall_sd_recording → approval → confirm_action, then get_recall_job |
| How far along is that upload? Cancel it if it's under 20%. | get_recall_job, cancel_recall_job → approval |
Recalls use the vehicle's mobile data, which is why the agent asks before
starting one and why progress is visible while it runs. Two details shape how
these prompts behave: dates on the SD card are the dashcam's own local
calendar days, not UTC, so "yesterday afternoon" needs no timezone
gymnastics; and get_sd_recording_metadata is free of mobile data, so a
well-behaved agent confirms it has the right clip there before spending an
upload on it.
Account and usage — Starter / Enterprise
| Ask | Tools | From plan |
|---|---|---|
| How much of this month's API quota have we used? | api_usage | starter |
| Which webhook subscriptions are active, and are any failing? | list_webhooks | pro |
| Who issued or revoked API keys this month? | audit_logs | enterprise |
Multi-step questions
The agent chains tools on its own. One question can become several calls:
"Which vehicle had the worst harsh-braking event yesterday, where was it, and is there a clip?"
list_events(types=[harsh_braking], from=…, to=…) → 37 events, worst on 7XBPK0BE00000001
list_trips(psn=7XBPK0BE00000001, from=…, to=…) → the drive containing 14:07:22 → trip_9f21
trip_track(tripId=trip_9f21) → 4,182 GPS points, sampled to 100
get_event_video(eventId=evt_8831, channel=front) → presigned URL (6 MB of transfer_bytes allowance)
Note the second step: a tripId only ever comes from list_trips. The agent
is instructed never to assemble one from an event, and the same rule holds for
psn, eventId and jobId — identifiers are carried between tools, never
invented.
Each call is still one API request against your monthly allowance — see Limits.
What an agent will not do
- Change anything on a vehicle without the approval gate.
- Invent an identifier or a coordinate. When a name matches no vehicle or zone, several trips fit, or only a street address is known, it asks you — rather than guessing, and rather than declaring the request impossible.
- See another company's fleet — tenant isolation is per key.
- Reach a scope your plan does not grant — it gets a permission error and tells you.