---
title: "Members API Reference"
description: "Endpoints for managing members in Linkbreakers. These endpoints allow you to invite, retrieve, update, and delete members."
canonical: "https://linkbreakers.com/help/api/members"
---

# Members

Endpoints for managing members in Linkbreakers. These endpoints allow you to invite, retrieve, update, and delete members.

## Members

## [#](#members-object)The Member object

Describes a teammate invited into a workspace, including their role, login metadata, and last-known activity so Linkbreakers can enforce access policies and audit collaboration.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

Example object

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.263Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.263Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.263Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.263Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.263Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

GET

`/v1/member`

Requires auth

## [#](#get-the-current-member)Get the current member

Return the member information associated with the authenticated caller. Requires the \`members:read\` scope.

### [#](#get-the-current-member-parameters)Parameters

This endpoint does not accept any parameters.

### [#](#get-the-current-member-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#get-the-current-member-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X GET "https://api.linkbreakers.com/v1/member" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.261Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.261Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.261Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.261Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.261Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

GET

`/v1/members`

Requires auth

## [#](#list-members)List members

Retrieve a paginated list of members in the current workspace. Requires the \`members:read\` scope.

### [#](#list-members-parameters)Parameters

#### query parameters

pageSize

integer (int64)

query

Maximum number of members to return. Defaults to 100, capped at 1000.

pageToken

string

query

Cursor from a previous response's next\_page\_token. Empty starts at the first page. Pages are ordered by (created\_at, id), which never change, so a record cannot move between pages while a client is walking them.

cursor

string

query

Opaque cursor from the previous page's nextPageToken. Same as pageToken; when both are sent, pageToken wins.

### [#](#list-members-response)Response

200

Everything worked as expected.

members

array<object>

Members included in the current page

nextPageToken

string

Cursor to continue listing members. Empty on the last page.

totalCount

integer (int64)

How many members exist in total, so a client can tell a complete answer from a page of one. A local-first client reads absence from this list as the member having been removed, and may only do so when the count it was given matches what it received.

### [#](#list-members-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X GET "https://api.linkbreakers.com/v1/members?pageSize={pageSize}&pageToken={pageToken}&cursor={cursor}" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{
  "members": [
    {
      "accessRevokedAt": "2026-10-25T09:20:07.261Z",
      "accessToken": "lbw_1w8jp9longjwtvalue",
      "createdAt": "2026-10-25T09:20:07.261Z",
      "displayLanguage": "en-US",
      "email": "sam.member@example.com",
      "emailVerifiedAt": "2026-10-25T09:20:07.261Z",
      "firstName": "Sam",
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "lastKnownCountry": "US",
      "lastKnownIp": "203.0.113.42",
      "lastKnownLanguage": "en-US,en;q=0.9",
      "lastKnownTimezone": "Europe/London",
      "lastName": "Rivera",
      "lastSigninAt": "2026-10-25T09:20:07.261Z",
      "role": "ROLE_ADMIN",
      "updatedAt": "2026-10-25T09:20:07.261Z",
      "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
    }
  ],
  "nextPageToken": "string",
  "totalCount": 0
}
```

Base URL: `https://api.linkbreakers.com`

GET

`/v1/members/{id}`

Requires auth

## [#](#get-a-member-by-id)Get a member by ID

