Get full job history for specific technician via API

I need to retrieve the complete work order history for a specific technician via the FieldPulse API. Specifically, I am interested in understanding the following:

  1. What is the recommended endpoint and query pattern for filtering work orders by assignee (i.e., assignee_id)? The documentation suggests GET /v1/work_orders?assignee_id={id}, but I am uncertain whether this returns all historical records or only those in non-terminal states.
  2. How does pagination behave when filtering by assignee? I have observed cursor-based pagination in other list endpoints, but I need confirmation on whether the cursor parameter is stable across filter combinations, particularly when the underlying dataset may be receiving concurrent updates.
  3. Is there a mechanism to retrieve associated metadata—e.g., customer details, location coordinates, completion timestamps—without issuing N+1 requests? The documentation mentions an expand parameter, but its supported values are not exhaustively enumerated.
  4. What are the failure modes and edge cases I should account for? Specifically:
    • How does the API handle requests for a technician ID that has been deactivated or reassigned?
    • Is there a maximum lookback period for historical data, and if so, is this configurable per tenant?
    • Are there rate-limiting considerations specific to filtered queries versus unfiltered list requests?

For context, my use case involves generating quarterly performance reports that aggregate job completion metrics per technician. I am less concerned with real-time consistency than with completeness and accuracy of the historical record. I have confirmed that my API key has work_orders:read and technicians:read scopes.

Any clarification on the query parameters, expansion capabilities, and documented constraints would be appreciated. If there are relevant RFCs or specification documents I should consult, please reference them directly.

Parents
  • Confirmed on both points. I have implemented the retrieval pattern and validated completeness against a known data set. The created_at:asc sort with cursor-based pagination is stable as described.

    For the assignee history limitation: my current workaround is to maintain a shadow table populated via webhook events (work_order.assigned, work_order.reassigned), which captures the temporal dimension I need for quarterly reporting. This is acceptable for my use case.

    I will follow up separately regarding the potential beta endpoint Eli mentioned.

Reply
  • Confirmed on both points. I have implemented the retrieval pattern and validated completeness against a known data set. The created_at:asc sort with cursor-based pagination is stable as described.

    For the assignee history limitation: my current workaround is to maintain a shadow table populated via webhook events (work_order.assigned, work_order.reassigned), which captures the temporal dimension I need for quarterly reporting. This is acceptable for my use case.

    I will follow up separately regarding the potential beta endpoint Eli mentioned.

Children
No Data