Added
New Public API Endpoints for Trips and Carriers
29 days ago
We've added Public API support for assigning carriers to trips, dispatching trips, searching trips by assigned equipment, updating carrier status, and reading carrier contacts — so partners can run more of the dispatch and carrier workflow programmatically.
What's New
- Assign a carrier to a trip — assign a carrier, and optionally a driver, truck, and trailer, to a trip.
- Dispatch a trip — dispatch a covered trip so dispatch can be triggered from your own workflow.
- Filter trips by driver, truck, or trailer — narrow trip search to a specific driver or piece of equipment.
- Update a carrier's status — set a carrier's status (e.g. Active, Do Not Load) to keep records in sync with your compliance and vetting systems.
- Carrier contacts in the carrier response — read carrier contact details without extra calls.
What Changes
- All changes are additive and backward compatible.
- The new trip filters (
driverId,truckId,trailerId) are optional. Each is valid on its own or alongside existing search parameters;driverIdmatches primary, secondary, and owner-operator assignments. - Carrier responses now include a
Contactscollection (name, email, phone, mobile, title, and a primary-contact flag) on both the get-by-id and search responses. - Assigning a carrier requires
carrierIdanddispatcherId;driver2Idcannot be sent withoutdriver1Id. Assets are referenced by id — resolve them via their search endpoints first. - Dispatch requires the trip to be Covered (carrier and assets assigned); otherwise the request is rejected.
- Updating carrier status supports optimistic concurrency via the
If-Matchheader and returns a freshETagfor the next update.
Endpoints Affected
POST /p/v1.0/trips/{tripId}/assign(new) — assign a carrier and optional assets; returns the updated trip.POST /p/v1.0/trips/{tripId}/dispatch(new) — dispatch a covered trip; returns the updated trip.POST /p/v1.0/trips/search(updated) — now acceptsdriverId,truckId, andtrailerIdfilters.PATCH /p/v1.0/carriers/{carrierId}/status(new) — update a carrier's status; returns204 No Contentwith a freshETag.GET /p/v1.0/carriers/{id}andPOST /p/v1.0/carriers/search(updated) — responses now includeContacts.