List members
- Permission
members:read- Pagination
- Cursor, up to 100 per page
- Also available as
fieldtask_list_members
Returns the active members of your organization, one page at a time, in the order their memberships were created.
Use it to find the member ID you need to assign someone to a job or to read their timesheets. Lists show current data, so a member who joins or leaves while you page through may or may not appear.
Permissions
| Permission | Dependency in the permission map |
|---|---|
members:read | No dependencies |
Member roster reads must be enabled by FieldTask. Where they aren't, this endpoint returns 404 resource_not_found.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 405
- 429
- 503
OK
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Bad Request
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Unauthorized
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Forbidden
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Not Found
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Method Not Allowed
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
Too Many Requests
Response Headers
Responses must not be cached.
Seconds before retry; present on 429 and an in-progress operation.
Server-generated request correlation ID.
Service Unavailable
Response Headers
Responses must not be cached.
Server-generated request correlation ID.
What a member includes
A member is a person's membership in your organization. The API returns a deliberately small set of fields:
| Field | Meaning |
|---|---|
id | The member ID: the ID of this person's membership in your organization. |
display_name | The person's first and last name, separated by a space. |
designation | The job title set for the member in FieldTask, up to 100 characters, or null. |
status | Always active. See Who is listed. |
revision | A number that goes up when the member changes. Present only where FieldTask has enabled change tracking for members. |
Members don't include email addresses, roles, permissions or user account IDs. To see who has been invited but hasn't joined yet, use List member invitations.
Member IDs aren't user IDs
id identifies a person's membership in this organization, not their FieldTask user account. Use it wherever the API asks for a member:
assignee_member_idswhen you create a job;member_idwhen you read timesheet totals or timesheet entries.
The same ID appears as assignee_member_ids and assignees[].member_id on jobs. The API never accepts a user account ID in its place.
Who is listed
Only current, active members are returned. A person who has been removed from the organization, or whose account is deactivated, no longer appears, and Get a member returns 404 for their ID. That's why status is always active.
To match a person by name, compare display_name. Names aren't unique: if more than one member matches, ask the user which one they mean rather than picking one.
To keep a copy of the roster up to date without listing it repeatedly, use member events. See Event types and Webhooks or polling?.
Pagination
page_sizesets the number of members per page, from 1 to 100. The default is 25.orderingiscreated_at(oldest membership first, the default) or-created_at(newest first).- When
page.has_moreistrue, requestpage.next_page_urlwith the sameAuthorizationheader. It keeps your page size and ordering. It'snullon the last page. - If you build URLs yourself, pass
page.next_cursorascursorand keep every other parameter unchanged. Cursors expire within 24 hours and only work with the query and connection that produced them.
This endpoint has no filters. See Pagination.
Errors
| Status | code | Meaning | What to do |
|---|---|---|---|
| 400 | invalid_query | The query string has a parameter other than cursor, page_size or ordering, repeats one, or has an invalid value. Members can't be filtered. | Send only cursor, page_size and ordering, each at most once. |
| 400 | invalid_cursor | The cursor is malformed, was changed, or belongs to a different query, connection or page size. | Use next_page_url or the cursor exactly as returned, with the same query. To change the query, start again without a cursor. |
| 401 | invalid_token | The 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 …. |
| 403 | api_access_not_enabled | FieldTask hasn't enabled API access for this organization, or has disabled it. | An owner or admin requests access in Settings → API connections. |
| 403 | insufficient_scope | The connection lacks a permission this request needs. error.code is missing_permission. | Add the permission named in error.message to the connection. |
| 404 | resource_not_found | Member roster reads aren't enabled in this environment, or the URL is wrong. | Check the API origin and path (no trailing slash). Contact FieldTask if you expected member reads to be available. |
| 405 | method_not_allowed | This 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. |
| 429 | rate_limit_exceeded | Too many requests in the current minute, or too many concurrent requests, for the organization or connection. | Wait for Retry-After seconds, then retry. |
| 429 | daily_quota_exceeded | The 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. |
| 503 | temporarily_unavailable | The service couldn't complete the request. | Retry with exponential backoff. Retry creates with the same key and body. |