Skip to content
Documentation/OPEN API

Teams & members

Query team information, members, departments, and groups.

Last updated

Team APIs

Get team information

Endpoint: /org-info

Method: GET

Request parameters:

Request example:

bash
curl --location --request GET 'https://open.musedam.ai/api/muse/org-info' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json'

Response:

json
{
"code": "0",
"message": "OK",
"result": {
"id": 185,
"name": "Example team",
"orgNo": "M000001",
"orgFeeType": 4
},
"traceId": "17555160673301652392"
}

Get team credit balance

Endpoint: /org-point-info

Method: GET

Description: Get the remaining credit balance of the team associated with the API Key.

Request parameters: None. The API Key identifies the team; no team ID is required.

Response fields:

FieldTypeDescription
resultDoubleRemaining team credits; a numeric value that may include decimals

Example request:

bash
curl --location --request GET 'https://open.musedam.ai/api/muse/org-point-info' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json'

Example response (illustrative balance):

json
{
"code": "0",
"message": "OK",
"result": 1250.5,
"traceId": "example-trace-id"
}

Read result directly to obtain the remaining credits.

Get team member information

Endpoint: /org-member-info

Method: POST

Request parameters:

text
{
"userId": "1765276754630496256"
}

Request example:

bash
curl --location --request POST 'https://open.musedam.ai/api/muse/org-member-info' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"userId": "1765276754630496256"
}'

Response:

json
{
"code": "0",
"message": "OK",
"result": {
"userId": "1765276754630496256",
"realName": "xxx",
"nickName": "xxxx",
"avatarUrl": "https://example.com/avatar.png",
"roleCode": "admin",
"departmentIds": [
0,
200
],
"groupIds": [
20,
22
]
},
"traceId": "17561978534182325498"
}

Query team members

Endpoint: /org-members-query

Method: POST

Description: Query members of the current team with pagination and optional keyword, department, and status filters.

Request parameters:

FieldTypeRequiredDescription
keywordStringNoSearch name, nickname, pinyin, email, or phone number
pageIntegerNoPage number; defaults to 1
pageSizeIntegerNoPage size; defaults to 10
accountStatusEnumListList<String>NoMember status filter: PendingActivation, normal, or resigned
departmentIdLongNoFilter by department
needChildMemberBooleanNoInclude members of subdepartments; defaults to false
needUserUseMemorySizeBooleanNoReturn members' used storage; defaults to false
addTypeIntegerNoImport source: 0 manual, 1 Feishu
isSaleIntegerNoSales staff: 0 no, 1 yes

Response structure:

FieldTypeDescription
recordsList<Object>Members; see the table below
totalLongTotal records
currentLongCurrent page number
sizeLongPage size

records[] fields:

FieldTypeDescription
userIdLongUser ID
nickNameStringNickname
realNameStringFull name
avatarUrlStringAvatar URL
roleNameStringRole name
roleCodeStringRole code
roleIdLongRole ID
orgRoleVOObjectEnterprise role information; see below. May be empty for non-enterprise accounts
departmentListList<Object>Departments; see below
jobTitleStringJob title
phoneStringPhone number
emailStringWork email
accountStatusEnumStringAccount status, such as PendingActivation, normal, or resigned
joinTimeDateDate joined
toppingSortIntegerPinned sort order; higher values appear first
userUseMemorySizeLongUsed storage in bytes; returned only when needUserUseMemorySize=true
loginEmailStringLogin email
addTypeIntegerImport source: 0 manual, 1 Feishu
userStatusIntegerRegistration status: 1 registered, 0 unregistered
isSaleIntegerSales staff: 0 no, 1 yes
languageStringLanguage
regionStringRegion codes, comma-separated, such as US,GB
storageRegionCodeStringStorage region code

orgRoleVO fields:

FieldTypeDescription
idLongRole ID
nameStringRole name
codeStringRole code
createUserLongCreator's user ID
createUserRealNameStringCreator's full name
createUserNickNameStringCreator's nickname
createUserAvatarUrlStringCreator's avatar URL

departmentList[] fields:

FieldTypeDescription
idLongDepartment ID
nameStringDepartment name

Example request:

bash
curl --location --request POST 'https://open.musedam.ai/api/muse/org-members-query' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{"page":1,"pageSize":10,"keyword":""}'

Query team allowlist members

Endpoint: /org-whitelist-query

Method: POST

Description: Query the current team's allowlist members with pagination and optional keyword and group filters.

Request parameters:

FieldTypeRequiredDescription
keywordStringNoSearch name, phone number, or contact email
pageIntegerNoPage number; defaults to 1
pageSizeIntegerNoPage size; defaults to 10
groupIdLongNoFilter by group
addTypeIntegerNoImport source: 0 manual, 1 Feishu

Response structure:

FieldTypeDescription
recordsList<Object>Allowlist members; see below
totalLongTotal records
currentLongCurrent page number
sizeLongPage size

records[] fields:

FieldTypeDescription
idLongAllowlist record ID
userIdLongUser ID; may be empty for unregistered users
userNameStringUser name
userPhoneStringUser phone number
loginEmailStringLogin email
userContactEmailStringContact email
userAvatarUrlStringAvatar URL
toppingSortIntegerPinned sort order; higher values appear first
remarkStringNotes
addTypeIntegerImport source: 0 manual, 1 Feishu
createTimeDateCreation time
groupsList<Object>Groups the member belongs to; see below

groups[] fields:

FieldTypeDescription
idLongGroup ID
nameStringGroup name

Example request:

