List member invitations
- Permissions
members:invite,members:read- Pagination
- Cursor, up to 100 per page
- Also available as
fieldtask_list_member_invitations
Returns the invitations for ordinary members of your organization, one page at a time, oldest first by default.
Use it to see who has been invited, whether they've joined, and when pending invitations expire. Invitations created in the FieldTask app are included as well as those created through the API. Invitations for admins aren't shown.
Before you start
- Invitation reads enabled by FieldTask. Where they aren't, this endpoint returns
404 resource_not_found. - An eligible invitation sponsor. Invitation endpoints act on behalf of an organization owner or admin. If that person is no longer an owner or admin, every invitation request returns
403 operation_forbidden. See Invitation authority.
Permissions
| Permission | Dependency in the permission map |
|---|---|
members:invite | Depends on members:read |
members:read | No dependencies |
Reading invitations needs members:invite as well as members:read, because invitations contain the email addresses of people who aren't members yet.
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 an invitation includes
| Field | Meaning |
|---|---|
id | The invitation ID. It isn't a member ID: the person gets a member ID only after they accept. |
email | The address the invitation was sent to, as it was entered. |
role | Always member. Public invitations are only for ordinary members. |
status | pending, accepted, revoked or expired. See below. |
created_at | When the invitation was created, in UTC. |
expires_at | When the invitation link stops working, in UTC. |
The invitation link itself is never returned. It's only in the email the recipient receives.
Invitation status
Status is worked out when you read the invitation:
status | Meaning |
|---|---|
pending | Not accepted yet, and expires_at is in the future. |
accepted | The recipient accepted the invitation and joined as a member. |
revoked | The invitation was withdrawn. Its link no longer works. |
expired | expires_at has passed without the invitation being accepted. |
A pending invitation becomes expired on its own once expires_at passes; nothing else has to happen.
Owners and admins can also cancel a pending invitation in the FieldTask app. A cancelled invitation is removed: it no longer appears in this list, and reading it returns 404 resource_not_found.
Invitations created through the API expire seven days after they're created. Invitations created in the FieldTask app follow the app's own link validity, which can be shorter.
There are no invitation events. To follow an invitation, read it again with Get a member invitation. Once it's accepted, look the person up in List members to get their member ID.
Pagination
page_sizesets the number of invitations per page, from 1 to 100. The default is 25.orderingiscreated_at(oldest 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.
There are no filters, for example by status or email. Filter the pages yourself. 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. Invitations 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 members:read or members:invite. error.code is missing_permission. | Add the permission named in error.message to the connection in Settings → API connections. |
| 403 | operation_forbidden | The connection has no eligible invitation sponsor: the owner or admin it acts for is no longer an owner or admin, or their account is inactive. | A current owner or admin edits the connection's permissions in Settings → API connections, which makes them the sponsor. See Invitation authority. |
| 404 | resource_not_found | Invitation 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 invitation 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. |