Skip to main content

Get a member's timesheet totals

GEThttps://api.fieldtask.example/public/v1/timesheets/range
Permissions
members:read, timesheets:read

Returns how long one member worked on each day of a date range, and the total, in seconds.

Give a member ID and a range of 1–31 calendar days. The response has one entry for every day in the range, including days with no recorded time, and a total for the range. Days are calendar days in your organization's time zone.

This is a read-only report. It has no approval status, pay rates or pay amounts, and it covers one member per request; there's no organization-wide total. To see the individual time entries behind the totals, use List timesheet entries.

Before you start​

  • Timesheet reads enabled by FieldTask. Where they aren't, this endpoint returns 404 resource_not_found.
  • The member's ID. Find it with GET /public/v1/members. It's a membership ID, not a user account ID. Only active members can be reported on.

Permissions​

PermissionDependency in the permission map
members:readNo dependencies
timesheets:readDepends on members:read

Request​

Responses​

OK

Response Headers
    Cache-Control

    Responses must not be cached.

    X-Request-ID

    Server-generated request correlation ID.

Query parameters​

All three parameters are required, and no others are accepted.

ParameterWhat to send
member_idThe member ID of an active member, from GET /public/v1/members.
start_dateThe first day to include, as YYYY-MM-DD.
end_dateThe last day to include, as YYYY-MM-DD.

Choosing dates​

  • Both dates are included, and the range must be 1–31 days long. start_date=2026-11-01&end_date=2026-11-30 is 30 days; start_date and end_date on the same day is one day.
  • end_date can't be before start_date. A range that's too long, a reversed range or a date that doesn't exist, such as 2026-02-30, is rejected with 400 invalid_query.
  • Dates are calendar days in your organization's time zone, which the response returns as timezone. If the organization has no time zone set, UTC is used. You can't choose a different time zone.
  • For longer periods, such as a quarter, make one request per period of up to 31 days and add the totals.

For weekly reports, use the organization's own week. The response's week_starts_on is the first day of the week configured for your organization, for example monday. Don't assume weeks start on Sunday. See Dates and times.

Reading the result​

FieldMeaning
memberThe member's id and current display_name.
start_date, end_dateThe range you asked for.
timezoneThe time zone that defines each day, as an IANA name such as America/New_York.
week_starts_onThe organization's first day of the week.
duration_unitAlways seconds.
daysOne entry per day from start_date to end_date, in date order. Each has a date and a duration in seconds.
total_durationThe sum of the duration values in days.

A duration of 0 means no time was recorded for that day. To show hours, divide by 3,600: 30600 seconds is 8.5 hours.

If FieldTask can't compute the report, you get 503 temporarily_unavailable. A successful response is never a partial report, and an error is never reported as zero hours. Retry with backoff.

Totals or entries?​

Use this endpoint whenever you need worked time. Don't add up the entries from List timesheet entries instead. Entries keep their full start and end times, even where they extend beyond the range, so their sum can differ from this report.

Errors​

StatuscodeMeaningWhat to do
400invalid_queryA parameter is missing, repeated or unknown, a date isn't a valid YYYY-MM-DD date, end_date is before start_date, or the range is longer than 31 days.Send member_id, start_date and end_date once each, for a range of 1–31 days.
401invalid_tokenThe bearer token is missing, malformed, expired, revoked or issued for a different resource (for example an MCP sign-in).Send a current REST API token or REST OAuth access token as Authorization: Bearer ….
403api_access_not_enabledFieldTask hasn't enabled API access for this organization, or has disabled it.An owner or admin requests access in Settings → API connections.
403insufficient_scopeThe connection lacks timesheets:read or members:read. error.code is missing_permission.Add the permission named in error.message to the connection in Settings → API connections.
404resource_not_foundmember_id isn't the ID of an active member of your organization (for example a user account ID, or a removed member), or timesheet reads aren't enabled in this environment.Look the person up with GET /public/v1/members and use their id.
405method_not_allowedThis path doesn't accept the HTTP method, or the create isn't enabled in this environment. The Allow header lists the methods that are.Use a method listed in Allow.
429rate_limit_exceededToo many requests in the current minute, or too many concurrent requests, for the organization or connection.Wait for Retry-After seconds, then retry.
429daily_quota_exceededThe organization or connection has used its daily allowance for this kind of request. Allowances reset at 00:00 UTC.Wait for Retry-After seconds, or check remaining allowance in Settings → API connections.
503temporarily_unavailableFieldTask couldn't compute the report. No partial or zero result is returned in its place.Retry with exponential backoff.