bash
curl --location --request POST 'https://open.musedam.ai/api/muse/org-whitelist-query' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{"page":1,"pageSize":10,"keyword":""}'

Query team departments

Endpoint: /org-departments-query

Method: GET

Description: Get the direct child departments of a parent department in the current team. parentId=0 returns root departments.

Request parameters:

FieldTypeRequiredDescription
parentIdLongNoParent department ID; defaults to 0 for root departments

Response: A list of objects containing id and name.

Request example:

bash
curl --location --request GET 'https://open.musedam.ai/api/muse/org-departments-query?parentId=0' \
--header 'Authorization: Bearer your_api_key'

Query team groups

Endpoint: /org-groups-query

Method: GET

Description: Get the direct child groups of a parent member group in the current team. parentId=0 returns root groups. Only enterprise team member groups are returned; enterprise allowlist groups are excluded.

Request parameters:

FieldTypeRequiredDescription
parentIdLongNoParent group ID; defaults to 0 for root groups

Response: A list of objects containing id and name.

Request example:

bash
curl --location --request GET 'https://open.musedam.ai/api/muse/org-groups-query?parentId=0' \
--header 'Authorization: Bearer your_api_key'

Query members by department ID

Endpoint: /department-members-query

Method: GET

Description: Query department members, optionally including subdepartments. Fields generally match records[] in /org-members-query.

Request parameters:

FieldTypeRequiredDescription
departmentIdLongYesDepartment ID
needChildMemberBooleanNoInclude subdepartment members; defaults to false

Request example:

bash
curl --location --request GET 'https://open.musedam.ai/api/muse/department-members-query?departmentId=123&needChildMember=false' \
--header 'Authorization: Bearer your_api_key'

Query members by group ID

Endpoint: /group-members-query

Method: POST

Description: Query enterprise team group members with pagination. Fields generally match records[] in /org-members-query, except enterprise role information is not returned.

Request parameters:

FieldTypeRequiredDescription
groupIdLongYesGroup ID
keyWordStringNoSearch keyword
needChildMemberBooleanNoInclude child members; defaults to false
pageIntegerNoPage number; defaults to 1
pageSizeIntegerNoPage size; defaults to 10

Response: Contains records / total / current / size.

Request example:

bash
curl --location --request POST 'https://open.musedam.ai/api/muse/group-members-query' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{"groupId":1,"keyWord":"","needChildMember":false,"page":1,"pageSize":10}'

Send an in-app notification

Endpoint: /add-in-app-notify

Method: POST

Description: Send an in-app notification to a user in an enterprise workspace. The notification is stored and processed through the same follow-up flow as the console, including Feishu delivery where configured. Notifications can reference folders, assets, or asset groups and cover collaboration, deletion, permission requests and decisions, comments, and team changes. Use notificationType together with resource fields to describe the event. This endpoint lets third-party systems send notifications in automated workflows.

Request body: req

FieldTypeRequiredDescription
notificationTypeStringYesMust exactly match a material service notificationType code listed below
receiverIdLongYesRecipient user ID
senderIdLongNoSender user ID; defaults to the current user in the API context
resourceTypeIntegerNoMust match a resourceType listed below; omit if no resource is associated
resourceNameStringNoResource display name
contentStringNoNotification body
resourceIdLongNoAssociated resource ID
permissionApprovedRoleIdIntegerNoRequested role ID for permission request notifications

notificationType

CodeDescription
collaborationCollaboration
deletionDeletion
permission_approvedPermission request
permission_successPermission granted
permission_refusePermission denied
commentComment
comment_replyComment reply
share_commentShare comment
share_comment_replyShare comment reply
team_member_joinNew member joined the team
team_member_quitMember left the team
team_member_leaveFeishu member resigned
asset_uploadAsset uploaded
subfolder_asset_uploadAsset uploaded in a subfolder
asset_version_uploadAsset version uploaded
subfolder_asset_version_uploadAsset version uploaded in a subfolder
asset_version_changeAsset version changed
subfolder_asset_version_changeAsset version changed in a subfolder
asset_version_removeAsset version removed
subfolder_asset_version_removeAsset version removed in a subfolder
asset_version_deleteAsset version deleted
subfolder_asset_version_deleteAsset version deleted in a subfolder
folder_and_material_deleteFolder and assets deleted
subfolder_and_material_deleteSubfolder and assets deleted
folder_deleteFolder deleted
subfolder_deleteSubfolder deleted
folder_material_deleteAssets in a folder deleted
subfolder_material_deleteAssets in a subfolder deleted
folder_material_moveAssets in a folder moved
subfolder_material_moveAssets in a subfolder moved
approvalApproval

resourceType

resourceTypeDescription
1Folder (FOLDER)
2Asset (MATERIAL)
3Asset group (MATERIAL_GROUP)
4Team (TEAM)

Use with resourceId, which identifies the business record of the selected type, such as a folder, asset, or team ID.

Response: result is a Boolean.

Example request:

bash
curl --location --request POST 'https://open.musedam.ai/api/muse/add-in-app-notify' \
--header 'Authorization: Bearer your_api_key' \
--header 'Content-Type: application/json' \
--data-raw '{
"notificationType": "permission_approved",
"receiverId": 1765276754630496256,
"resourceType": 1,
"resourceId": 1234567890,
"resourceName": "Brand asset library",
"content": "Request permission to view this shared folder",
"permissionApprovedRoleId": 2
}'

Example response:

json
{
"code": "0",
"message": "OK",
"result": true,
"traceId": "17561978534182325498"
}
MuseDAM Developer PlatformAPI · Integrations · MCP
    Teams & members | MuseDAM Developers