Skip to main content

Members

Manage team members and their roles.

Access levels

Membership roles are integers passed as accessLevel:

LevelRole
1Member
2Member Plus
3Designer
4Data Wizard
5Publisher
6Admin

GET /api/teams/{id}/members

Get all team members.

Response:

A paginated HAL collection under _embedded["inf:member"], each membership embedding its user. aggs.all is the total member count.

List team membersGET /api/teams/order-desk/members
A paginated HAL collection of memberships, each embedding its user. aggs.all is the total member count.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk/members?limit=10&start=0"
}
},
"start": 0,
"count": 1,
"total": 1,
"aggs": {
"all": 1
},
"_embedded": {
"inf:member": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk/members/annie.larson"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"userId": "annie.larson",
"teamId": "order-desk",
"accessLevel": 4,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme",
"_embedded": {
"inf:user": {
"_links": {
"self": {
"href": "https://informer.example.com/api/users/annie.larson"
},
"inf:memberships": {
"href": "https://informer.example.com/api/users/annie.larson/memberships"
},
"inf:avatar-upload": {
"href": "https://informer.example.com/api/users/annie.larson/_upload/{uploadId}/avatar-upload",
"templated": true
},
"inf:password": {
"href": "https://informer.example.com/api/users/annie.larson/password"
},
"inf:feed": {
"href": "https://informer.example.com/api/users/annie.larson/feed"
},
"inf:viewed-feed": {
"href": "https://informer.example.com/api/users/annie.larson/_markFeedViewed"
},
"inf:superuser": {
"href": "https://informer.example.com/api/users/annie.larson/superuser"
}
},
"permissions": {
"changeDomain": true,
"changeProfile": true,
"changePassword": true,
"delete": true,
"edit": true,
"reassign": true,
"superuser": true,
"enable": true,
"changeTheme": true,
"lock": true,
"setGlobalPermissions": true,
"manageLogin": true
},
"domain": "local",
"username": "annie.larson",
"displayName": "annie.larson",
"familyName": null,
"givenName": null,
"middleName": null,
"email": "annie.larson@example.com",
"data": null,
"superuser": false,
"timezone": "America/New_York",
"settings": {
"log": {
"log": false,
"info": false,
"warn": false,
"debug": false,
"error": true,
"remote": false
}
},
"enabled": true,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"tenant": "acme",
"globalPermissions": {
"ai": false,
"jobCreation": false,
"viewAllTeams": false,
"viewAllUsers": false,
"painlessScriptCreation": false
},
"userFields": {},
"locked": false,
"lockedAt": null,
"loginAttempts": 0,
"passwordSetAt": "2026-01-15T16:20:00.000Z",
"passwordExpiresAt": "2026-01-15T16:20:00.000Z",
"forgotPasswordRequestTime": null,
"mfa": null,
"mfaConfig": {},
"aiMessage": null,
"aiConsent": false,
"hasSharedDatasources": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"memberships": [
{
"id": "00000000-0000-4000-8000-000000000001",
"userId": "annie.larson",
"teamId": "order-desk",
"accessLevel": 4,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme"
}
],
"initials": "AN",
"colorIndex": 4,
"avatarColor": {
"background": "#81C784",
"text": "#1B5E20"
},
"managesPassword": true
}
}
}
]
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

GET /api/teams/{id}/members/{username}

Get a specific member: the membership row (its accessLevel) with the embedded user.

