Added
New Public API Endpoints for Trips and Carriers
about 4 hours 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.