Skip to main content
POST
Create Geofence Monitor
Identify the vehicle with vehicle_id if you have it, otherwise vin or the full license plate. Creating a monitor requires an active share agreement granting you vehicle_location access to that vehicle’s fleet.

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

application/json

Geofence monitor create model.

webhook_group_id
string<uuid>
required

The geofence_monitor.* subscription to deliver this monitor's events to. Returned when you create the subscription.

origin
Origin · object
required

Where the journey starts. Departure is detected on leaving this circle.

Example:
destination
Destination · object
required

Where the journey ends. Arriving here is the delivery; the monitor completes once the vehicle leaves destination, so the dwell can be measured.

Example:
starts_at
string<date-time>
required

When the journey is expected to start. Pings before this are ignored, so set it close to dispatch -- a monitor watching a truck still parked in the origin yard will record that as the origin arrival. Must include a UTC offset.

name
string | null

Your own label for this journey, for example a load or BOL number. Echoed on every event.

Maximum string length: 255
vehicle_id
string<uuid> | null

The Catena vehicle identifier.

vin
string | null

Vehicle Identification Number. 17 characters, A-Z excluding I, O and Q, and 0-9.

license_plate_number
string | null

Must be sent together with the region and country.

license_plate_region
string | null

Two letter state or province abbreviation, e.g. 'OH' or 'ON'.

license_plate_country
string | null

Plate country code (ISO-3166-1 alpha-3, e.g., 'USA', 'CAN')

stops
GeofenceMonitorStopCreate · object[]

Planned stops between origin and destination, in travel order. Each one gets its own arrival and departure events.

expires_at
string<date-time> | null

When to stop watching. Must include a UTC offset. Both the default and the maximum are measured from starts_at, not from now, so booking a monitor early does not eat into the journey's window. Defaults to 3 days after starts_at, up to a maximum of 14 days.

Response

Successful Response

Geofence monitor read model

id
string<uuid>
required
webhook_group_id
string<uuid>
required

The geofence_monitor.* subscription this monitor's events are delivered to

fleet_id
string<uuid>
required

The Catena fleet whose vehicle is being watched

vehicle_id
string<uuid>
required

The Catena vehicle being watched

status
enum<string>
required

The monitor's lifecycle status. Non-terminal means still being watched.

Available options:
active,
completed,
expired,
cancelled
current_stop_sequence
integer
required

Which stop is currently being watched

starts_at
string<date-time>
required

Pings before this are ignored.

expires_at
string<date-time>
required

When the watch ends. A monitor still ACTIVE past this is marked EXPIRED.

created_at
string<date-time>
required

When the monitor was created

updated_at
string<date-time>
required

When the monitor last changed, including each stop transition

name
string | null
fleet_ref
string | null

Your own reference for the fleet

vin
string | null
license_plate_number
string | null
license_plate_region
string | null
license_plate_country
string | null
stops
GeofenceMonitorStopRead · object[]

The journey, in travel order

cancelled_at
string<date-time> | null

When the partner cancelled the monitor

completed_at
string<date-time> | null

When the vehicle departed the final stop, ending the watch