associatedServiceCalls (with lastServiceCall as a shortcut), and the Buyer API adds three read endpoints that expand a single call with richer evidence.
All examples assume:
What a service call contains
From the embedded objects on a work order you get, per call:leadTechnicianEmail and additionalTechnicianEmails, numberOfTechs, serviceScheduledAt, and the check-in/check-out pairs (checkInTime, checkInNotes, checkInImages, checkInGeoLocation, and the checkOut* equivalents). Geo coordinates and photos let you verify the technician was actually on site.
The expansion endpoints
Each/with_* path segment hoists one extra section into the response. Combine them by chaining segments:
{id} is the service call id, which you read off the work order’s associatedServiceCalls.
Work logs and true work time
with_work_logs returns the WrenchMode event trail recorded during the visit (work started, paused, resumed, ended) together with trueWorkTimeMillis: the on-site work duration with pauses excluded. This is the number to use for labor verification, since raw check-in to check-out spans include breaks and interruptions.
Technician details and rate visibility
with_tech_details returns the technicians on the call as contact records. hourlyRate is populated only when the call was performed by your own internal service team. Third-party supplier rates are never exposed to buyers, so expect hourlyRate to be absent on contractor visits.
Verification pattern
Before approving a completed work order or its invoice:- Fetch the work order and read
associatedServiceCalls. - For each call, request
/with_work_logs/with_tech_details. - Check
checkInGeoLocationagainst the location, comparetrueWorkTimeMillisagainst invoiced labor hours, and review check-out notes and images. - Approve via the work order status actions or dispute via
work_unsatisfactory, citing what you found in the note.
404 for an unknown call, 400 for a call outside your scope.