Members

List people in the workspace.

type chooses who is included:

  • member — workspace members. This is the default.
  • guest — board guests.
  • libraryMember — people who belong to a library and are not workspace members.

email without type searches every type. email with type searches only that type. An unknown email is { "data": [], "total": 0 }, not 404.

firstJoinedAt is the first time that person joined, not the latest. A member who leaves and rejoins keeps the original value. It is the stored Postgres timestamp text, not an ISO 8601 string like other timestamps in this API: a space between date and time, up to 6 fraction digits with trailing zeros dropped, and a UTC offset (currently +00). 2024-03-01 12:00:00.123456+00, 2024-03-01 12:00:00.12+00, and 2024-03-01 12:00:00+00 are all possible. Don't parse a fixed width.

id is the account id. It is the same id as author.id on a comment written by a workspace account, and the same id as mentions[].id on a comment and mentions[].accountId when writing one.

Any workspace member can list every type. Board guests and library-only members cannot call this route.

members.read is its own scope. workspace.read does not grant it.

get/v1/members

Request

  • Base URL
    api.air.inc (relative, and the document’s source URL is not known)
  • Auth
    • API key in header x-api-key and API key in header x-air-workspace-id
    • or HTTP bearer and API key in header x-air-workspace-id
  • TypeScript
    A function with typed inputs. Its response is checked against the schema.

Query parameters

type'member' | 'guest' | 'libraryMember'

member, guest, or libraryMember. Defaults to member. With email and no type, every type is searched.

emailstring

Exact email lookup. Without type, every type is searched. With type, only that type is searched. An unknown email is an empty list, not 404. Cannot be combined with search.

searchstring

Name or email search, 1 to 100 characters. Cannot be combined with email.

limitstring

Page size. Default 50, maximum 100.

cursorstring

Cursor from the previous page. Filters sent again must match the cursor. Omitted filters stay the ones the cursor was issued with.

Response

Members listed

totalinteger required

Example response

{
  "data": [
    {
      "firstJoinedAt": "2024-03-01 12:00:00.123456+00"
    }
  ]
}

Changes