Get a single memberGET /api/teams/order-desk/members/annie.larson
The membership row (accessLevel) with its embedded user.
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk/members/annie.larson"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"userId": "annie.larson",
"teamId": "order-desk",
"accessLevel": 4,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"tenant": "acme",
"_embedded": {
"inf:user": {
"_links": {
"self": {
"href": "https://informer.example.com/api/users/annie.larson"
},
"inf:memberships": {
"href": "https://informer.example.com/api/users/annie.larson/memberships"
},
"inf:avatar-upload": {
"href": "https://informer.example.com/api/users/annie.larson/_upload/{uploadId}/avatar-upload",
"templated": true
},
"inf:password": {
"href": "https://informer.example.com/api/users/annie.larson/password"
},
"inf:feed": {
"href": "https://informer.example.com/api/users/annie.larson/feed"
},
"inf:viewed-feed": {
"href": "https://informer.example.com/api/users/annie.larson/_markFeedViewed"
},
"inf:superuser": {
"href": "https://informer.example.com/api/users/annie.larson/superuser"
}
},
"permissions": {
"changeDomain": true,
"changeProfile": true,
"changePassword": true,
"delete": true,
"edit": true,
"reassign": true,
"superuser": true,
"enable": true,
"changeTheme": true,
"lock": true,
"setGlobalPermissions": true,
"manageLogin": true
},
"domain": "local",
"username": "annie.larson",
"displayName": "annie.larson",
"familyName": null,
"givenName": null,
"middleName": null,
"email": "annie.larson@example.com",
"data": null,
"superuser": false,
"timezone": "America/New_York",
"settings": {
"log": {
"log": false,
"info": false,
"warn": false,
"debug": false,
"error": true,
"remote": false
}
},
"enabled": true,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"tenant": "acme",
"globalPermissions": {
"ai": false,
"jobCreation": false,
"viewAllTeams": false,
"viewAllUsers": false,
"painlessScriptCreation": false
},
"userFields": {},
"locked": false,
"lockedAt": null,
"loginAttempts": 0,
"passwordSetAt": "2026-01-15T16:20:00.000Z",
"passwordExpiresAt": "2026-01-15T16:20:00.000Z",
"forgotPasswordRequestTime": null,
"mfa": null,
"mfaConfig": {},
"aiMessage": null,
"aiConsent": false,
"hasSharedDatasources": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"initials": "AN",
"colorIndex": 4,
"avatarColor": {
"background": "#81C784",
"text": "#1B5E20"
},
"managesPassword": true
}
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

PUT /api/teams/{id}/members/{username}

Add or update a team member. Upserts the membership at the given access level.

Permissions: Team add-member (Admin)

Request Body:

FieldTypeRequiredDescription
accessLevelintegerYesRole level 1–6 (see table above)
Add or update a team memberPUT /api/teams/order-desk/members/annie.larson
Upserts the membership at the given accessLevel (1 Member … 6 Admin). Returns the membership with its embedded user.
Request body
{
"accessLevel": 4
}
Response · 200
{
"_links": {
"self": {
"href": "https://informer.example.com/api/teams/order-desk/members/annie.larson"
}
},
"id": "00000000-0000-4000-8000-000000000001",
"tenant": "acme",
"teamId": "order-desk",
"userId": "annie.larson",
"accessLevel": 4,
"updatedAt": "2026-01-15T16:20:00.000Z",
"createdAt": "2026-01-15T16:20:00.000Z",
"_altid": null,
"_embedded": {
"inf:user": {
"_links": {
"self": {
"href": "https://informer.example.com/api/users/annie.larson"
}
},
"permissions": {
"changeDomain": true,
"changeProfile": true,
"changePassword": true,
"delete": true,
"edit": true,
"reassign": true,
"superuser": true,
"enable": true,
"changeTheme": true,
"lock": true,
"setGlobalPermissions": true,
"manageLogin": true
},
"domain": "local",
"username": "annie.larson",
"displayName": "annie.larson",
"familyName": null,
"givenName": null,
"middleName": null,
"email": "annie.larson@example.com",
"data": null,
"superuser": false,
"timezone": "America/New_York",
"settings": {
"log": {
"log": false,
"info": false,
"warn": false,
"debug": false,
"error": true,
"remote": false
}
},
"enabled": true,
"source": null,
"sourceId": null,
"lastViewedFeed": null,
"tenant": "acme",
"globalPermissions": {
"ai": false,
"jobCreation": false,
"viewAllTeams": false,
"viewAllUsers": false,
"painlessScriptCreation": false
},
"userFields": {},
"locked": false,
"lockedAt": null,
"loginAttempts": 0,
"passwordSetAt": "2026-01-15T16:20:00.000Z",
"passwordExpiresAt": "2026-01-15T16:20:00.000Z",
"forgotPasswordRequestTime": null,
"mfa": null,
"mfaConfig": {},
"aiMessage": null,
"aiConsent": false,
"hasSharedDatasources": false,
"createdAt": "2026-01-15T16:20:00.000Z",
"updatedAt": "2026-01-15T16:20:00.000Z",
"_changes": null,
"teams": []
}
}
}
Captured from the API examples test suite; ids and timestamps are normalized.

DELETE /api/teams/{id}/members/{username}

Remove a member from the team. The user account itself is unaffected.

Permissions: Team remove-member (Admin)

Response:

Responds 200 on success.

Remove a team memberDELETE /api/teams/order-desk/members/annie.larson
Deletes the membership. The user account itself is unaffected.
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.

PATCH /api/memberships

Bulk-edit memberships across teams in one request, as a JSON Patch document.

Request Body:

A JSON Patch array. Each path is /{teamId}/{username}; value is the access level.

opEffect
addGrant membership at value
replaceChange the member's access level to value
removeRevoke membership

Each operation is permission-checked independently (a forbidden op fails the whole request).

Bulk-edit membershipsPATCH /api/memberships
A JSON Patch document. Each path is /{teamId}/{username}; value is the access level. op add grants, replace changes the level, remove revokes. Each op is permission-checked independently.
Request body
[
{
"op": "add",
"path": "/order-desk/evan.cho",
"value": 1
}
]
Response · 200 · no body
Captured from the API examples test suite; ids and timestamps are normalized.

Use Case:

Efficiently apply multiple membership changes in one transaction.