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
  • Two corrections to Eli's response:

    • sort=scheduled_date only works for work orders that have a scheduled date. Unscheduled jobs (i.e., backlog items) are excluded from results when this sort is applied. Use created_at for completeness.
    • The pagination.next_cursor field is omitted entirely on the final page, not returned as null. Your code should check for key presence, not truthiness.

    Docs: API reference (note the pagination section was updated June 2025).

Reply
  • Two corrections to Eli's response:

    • sort=scheduled_date only works for work orders that have a scheduled date. Unscheduled jobs (i.e., backlog items) are excluded from results when this sort is applied. Use created_at for completeness.
    • The pagination.next_cursor field is omitted entirely on the final page, not returned as null. Your code should check for key presence, not truthiness.

    Docs: API reference (note the pagination section was updated June 2025).

Children
No Data