Fetch a single workspace member by the provided identifier. Requires the \`members:read\` scope.

### [#](#get-a-member-by-id-parameters)Parameters

#### path parameters

id

string

Required

path

Member identifier (UUID) to retrieve

### [#](#get-a-member-by-id-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#get-a-member-by-id-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X GET "https://api.linkbreakers.com/v1/members/{id}" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.261Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.261Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.261Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.261Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.261Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

GET

`/v1/myself/workspaces`

Requires auth

## [#](#list-my-workspaces)List my workspaces

Return every workspace the signed-in person belongs to, with their role, when they last used it and whether it is the one the token acts in. An API token sees only its own workspace. Requires the \`members:read\` scope.

### [#](#list-my-workspaces-parameters)Parameters

This endpoint does not accept any parameters.

### [#](#list-my-workspaces-response)Response

200

Everything worked as expected.

workspaces

array<object>

The caller's workspaces, the most recently used first. An API token sees only its own workspace.

### [#](#list-my-workspaces-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X GET "https://api.linkbreakers.com/v1/myself/workspaces" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{
  "workspaces": [
    {
      "current": false,
      "enforceMfa": false,
      "lastSigninAt": "2026-10-25T09:20:07.262Z",
      "memberId": "123e4567-e89b-12d3-a456-426614174000",
      "role": "ROLE_ADMIN",
      "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0",
      "workspaceName": "string"
    }
  ]
}
```

Base URL: `https://api.linkbreakers.com`

POST

`/v1/members/{id}/allow`

Requires auth

## [#](#allow-access-for-a-member)Allow access for a member

Restore workspace access for a previously suspended member. Requires the \`members:write\` scope.

### [#](#allow-access-for-a-member-parameters)Parameters

#### path parameters

id

string

Required

path

Member identifier (UUID) whose access should be restored

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#allow-access-for-a-member-request)Request body

No structured schema available for this section.

### [#](#allow-access-for-a-member-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#allow-access-for-a-member-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X POST "https://api.linkbreakers.com/v1/members/{id}/allow" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{}'
```

Sample payload (application/json)

```json
{}
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.261Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.261Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.261Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.261Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.261Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

POST

`/v1/members/{id}/revoke`

Requires auth

## [#](#revoke-access-for-a-member)Revoke access for a member

Suspend a member's access without removing their account. Requires the \`members:write\` scope.

### [#](#revoke-access-for-a-member-parameters)Parameters

#### path parameters

id

string

Required

path

Member identifier (UUID) whose access should be suspended

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#revoke-access-for-a-member-request)Request body

No structured schema available for this section.

### [#](#revoke-access-for-a-member-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#revoke-access-for-a-member-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X POST "https://api.linkbreakers.com/v1/members/{id}/revoke" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{}'
```

Sample payload (application/json)

```json
{}
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.262Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.262Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.262Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.262Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.262Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

POST

`/v1/members/{id}/signout`

Requires auth

## [#](#force-a-member-to-sign-out)Force a member to sign out

Terminate all active sessions for the specified member. Requires the \`members:write\` scope.

### [#](#force-a-member-to-sign-out-parameters)Parameters

#### path parameters

id

string

Required

path

Member identifier (UUID) to sign out of all sessions

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#force-a-member-to-sign-out-request)Request body

No structured schema available for this section.

### [#](#force-a-member-to-sign-out-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#force-a-member-to-sign-out-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X POST "https://api.linkbreakers.com/v1/members/{id}/signout" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{}'
```

Sample payload (application/json)

```json
{}
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.262Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.262Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.262Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.262Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.262Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

POST

`/v1/members/invite`

Requires auth

## [#](#invite-a-new-member)Invite a new member

Create a pending member and dispatch an invitation email. A person who already has a Linkbreakers account is added to the workspace right away and told by email; inviting someone already in the workspace fails with MEMBER\_ALREADY\_IN\_WORKSPACE. Requires the \`members:write\` scope.

### [#](#invite-a-new-member-parameters)Parameters

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#invite-a-new-member-request)Request body

email

string

Email address of the invitee

firstName

string

First name used in invitation email and dashboard

lastName

string

Last name used in invitation email and dashboard

### [#](#invite-a-new-member-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#invite-a-new-member-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X POST "https://api.linkbreakers.com/v1/members/invite" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{"email":"string","firstName":"string","lastName":"string"}'
```

Sample payload (application/json)

