Skip to content

Member

Query and manage members of your organization, including inviting new users and removing existing ones.

Allowed query parameters

Filters

FilterTypeDescription
searchStringFull-text search

Sorting

name, created_at, position, department

Includes

user.media, supervisor.user.media

Retrieve a member

get
/member/{id}

Example response

json
// HTTP 200 OK
{
	"id": 123,
	"role": {
		"id": 1454,
		"name": "admin",
		"guard_name": "web",
		"created_at": "2022-05-19T09:35:09.000000Z",
		"updated_at": "2022-05-19T09:35:09.000000Z"
	},
	"name": "Alice Cooper",
	"user": {
		"id": 20,
		"firstname": "Alice",
		"lastname": "Cooper",
		"fullName": "Alice Cooper",
		"email": "alice.cooper@acme.com",
		"department": null,
		"description": null,
		"avatar": {
			"uuid": "40614a32-bdf8-41a5-808b-7bfec98eaef2",
			"name": "logo-only.png",
			"description": null,
			"mime_type": "image/png",
			"collection": "avatar",
			"url": "http://localhost:8000/image/40614a32-bdf8-41a5-808b-7bfec98eaef2/logo-only.png?fit=crop&h=100&w=100&signature=e6e65b38e9a91d58e428fa9007d98218a29abdd9d81fa514c1bfda364a348989"
		},
		"gravatar_url": "https://www.gravatar.com/avatar/8d3879333b5e88863ddbad18be8749bf?s=100&d=identicon&r=g"
	},
	"work_quota": 40
}

List members

get
/member

The list endpoint accepts the same parameters as in Retrieve a member and returns a paginated array of the same member object in the data property.

Read more about Pagination, Filtering, Sorting and Includes on the Introduction page.

Roles

When inviting a user, you may assign them one of the following roles:

RoleDescription
memberDefault role. General-purpose access for employees of the organization.
managerExtended permissions over projects, sales documents and team management.
coordinatorCoordinator-level access focused on project and team coordination.
accountingAccess to bookkeeping, journal transactions, VAT, banking and other accounting-related resources.
auditorRead-only audit access. Auditor memberships expire automatically after 14 days.
adminFull administrative access to the organization.

If no role is provided when inviting a user, member is used.

Auditor expiration

Invitations accepted with the auditor role automatically grant temporary membership that expires 14 days after acceptance.

Invite a user

post
/organization/{organization}/invite

Creates an invitation for the given email address and sends a notification or email with the invitation link. If an invitation already exists for the same email in this organization, it is reused and re-sent (the last_sent_at timestamp is updated).

Path parameters

ParameterTypeRequiredDescription
organizationIntegerYesThe ID of the inviting organization

Request body

Attribute (* required)TypeDescription
email *StringThe email address to invite. Must be a valid email.
roleStringThe role to assign to the invitee. Defaults to member. See Roles for values.

Permissions

The authenticated user must be a member of the target organization, have a verified email address, and hold the invite_users permission.

Restrictions

  • You cannot invite yourself unless you are a superuser.
  • You cannot invite a user who is already an active member of the organization.
  • Inviting a previously removed user is allowed and will re-activate their membership when they accept.

Example request

json
{
    "email": "bob.dylan@acme.com",
    "role": "member"
}

Example response

Returns the updated Organization object with the invitations relationship loaded.

json
// HTTP 200 OK
{
    "id": 124,
    "name": "Acme Inc",
    "slug": "acme-inc",
    // ...other organization fields
    "invitations": [
        {
            "id": "3f7c8b1a-2e4d-4a9b-9f1c-8d5e6a7b4c3f",
            "email": "bob.dylan@acme.com",
            "role": "member",
            "token": "h4Yr8qJ1xKmNvP6sT2zLwBcDeFgHiJkLmNoPqRsT",
            "user": null,
            "organization": {
                // Simplified organization object
            },
            "last_sent_at": "2024-06-12T08:15:42.000000Z"
        }
    ]
}

Cancel a pending invitation

delete
/invitation/{invitation}

Deletes a pending invitation that has not yet been accepted. Use this to revoke an invitation you sent by mistake.

Path parameters

ParameterTypeRequiredDescription
invitationStringYesThe invitation's UUID id

Example response

Returns the updated Organization object with the remaining invitations loaded.

json
// HTTP 200 OK
{
    "id": 124,
    "name": "Acme Inc",
    // ...other organization fields
    "invitations": []
}

Remove a member from an organization

get
/organization/{organization}/uninvite/{user}

Removes an existing member from the organization. The user is soft-removed from the organization's pivot table and is no longer able to access organization data. If the removed user's current organization was the one they were removed from, their current organization is reset.

Path parameters

ParameterTypeRequiredDescription
organizationIntegerYesThe ID of the organization
userIntegerYesThe ID of the user to remove

Permissions

  • The organization owner may remove any member except themselves.
  • Other members must hold the uninvite_users permission.
  • The organization owner cannot be removed.
  • Users with the admin role cannot be removed by non-owners.

Example response

Returns the updated Organization object with the remaining users and invitations loaded.

json
// HTTP 200 OK
{
    "id": 124,
    "name": "Acme Inc",
    // ...other organization fields
    "users": [
        // Remaining user objects
    ],
    "invitations": []
}