```json
{
  "email": "string",
  "firstName": "string",
  "lastName": "string"
}
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.261Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.261Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.261Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.261Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.261Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

POST

`/v1/myself/workspaces/{workspaceId}:switch`

Requires auth

## [#](#switch-workspace)Switch workspace

Issue an access token for another workspace the signed-in person belongs to. Needs a dashboard session or a full-access token of a member; a workspace token or a token limited to scopes is refused. When the workspace enforces MFA, the first call emails a code and answers MFA\_REQUIRED; repeat it with mfa\_code. Requires the \`members:write\` scope.

### [#](#switch-workspace-parameters)Parameters

#### path parameters

workspaceId

string

Required

path

Workspace to switch to (UUID). The caller must be a member of it.

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#switch-workspace-request)Request body

mfaCode

string

One-time code, when the workspace enforces MFA. Call once without it to have the code emailed (the call answers MFA\_REQUIRED), then again with it.

### [#](#switch-workspace-response)Response

200

Everything worked as expected.

accessToken

string

Access token for the new workspace. The previous token keeps working for its own workspace until it is signed out.

member

object

Describes a teammate invited into a workspace, including their role, login metadata, and last-known activity so Linkbreakers can enforce access policies and audit collaboration.

memberId

string

The person's member record in the new workspace (UUID)

workspaceId

string

The workspace switched to (UUID)

### [#](#switch-workspace-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X POST "https://api.linkbreakers.com/v1/myself/workspaces/{workspaceId}:switch" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{"mfaCode":"string"}'
```

Sample payload (application/json)

```json
{
  "mfaCode": "string"
}
```

Typical response

```json
{
  "accessToken": "string",
  "member": {
    "accessRevokedAt": "2026-10-25T09:20:07.263Z",
    "accessToken": "lbw_1w8jp9longjwtvalue",
    "createdAt": "2026-10-25T09:20:07.263Z",
    "displayLanguage": "en-US",
    "email": "sam.member@example.com",
    "emailVerifiedAt": "2026-10-25T09:20:07.263Z",
    "firstName": "Sam",
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "lastKnownCountry": "US",
    "lastKnownIp": "203.0.113.42",
    "lastKnownLanguage": "en-US,en;q=0.9",
    "lastKnownTimezone": "Europe/London",
    "lastName": "Rivera",
    "lastSigninAt": "2026-10-25T09:20:07.263Z",
    "role": "ROLE_ADMIN",
    "updatedAt": "2026-10-25T09:20:07.263Z",
    "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
  },
  "memberId": "string",
  "workspaceId": "string"
}
```

Base URL: `https://api.linkbreakers.com`

PUT

`/v1/member`

Requires auth

## [#](#update-the-current-member)Update the current member

Let the signed-in member update their own profile or credentials. Requires the \`members:write\` scope.

### [#](#update-the-current-member-parameters)Parameters

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#update-the-current-member-request)Request body

email

string

New email address for the signed-in member

firstName

string

First name to display in the product

lastName

string

Last name to display in the product

password

string

Optional password update for the signed-in member

### [#](#update-the-current-member-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#update-the-current-member-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X PUT "https://api.linkbreakers.com/v1/member" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{"email":"string","firstName":"string","lastName":"string","password":"string"}'
```

Sample payload (application/json)

```json
{
  "email": "string",
  "firstName": "string",
  "lastName": "string",
  "password": "string"
}
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.261Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.261Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.261Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.261Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.261Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

PUT

`/v1/members/{id}`

Requires auth

## [#](#update-a-member)Update a member

Modify profile details or role assignments for an existing member. Requires the \`members:write\` scope.

### [#](#update-a-member-parameters)Parameters

#### path parameters

id

string

Required

path

Member identifier (UUID) to update

#### header parameters

Idempotency-Key

string

header

Makes retrying this request safe. See components.parameters.IdempotencyKey.

### [#](#update-a-member-request)Request body

displayLanguage

string

Preferred language for product copy and emails

email

string

Email address used for login and notifications

firstName

string

First name to display in the product

lastName

string

Last name to display in the product

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

### [#](#update-a-member-response)Response

200

Everything worked as expected.

accessRevokedAt

string (date-time)

When the member's access was revoked (null means active)

accessToken

string

Access token issued during sign-in; returned to clients but not persisted on the member record

createdAt

string (date-time)

Timestamp when the member was created

displayLanguage

string

Preferred language for emails and product copy (BCP-47)

email

string

Email address used as the member's login identifier

emailVerifiedAt

string (date-time)

When the member confirmed ownership of their email address (null means unverified)

firstName

string

Member's given name used in UI surfaces and emails

id

string

Unique identifier for the member record (UUID)

lastKnownCountry

string

Country inferred from geolocation during the most recent sign-in (ISO 3166-1 alpha-2)

lastKnownIp

string

IP address seen on the most recent sign-in

lastKnownLanguage

string

Browser language header captured during the most recent sign-in

lastKnownTimezone

string

Timezone reported during the most recent sign-in (IANA TZ database)

lastName

string

Member's family name used in UI surfaces and emails

lastSigninAt

string (date-time)

Last time the member successfully authenticated

role

string (enum)

Role enumerates the built-in permission tiers that control what teammates can manage inside a workspace.

##### Allowed values

`ROLE_UNSPECIFIED`

Role not specified (defaults to viewer permissions)

`ROLE_VIEWER`

`ROLE_ADMIN`

`ROLE_TECH`

updatedAt

string (date-time)

Timestamp when member metadata was last updated

workspaceId

string

Workspace the member belongs to (UUID)

### [#](#update-a-member-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X PUT "https://api.linkbreakers.com/v1/members/{id}" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Idempotency-Key: string" \
  -H "Content-Type: application/json" \
  --data '{"displayLanguage":"string","email":"string","firstName":"string","lastName":"string","role":"ROLE_TECH"}'
```

Sample payload (application/json)

```json
{
  "displayLanguage": "string",
  "email": "string",
  "firstName": "string",
  "lastName": "string",
  "role": "ROLE_TECH"
}
```

Typical response

```json
{
  "accessRevokedAt": "2026-10-25T09:20:07.261Z",
  "accessToken": "lbw_1w8jp9longjwtvalue",
  "createdAt": "2026-10-25T09:20:07.261Z",
  "displayLanguage": "en-US",
  "email": "sam.member@example.com",
  "emailVerifiedAt": "2026-10-25T09:20:07.261Z",
  "firstName": "Sam",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "lastKnownCountry": "US",
  "lastKnownIp": "203.0.113.42",
  "lastKnownLanguage": "en-US,en;q=0.9",
  "lastKnownTimezone": "Europe/London",
  "lastName": "Rivera",
  "lastSigninAt": "2026-10-25T09:20:07.261Z",
  "role": "ROLE_ADMIN",
  "updatedAt": "2026-10-25T09:20:07.261Z",
  "workspaceId": "c0d3cafe-5b1e-4d42-a6fd-0c5f5c3962d0"
}
```

Base URL: `https://api.linkbreakers.com`

DELETE

`/v1/members/{id}`

Requires auth

## [#](#delete-a-member)Delete a member

Permanently remove a member from the workspace roster. Requires the \`members:write\` scope.

### [#](#delete-a-member-parameters)Parameters

#### path parameters

id

string

Required

path

Member identifier (UUID) to delete

### [#](#delete-a-member-response)Response

200

Everything worked as expected.

No structured schema available for this section.

### [#](#delete-a-member-error)Error response

400-599

All endpoints may return an unexpected error payload when a request cannot be processed.

error

object

Required

Wrapped error response.

Example request (cURL)

```bash
curl -X DELETE "https://api.linkbreakers.com/v1/members/{id}" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

Typical response

```json
{}
```

Base URL: `https://api.linkbreakers.com`

---

Source: https://linkbreakers.com/help/api/members
