Skip to content

OpenAPI Doc

[TOC]

Access Authorization

The general authorization process is as follows, where:

Client represents the integrated application (for security reasons, it is recommended to get access tokens only on the server side);

Authorization Server represents the server that receives requests from the client for access tokens and issues them upon successful authentication.

     +---------+                                  +---------------+
     |         |                                  |               |
     |         |>--(A)- Client Authentication --->| Authorization |
     | Client  |                                  |     Server    |
     |         |<--(B)---- Access Token ---------<|               |
     |         |                                  |               |
     +---------+                                  +---------------+

0. NOTE

Host Description

  1. Public Cloud Version

  2. Private Deployment Version

    http[s]😕/

    Note: Please refer to the actual deployment.

1. Get client_id and client_secret

Please go to Enterprise Management: OpenAPI Management -> Application Details -> Credential Information to get the client_id (App ID) and client_secret (Secret).

To learn how to create an enterprise application, please check Administrator's Guide of Pixso Enterprise Edition.pdf for more details.

2. Get Access Token

API Description

Third-party applications get authorized access tokens.

Request Format

DescriptionDefinition
Path/api/oauth/oauth/token
MethodPOST
Content-Typemultipart/form-data
Acceptapplication/json

Request

ParameterTypeRequiredDescription
grant_typestringYesSpecify several grant types for different use cases, with a fixed value of client_credentials
scopestringYesA mechanism to limit an application's access to a user's account. all_scopes means all
client_idstringYesApplication id
client_secretstringYesApplication secret

Response

ParameterTypeDescription
access_tokenstringAccess token
expires_inintegerExpiration time (second)
scopestringA mechanism to limit an application's access to a user's account. all_scopes means all
token_typestringToken type: bearer. The access token should be concatenated using Bearer

Request Example

shell
curl --location \
--request POST \
'{Prefix}/api/oauth/oauth/token' \
--form 'grant_type="client_credentials"' \
--form 'scope="all_scopes"' \
--form 'client_id="{ClientId}"' \
--form 'client_secret="{ClientSecret}"'

Response Example

json
{
  "access_token": "JWT Token",
  "expires_in": 1800,
  "scope": "all_scopes",
  "token_type": "bearer"
}

The above is about access authorization.


The following is about OpenAPI access.

OpenAPI Access Guide

OpenAPI Prefix

  1. Public Cloud Version

  2. Private Deployment Version

    http[s]😕/{internal enterprise domain name}/openapi

    Note: Please refer to the actual deployment.

Request Specification Description

  • Network protocol: HTTPS. The private deployment may be different.

  • Coded format: UTF-8

  • Request methods: GET, POST, PUT, PATCH, DELETE (For details, check the API explanation).

  • Request parameters: 3 types are supported, including Path Parameters, Query Parameters and Body Parameters.

  • Request header: Authorization with AccessToken is required to be carried out for backstage authentication and authorization.

  • Permission description: The API description specifies the required scope for the AccessToken, which depends on the scope got by the third-party application and the scope specified during the authorization process.

  • Response result: JSON. API contains 3 parts: code, msg, and data, some of which only contain code and msg. Code represents the return code, msg is the return code description, and data is the result returned after calling the API. If the code is not 0 or 200, the request is considered a failure, and the failure information can be referred to in msg.

Response

ParameterTypeDescription
codeintegerBusiness return code
msgstringBusiness return code description
datajsonBusiness data

Note: msg is for reference only and may be subject to change in the future. It can not be used as the basis for determining whether the call issuccessful or not.

Fields

Staff Information Field

ParameterTypeDescription
e_idintegerEnterprise ID
user_idintegerUser ID, unique identifier for staff
account_idintegerAccount ID, unique identifier for physical accounts
statusintegerAccount status - 1: ok; -1: deleted; -2: frozen
emailstringEmail
mobilestringPhone number
unique_idstringDomain account, corresponding to the unique key of the user in the authentication system, such as username
nick_namestringNickname
avatar_urlstringAvatar URL
departmentstringDepartment
titlestringTitle
staff_statusintegerStaff status - 1: active; -1: inactive
created_atstringJoin time, standard time format (2022-05-09T09:16:36+08:00)
is_administratorbooleanIs administrator or not
is_ownerbooleanIs owner or not

Team Basic Information Field

ParameterTypeDescription
id/team_idintegerTeam ID
namestringTeam name
space_idintegerSpace ID (same as Enterprise ID; semantic difference: space refers to the product space within the enterprise)
creator_idintegerCreator ID
descriptionstringTeam description
avatar_keystringTeam avatar unique identifier
avatar_statusstringTeam avatar audit status - pass: pass; block: block; review: review
created_attimeTeam creation time

Project Basic Information Field

ParameterTypeDescription
id/folder_idintegerProject ID
namestringProject name
descriptionstringProject description
creator_idintegerCreator ID
team_idintegerTeam ID
levelintegerProject type - 0: team members have no permission; 22: team members are viewers; 44: team members are editors
created_attimeProject creation time
updated_attimeProject update time

File Basic Information Field

ParameterTypeDescription
file_keystringFile unique identifier
folder_idintegerProject ID
team_idintegerTeam ID
space_idintegerSpace ID (same as Enterprise ID; semantic difference: space refers to the product space within the enterprise)
creator_idintegerCreator ID
namestringFile name
descriptionstringFile description
object_pointstringObject key
avatar_keystringCover unique identifier
thumb_guidstringIf the canvas is used as the cover: Canvas thumbnail_guid
metastringIf the canvas is used as the cover: Canvas meta
levelintegerProject type —— 0:team members have no permission; 22: team members are viewers; 44: team members are editors
fromintegerFile source
typeintegerFile type - 10: Pixso file; 11: Prototype file; 20: Board file; 31: AxureHtml file
modify_attimeModification time of content on canvas
created_attimeCreation time
updated_attimeUpdate time
trashed_attimeFile deletion time

Permission Basic Information Field

ParameterTypeDescription
is_invitedintegerIs invited or not
levelintegerPermission role — 1: owner; 2: administrator; 3: editable; 4: view only
resource_typestringMessage type — team: Team; folder: Project; file: File
resource_id_or_keystringTeam/Project/File unique identifier
created_attimeCreation time
updated_attimeUpdate time

Version History Information Field

ParameterTypeDescription
idstringUnique ID of version history
file_keystringFile unique identifier
namestringHistory version name
descriptionstringHistory version Description
object_pointstringObject storage key of version history
typeintegerHistory version Type — 0: all types; 1: auto saved version; 2: manually saved version; 3: auto saved version with manual modification
share_linkstringThe share link of version history, which is only available when the shareable link of a specific version history is enabled. The link can be got by concatenating the enterprise domain and the share prefix. e.g. https://pixso.net/app/share/f/{share_link}
created_attimeCreation time

Team User Information Description

ParameterTypeDescription
team_idintegerTeam ID
user_idintegerAsset-assigned user ID

API Documentation

Enterprise

Get Staff Information (User ID)

Router: /v1/staff [GET]

ParameterTypeDescriptionRequired
user_idintegerUser ID, namely the user_id in user informationYes
shell
curl --location \
--request GET \
'{Prefix}/v1/staff?user_id={integer}' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "code-200",
  "data": {
    "e_id": 1,
    "user_id": 27471,
    "account_id": 18487,
    "status": 1,
    "email": "",
    "mobile": "",
    "nick_name": "test",
    "avatar_url": "",
    "department": "test",
    "title": "junior engineer",
    "unique_id": "3rd_party-username",
    "staff_status": 1,
    "created_at": "2022-05-09T09:16:36+08:00",
    "is_administrator": true,
    "is_owner": true
  }
}

Get Staff Information (Domain Account)

Router: /v1/staff/unique [GET]

ParameterTypeDescriptionRequired
usernamestringDomain account, the unique_id in user informationYes
shell
curl --location \
--request GET \
'{Prefix}/v1/staff/unique?username={unique_id}' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "code-200",
  "data": {
    "e_id": 1,
    "user_id": 27471,
    "account_id": 18487,
    "status": 1,
    "email": "",
    "mobile": "",
    "nick_name": "test",
    "avatar_url": "",
    "department": "test",
    "title": "junior engineer",
    "unique_id": "3rd_party-username",
    "staff_status": 1,
    "created_at": "2022-05-09T09:16:36+08:00",
    "is_administrator": true,
    "is_owner": true
  }
}

Get Staff List

Router: /v1/staff/list [GET]

shell
curl --location \
--request GET \
'{Prefix}/v1/staff/list' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "code-200",
  "data": [
    {
      "e_id": 1,
      "user_id": 27471,
      "account_id": 18487,
      "status": 1,
      "email": "",
      "mobile": "",
      "nick_name": "test",
      "avatar_url": "",
      "department": "test",
      "title": "junior engineer",
      "unique_id": "3rd_party-username",
      "staff_status": 1,
      "created_at": "2022-05-09T09:16:36+08:00",
      "is_administrator": true,
      "is_owner": true
    }
  ]
}

Search for Staff (by Name)

Router: /v1/staff/search [GET]

ParameterTypeDescriptionRequired
namestringUser name, follow the leftmost prefix ruleYes
shell
curl --location \
--request GET \
'{Prefix}/v1/staff/search?name=test' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "code-200",
  "data": [
    {
      "e_id": 1,
      "user_id": 27472,
      "account_id": 18486,
      "status": 1,
      "email": "",
      "mobile": "",
      "nick_name": "test",
      "avatar_url": "",
      "department": "test",
      "title": "junior engineer",
      "unique_id": "3rd_party-username",
      "staff_status": 1,
      "created_at": "2022-05-09T09:16:36+08:00",
      "is_administrator": true,
      "is_owner": true
    }
  ]
}

Add Staff Information

Router: /v1/staff/add [POST]

ParameterTypeDescriptionRequired
emailstringEmailNo
mobilestringMobileNo
unique_idstringDomain account, corresponding to the unique key of the user in the authentication system, such as usernameYes
namestringNicknameYes

Note:This API returns the user_id of the staff upon successful execution

shell
curl --location \
--request POST \
'{Prefix}/v1/staff/add' \
--header 'Authorization: Bearer {AccessToken}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"email": "string",
	"mobile": "string",
	"name": "string",
	"unique_id": "string"
}'

Response Example

json
{
  "code": 200,
  "msg": "code-200",
  "data": 20125352
}

Batch Add Staff Information

Router :/v1/staff/add/batch [POST]

ParameterTypeDescriptionRequired
usersarrayUser array (0 < length <= 1000)Yes

Note: This API does not return errors but returns a list of failed items.

shell
curl --location \
--request POST \
'{Prefix}/v1/staff/add/batch' \
--header 'Authorization: Bearer {AccessToken}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"users": [{
		"email": "string",
		"mobile": "string",
		"name": "string",
		"unique_id": "string"
	}]
}'

Response Example

json
{
  "code": 200,
  "msg": "code-200",
  "data": [
    {
      "name": "string",
      "unique_id": "string",
      "mobile": "string",
      "email": "string"
    }
  ]
}

Set Staff Status

Router: /v1/staff/status [PUT]

ParameterTypeDescriptionRequired
user_idintegerUser ID, user_id in user informationYes
staff_statusintegerStatus, valid values: 1, -1; 1=Employed, -1=ResignedYes

Note: This API does not return errors but returns a list of failed items.

shell
curl --location \
--request PUT \
'{Prefix}/v1/staff/status' \
--header 'Authorization: Bearer {AccessToken}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "staff_status": 1,
    "user_id": 27471
}'

Response Example

json
{
  "code": 200,
  "msg": "code-200",
  "data": {
    "e_id": 1,
    "user_id": 27471,
    "account_id": 18487,
    "has_pwd": true,
    "email": "",
    "mobile": "",
    "identification": "",
    "status": 1,
    "nick_name": "",
    "nick_name_status": "pass",
    "avatar_url": "",
    "avatar_status": "pass",
    "unique_id": "",
    "username": "",
    "wechat": "",
    "staff_status": 1,
    "created_at": "2022-05-09T09:16:36+08:00",
    "is_administrator": true,
    "is_owner": true,
    "staff_mobile": "",
    "staff_email": "",
    "department": "",
    "title": ""
  }
}

Team

Create Team

Router: /v1/team [POST]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
namestringTeam name (length limit: 1-100)Yes
descriptionstringDescription (length limit: 0-200)No
shell
curl --location \
--request POST \
'{Prefix}/v1/team/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 18552003,
    "name":"Team name",
    "description":"create a team"
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 10325,
    "name": "Team name",
    "creator_id": 18552003,
    "description": "create a team",
    "avatar_key": "",
    "created_at": "2022-08-11T06:47:16Z"
  }
}

Modify Team Information

Router: /v1/team [PUT]

ParameterTypeDescriptionRequired
team_iduint64Team IDYes
namestringTeam name (length limit: 1-100)Yes
descriptionstringDescription (length limit: 0-200)No
shell
curl --location \
--request PUT \
'{Prefix}/v1/team' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "team_id": 10325,
    "name":"Team name2",
    "description":"create a team"
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 10325,
    "name": "Team name2",
    "creator_id": 18552003,
    "description": "create a team",
    "avatar_key": "",
    "created_at": "2022-08-11T06:47:16Z"
  }
}

Get Team

Router: /v1/team [GET]

ParameterTypeDescriptionRequired
team_iduint64Team IDYes
shell
curl --location \
--request GET 'https://dev.pixso.design/api/pix/v1/team?team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 10325,
    "name": "Team name2",
    "creator_id": 18552003,
    "description": "create a team",
    "avatar_key": "",
    "created_at": "2022-08-11T06:47:16Z"
  }
}

Get All Teams within Enterprise

Router: /v1/team/list [GET]

shell
curl --location \
--request GET 'https://dev.pixso.design/api/pix/v1/team/list' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "team_info": {},
      "creator": {}
    }
  ]
}

Get Team by Team ID

Router: /v1/team/list [POST]

ParameterTypeDescriptionRequired
id_listuint64 arrayTeam ID arrayYes
shell
curl --location \
--request POST 'https://dev.pixso.design/api/pix/v1/team/list' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{"id_list":[2]}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "team_info": {},
      "creator": {}
    }
  ]
}

Delete Team

Router: /v1/team [DELETE]

ParameterTypeDescriptionRequired
team_iduint64Team IDYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/team?team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Get Team with Corresponding Permission for Member

Router: /v1/team/user/team-list [GET]

ParameterTypeDescriptionRequired
staff_iduint64Staff IDYes
levelintPermission value (valid values: 22, 44, 66, 88; and the default value is 22)Yes
shell
curl --location \
--request GET \
'{Prefix}/v1/team/user/team-list?staff_id=24367171&level=22' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "id": 80773,
      "name": "",
      "space_id": 12,
      "creator_id": 24367171,
      "description": "",
      "avatar_key": "",
      "avatar_status": "pass",
      "created_at": "2022-08-30T04:02:39Z"
    }
  ]
}

Add Team Member

Router: /v1/team/member [POST]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
team_iduint64Team IDYes
levelintPermission value (valid values: 22, 44, 66)Yes
shell
curl --location \
--request POST \
'{Prefix}/v1/team/member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 22798989,
    "team_id":10325,
    "level":22
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 22,
      "resource_type": "team",
      "resource_id_or_key": "10325",
      "created_at": "2022-08-11T09:35:20Z",
      "updated_at": "2022-08-11T09:35:20Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Get Team Member List

Router: /v1/team/member [GET]

ParameterTypeDescriptionRequired
team_iduint64Team IDYes
shell
curl --location \
--request GET \
'{Prefix}/v1/team/member?team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 22,
      "resource_type": "team",
      "resource_id_or_key": "10325",
      "created_at": "2022-08-11T09:35:20Z",
      "updated_at": "2022-08-11T09:35:20Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Modify Team Member Permission

Router: /v1/team/member [PUT]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
team_iduint64Team IDYes
levelintPermission value (valid values: 22, 44, 66)Yes
shell
curl --location \
--request PUT \
'{Prefix}/v1/team/member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 22798989,
    "team_id":10325,
    "level":44
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 44,
      "resource_type": "team",
      "resource_id_or_key": "10325",
      "created_at": "2022-08-11T09:35:20Z",
      "updated_at": "2022-08-11T09:35:20Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Delete Team Member

Router: /v1/team/member [DELETE]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
team_iduint64Team IDYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/team/member?user_id=22798989&team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {}
}

Modify Team Owner

Router: /v1/team/owner/modify [PUT]

ParameterTypeDescriptionRequired
owneruint64New owner Staff IDYes
team_iduint64Team IDYes
shell
curl --location \
--request PUT \
'{Prefix}/v1/team/owner/modify' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "team_id": 10325,
    "owner":22798989
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "email": "",
    "is_invited": true,
    "level": 88,
    "resource_type": "team",
    "resource_id_or_key": "10325",
    "created_at": "0001-01-01T00:00:00Z",
    "updated_at": "0001-01-01T00:00:00Z",
    "user": {
      "user_id": 22798989,
      "nick_name": "ED37QpgC",
      "avatar_url": "",
      "email": ""
    }
  }
}

Batch Get Team Avatar Object List

Router: /v1/team/avatars [POST]

ParameterTypeDescriptionRequired
avatar_key_liststring arrayArray of unique identifiers for avatarsYes
shell
curl --location \
--request POST \
'{Prefix}/v1/team/avatars' \
--header 'Authorization: Bearer {AccessToken}'
--data-raw '{
    "avatar_key_list": ["TCXRxQJFiy2c2GxxxxYUeA"]
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "avatar_key": "TCXRxQJFiy2c2GNcawYUeA",
      "url": "http://dev.pixso.design/api/pix/storage_s3/private/team-avatar+TCXRxQJFiy2c2GNcawYUeA?expire=1668752008&sign=Y6iZKO-39oeMNQBJQMg1D7_69QFelQNRQMtieUkyYwg"
    }
  ]
}

Team Asset Handover

Router: /v1/team/transfer [POST]

ParameterTypeDescriptionRequired
staff_idintegerAsset user IDYes
user_team_listarrayFor detailed information about the mapping of team asset assignments, please refer to [Team User Information Description](#Team User Information Description); To obtain all teams within the enterprise, please refer to [Get All Teams within Enterprise](#Get All Teams within Enterprise)No
handoverintegerAsset handover guarantee user, if there is a team with no assigned users for handover, it will default to this user.Yes
shell
curl --location \
--request POST \
'{Prefix}/v1/team/transfer' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "staff_id": 18552001,
    "user_team_list":[
      {"user_id": 18552003, "team_id": 1855},
      {"user_id": 18552004, "team_id": 1856}
    ],
    "handover": 18552005
}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Project

Please note that the project shares the same meaning as the folder mentioned below.

Create Project

Router: /v1/folder [POST]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
team_iduint64Team IDYes
levelintPermissions that team members have in the project (valid values: 0, 22, 44)Yes
namestringTeam name (length limit: 1-100)Yes
descriptionstringDescription (length limit: 0-200)No
shell
curl --location \
--request POST \
'{Prefix}/v1/folder' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 18552003,
    "team_id": 10245,
    "level":44,
    "name":"project name1",
    "description":"create a project"
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 100398,
    "name": "Project name 1",
    "description": "create a project",
    "creator_id": 18552003,
    "team_id": 10245,
    "level": 44,
    "created_at": "2022-08-15T09:23:31.5161731Z",
    "updated_at": "2022-08-15T09:23:31.5161731Z"
  }
}

Modify Project Information

Router: /v1/folder [PUT]

ParameterTypeDescriptionRequired
folder_iduint64Project IDYes
namestringTeam name(length limit :1-100)Yes
descriptionstringDescription (length limit :0-200)No
shell
curl --location \
--request PUT \
'{Prefix}/v1/folder' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "folder_id": 100398,
    "name":"project name 2",
    "description":"modify a project"
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 100398,
    "name": "project name 2",
    "description": "modify a project",
    "creator_id": 18552003,
    "team_id": 10245,
    "level": 44,
    "created_at": "2022-08-15T09:23:31Z",
    "updated_at": "2022-08-15T09:23:31Z"
  }
}

Get Project

Router: /v1/folder [GET]

ParameterTypeDescriptionRequired
folder_iduint64Project IDYes
shell
curl --location \
--request GET \
'{Prefix}/v1/folder?folder_id=100398' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "team_id": 10325,
    "owner":22798989
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 100398,
    "name": "project name 2",
    "description": "modify a project",
    "creator_id": 18552003,
    "team_id": 10245,
    "level": 44,
    "created_at": "2022-08-15T09:23:31Z",
    "updated_at": "2022-08-15T09:23:31Z"
  }
}

Get Project List within Team

Router: /v1/team/folder/list [GET]

ParameterTypeDescriptionRequired
team_iduint64Team IDYes
shell
curl --location \
--request GET \
'{Prefix}/v1/team/folder/list?team_id=10245' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "id": 100397,
      "name": "project name",
      "description": "create a project",
      "creator_id": 18552003,
      "team_id": 10245,
      "level": 0,
      "created_at": "2022-08-15T09:22:50Z",
      "updated_at": "2022-08-15T09:22:50Z"
    },
    {
      "id": 100398,
      "name": "project name 2",
      "description": "modify a project",
      "creator_id": 18552003,
      "team_id": 10245,
      "level": 44,
      "created_at": "2022-08-15T09:23:31Z",
      "updated_at": "2022-08-15T09:23:31Z"
    }
  ]
}

Batch Get Team Project (Permissions Included)

Router: /v1/team/folder/multi-list [POST]

ParameterTypeDescriptionRequired
team_id_listuint64 arrayTeam ID arrayYes
level_listint arrayPermission value arrayYes
shell
curl --location \
--request POST \
'{Prefix}/v1/team/folder/multi-list' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "team_id_list":[8077,145533],
    "level_list":[22]
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "id": 80773,
      "name": "",
      "space_id": 12,
      "creator_id": 24367171,
      "description": "",
      "avatar_key": "",
      "avatar_status": "pass",
      "created_at": "2022-08-30T04:02:39Z"
    }
  ]
}

Delete Project

Router: /v1/folder [DELETE]

ParameterTypeDescriptionRequired
folder_iduint64Project IDYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/folder?folder_id=100397' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Modify Project Type

Router: /v1/folder/level [PUT]

ParameterTypeDescriptionRequired
folder_iduint64Project IDYes
levelintPermissions that team members have in the project (valid values: 0, 22, 44)Yes
shell
curl --location \
--request PUT \
'{Prefix}//v1/folder/level' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "folder_id":100397,
    "level":44
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 100398,
    "name": "project name 2",
    "description": "modify a project",
    "creator_id": 18552003,
    "team_id": 10245,
    "level": 44,
    "created_at": "2022-08-15T09:23:31Z",
    "updated_at": "2022-08-15T09:23:31Z"
  }
}

Add Project Member

Router: /v1/folder/member [POST]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
folder_iduint64Project IDYes
levelintPermission value (valid values: 22, 44, 66)Yes
shell
curl --location \
--request POST \
'{Prefix}/v1/folder/member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 22798989,
    "folder_id":100397,
    "level":22
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 22,
      "resource_type": "folder",
      "resource_id_or_key": "100397",
      "created_at": "2022-08-15T09:52:09Z",
      "updated_at": "2022-08-15T09:52:09Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Batch Add Users to Project List

Router: /v1/folder/multi-member [POST]

ParameterTypeDescriptionRequired
folder_id_listuint64 arrayProject ID arrayYes
user_id_listint arrayUser ID arrayYes
levelintPermission value (valid values: 22, 44, 66)Yes

Note: Existing members in the project will be ignored. Their permissions will not be updated, and no errors will be reported.

shell
curl --location \
--request POST \
'{Prefix}/v1/folder/multi-member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id_list": [24367171,24367172,24367204],
    "folder_id_list":[173020,173019],
    "level":22
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "zenghx@300625.cn",
      "is_invited": true,
      "level": 22,
      "resource_type": "folder",
      "resource_id_or_key": "173019",
      "created_at": "0001-01-01T00:00:00Z",
      "updated_at": "0001-01-01T00:00:00Z",
      "user": {
        "user_id": 24367172,
        "nick_name": "zhx",
        "avatar_url": "",
        "email": "zenghx@300625.cn"
      }
    },
    {
      "email": "",
      "is_invited": true,
      "level": 22,
      "resource_type": "folder",
      "resource_id_or_key": "173019",
      "created_at": "0001-01-01T00:00:00Z",
      "updated_at": "0001-01-01T00:00:00Z",
      "user": {
        "user_id": 24367204,
        "nick_name": "helloworld",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

View Project Member List

Router: /v1/folder/member [GET]

ParameterTypeDescriptionRequired
folder_iduint64Project IDYes
shell
curl --location \
--request POST \
'{Prefix}/v1/folder/member?folder_id=100397' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 22,
      "resource_type": "folder",
      "resource_id_or_key": "100397",
      "created_at": "2022-08-15T09:52:09Z",
      "updated_at": "2022-08-15T09:52:09Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Modify Project Member Permission

Router: /v1/folder/member [PUT]

ParameterTypeDescriptionRequired
user_idint64User IDYes
folder_iduint64Project IDYes
levelintPermission value (valid values: 22, 44, 66)Yes
shell
curl --location \
--request PUT \
'{Prefix}/v1/folder/member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 22798989,
    "folder_id":100397,
    "level":44
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 44,
      "resource_type": "folder",
      "resource_id_or_key": "100397",
      "created_at": "2022-08-15T09:52:09Z",
      "updated_at": "2022-08-15T09:52:09Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Delete Project Member

Router: /v1/folder/member [DELETE]

ParameterTypeDescriptionRequired
user_idint64User IDYes
folder_iduint64Project IDYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/folder/member?folder_id=100397&user_id=22798989' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {}
}

Batch Delete Members in Project List

Router: /v1/folder/multi-member [DELETE]

ParameterTypeDescriptionRequired
folder_id_listuint64 arrayProject ID arrayYes
user_id_listint arrayUser ID arrayYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/folder/multi-member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id_list": [24367171,24367172,24367204],
    "folder_id_list":[173020,173019]
}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Modify Project Owner

Router: /v1/folder/:folder_id/owner/modify [PUT]

ParameterTypeDescriptionRequired
owneruint64New owner Staff IDYes
folder_iduint64Project IDYes
shell
curl --location \
--request PUT \
'{Prefix}/v1/folder/owner/modify' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "folder_id": 100397,
    "owner":22798989
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "email": "",
    "is_invited": true,
    "level": 88,
    "resource_type": "folder",
    "resource_id_or_key": "100397",
    "created_at": "0001-01-01T00:00:00Z",
    "updated_at": "0001-01-01T00:00:00Z",
    "user": {
      "user_id": 22798989,
      "nick_name": "ED37QpgC",
      "avatar_url": "",
      "email": ""
    }
  }
}

Batch Get Project Information List

Router: /v1/folder/info/list [POST]

ParameterTypeDescriptionRequired
folder_id_listuint64 arrayArray of unique identifiers for the projectsYes
shell
curl --location \
--request POST \
'{Prefix}/v1/folder/info/list' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "folder_id_list": [1]
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "id": 1,
      "name": "test",
      "description": "",
      "creator_id": 24367299,
      "team_id": 1,
      "level": 22,
      "created_at": "2022-07-16T09:09:07Z",
      "updated_at": "2022-07-16T09:09:07Z"
    }
  ]
}

Get Final Project Permission for the Team Specified by User

Router: /v1/folder/user/level-list [POST]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
team_id_listuint64 arrayTeam ID list. If not passed or an empty array is provided, return the user's final project permissions for all projects; if not empty, only return the user's final project permissions for all projects under the specified team of the userNo
leveluintThe desired final permission value to retrieve (valid values: 0, 22, 44, 66, 88). If the level parameter is not empty, the API will filter the results based on this value and only return the results with final permissions greater than or equal to level. If the level is empty, all results will be returnedNo

Note: There are two level attributes in the result. The outer level represents the user's final permission in the project, while the inner level represents the project's permission attribute.

shell
curl --location \
--request POST \
'{Prefix}/v1/folder/user/level-list' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 24367370,
    "team_id_list": [11251],
    "level": 44
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "user_id": 24367370,
      "folder_info": {
        "id": 100578,
        "name": "test project",
        "description": "",
        "creator_id": 24367370,
        "team_id": 11251,
        "level": 22,
        "created_at": "2022-08-22T05:49:45Z",
        "updated_at": "2022-08-22T05:49:45Z"
      },
      "level": 88
    }
  ]
}

File

Create File

Router: /v1/file [POST]

ParameterTypeDescriptionRequired
user_iduint64User idYes
folder_iduint64User idYes
namestringFile name (Length limit: 1-100)Yes
descriptionstringDescription (Length limit: 0-200)No
typeintFile type (The default is design file;10: design file,11: prototype file, 20: whiteboard file, 31: AxureHtml file)No
shell
curl --location \
--request POST \
'{Prefix}/v1/file' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 18552003,
    "folder_id": 100397,
    "name":"file name 1",
    "description":"create a file",
    "type": 11,
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "file_key": "9-oX-D4bpylghlJPyB03wg",
    "folder_id": 100397,
    "team_id": 10245,
    "space_id": 1,
    "creator_id": 18552003,
    "name": "file name 1",
    "description": "create a file",
    "object_point": "OthQW5VVY2vi-_6CWBAsZA==",
    "avatar_key": "",
    "thumb_guid": "",
    "meta": "",
    "level": 0,
    "from": 304,
    "type": 11,
    "modify_at": "2022-08-15T12:56:20.9994117Z",
    "created_at": "2022-08-15T12:56:20.9994117Z",
    "updated_at": "2022-08-15T12:56:20.9994117Z",
    "trashed_at": null,
    "user_id": 0,
    "u_date": 1660568180
  }
}

Modify File Information

Router: /v1/file [PUT]

ParameterTypeDescriptionRequired
file_keystringFile keyYes
namestringFile name (length limit: 1-100)Yes
descriptionstringDescription (length limit: 0-200)No
shell
curl --location \
--request PUT \
'{Prefix}/v1/file' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "file_key": "9-oX-D4bpylghlJPyB03wg",
    "name":"file name 2",
    "description":"modify a file"
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "file_key": "9-oX-D4bpylghlJPyB03wg",
    "folder_id": 100397,
    "team_id": 10245,
    "space_id": 1,
    "creator_id": 18552003,
    "name": "file name 2",
    "description": "modify a file",
    "object_point": "OthQW5VVY2vi-_6CWBAsZA==",
    "avatar_key": "",
    "thumb_guid": "",
    "meta": "",
    "level": 0,
    "from": 304,
    "modify_at": "2022-08-15T12:56:21Z",
    "created_at": "2022-08-15T12:56:21Z",
    "updated_at": "2022-08-15T12:56:21Z",
    "trashed_at": null
  }
}

Import New Static File (e.g. Axure File)

Router: /v1/file/import/static [POST]

ParameterTypeDescriptionRequired
creator_iduint64File creator IDYes
folder_iduint64Project IDYes
namestringFile name (length limit: 1-100)Yes
descriptionstringDescription (length limit: 0-200)No
filefileStatic file zipYes
shell
curl --location \
--request POST \
'{Prefix}/v1/file/import/static' \
--header 'Authorization: Bearer {AccessToken}' \
--form 'file=@"/C:/Users/ws/Downloads/axure_demo.zip"' \
--form 'name="test_name"' \
--form 'folder_id="100196"' \
--form 'creator_id="18552003"''

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "file_key": "9-oX-D4bpylghlJPyB03wg",
    "folder_id": 100397,
    "team_id": 10245,
    "space_id": 1,
    "creator_id": 18552003,
    "name": "test_name",
    "description": "",
    "object_point": "",
    "avatar_key": "",
    "thumb_guid": "",
    "meta": "",
    "level": 0,
    "from": 304,
    "modify_at": "2022-08-15T12:56:20.9994117Z",
    "created_at": "2022-08-15T12:56:20.9994117Z",
    "updated_at": "2022-08-15T12:56:20.9994117Z",
    "trashed_at": null,
    "user_id": 0,
    "u_date": 1660568180
  }
}

Import and Overwrite Existing Static File (e.g. Axure File)

Router: /v1/file/import/static [PUT]

ParameterTypeDescriptionRequired
file_keystringFile keyYes
creator_iduint64File Creator idYes
namestringFile name (length limit: 1-100)Yes
descriptionstringDescription (length limit: 0-200)No
filefileStatic file zipYes
shell
curl --location \
--request PUT \
'{Prefix}/v1/file/import/static' \
--header 'Authorization: Bearer {AccessToken}' \
--form 'file=@"/C:/Users/ws/Downloads/axure_demo.zip"' \
--form 'file_key=9-oX-D4bpylghlJPyB03wg' \
--form 'name="test_name"' \
--form 'creator_id="18552003"''

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "file_key": "9-oX-D4bpylghlJPyB03wg",
    "folder_id": 100397,
    "team_id": 10245,
    "space_id": 1,
    "creator_id": 18552003,
    "name": "test_name",
    "description": "",
    "object_point": "",
    "avatar_key": "",
    "thumb_guid": "",
    "meta": "",
    "level": 0,
    "from": 304,
    "modify_at": "2022-08-15T12:56:20.9994117Z",
    "created_at": "2022-08-15T12:56:20.9994117Z",
    "updated_at": "2022-08-15T12:56:20.9994117Z",
    "trashed_at": null,
    "user_id": 0,
    "u_date": 1660568180
  }
}

Get File Information

Router: /v1/file [GET]

ParameterTypeDescriptionRequired
file_keystringFile keyYes
shell
curl --location \
--request GET \
'{Prefix}/v1/file?file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "file_key": "9-oX-D4bpylghlJPyB03wg",
    "folder_id": 100397,
    "team_id": 10245,
    "space_id": 1,
    "creator_id": 18552003,
    "name": "file name 2",
    "description": "modify a file",
    "object_point": "OthQW5VVY2vi-_6CWBAsZA==",
    "avatar_key": "",
    "thumb_guid": "",
    "meta": "",
    "level": 0,
    "from": 304,
    "modify_at": "2022-08-15T12:56:21Z",
    "created_at": "2022-08-15T12:56:21Z",
    "updated_at": "2022-08-15T12:56:21Z",
    "trashed_at": null
  }
}

Get File List

Router: /v1//file/list [POST]

ParameterTypeDescriptionRequired
file_key_liststring arrayFile key arrayYes
shell
curl --location \
--request POST \
'{Prefix}/v1/file/list' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "file_key_list":["9-oX-D4bpylghlJPyB03wg"]
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "file_key": "9-oX-D4bpylghlJPyB03wg",
      "folder_id": 100397,
      "team_id": 10245,
      "space_id": 1,
      "creator_id": 18552003,
      "name": "file name 2",
      "description": "modify a file",
      "object_point": "OthQW5VVY2vi-_6CWBAsZA==",
      "avatar_key": "",
      "thumb_guid": "",
      "meta": "",
      "level": 0,
      "from": 304,
      "modify_at": "2022-08-15T12:56:21Z",
      "created_at": "2022-08-15T12:56:21Z",
      "updated_at": "2022-08-15T12:56:21Z",
      "trashed_at": null
    }
  ]
}

Get File List within Project

Router: /v1/folder/file/list [GET]

ParameterTypeDescriptionRequired
folder_iduint64Project IDYes
shell
curl --location \
--request GET \
'{Prefix}/v1/folder/file/list?folder_id=100397' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "file_key": "9-oX-D4bpylghlJPyB03wg",
      "folder_id": 100397,
      "team_id": 10245,
      "space_id": 1,
      "creator_id": 18552003,
      "name": "file name 2",
      "description": "modify a file",
      "object_point": "OthQW5VVY2vi-_6CWBAsZA==",
      "avatar_key": "",
      "thumb_guid": "",
      "meta": "",
      "level": 0,
      "from": 304,
      "type": 10,
      "modify_at": "2022-08-15T12:56:21Z",
      "created_at": "2022-08-15T12:56:21Z",
      "updated_at": "2022-08-15T12:56:21Z",
      "trashed_at": null
    }
  ]
}

Get Project File List by User

Router: /v1/folder/user/file/list [POST]

ParameterTypeDescriptionRequired
folder_id_list[]uint64Project id listYes
user_iduint64User idYes
levelintSupport filtering by permission value (value range: 0, 22, 44, 88)No
shell
curl --location \
--request GET \
'{Prefix}/v1/folder/user/file/list' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "folder_id_list":[174046],
    "user_id":24367428,
    "level":44
}'

Response Example

json
{
   "code": 200,
   "msg": "",
   "data": [
      {
         "file_key": "655kCrYAe-EZWFcISTUNFA",
         "folder_id": 174046,
         "directory_id": 0,
         "team_id": 146532,
         "space_id": 31,
         "creator_id": 24367896,
         "name": "Untitled",
         "description": "",
         "object_point": "655kCrYAe-EZWFcISTUNFA",
         "avatar_key": "655kCrYAe-EZWFcISTUNFAa",
         "thumb_guid": "",
         "meta": "",
         "level": 0,
         "from": 231,
         "type": 10,
         "modify_at": "2023-05-09T19:56:07Z",
         "created_at": "2023-05-09T11:56:08Z",
         "updated_at": "2023-05-09T11:56:08Z",
         "trashed_at": null
      }
   ]
}

Delete File

Router: /v1/file [DELETE]

ParameterTypeDescriptionRequired
file_keystringFile keyYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/file?file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Router: /v1/file/link/check [POST]

ParameterTypeDescriptionRequired
link_codestringLink code of the sharing fileYes
shell
curl --location \
--request POST \
'{Prefix}/v1/file/link/check' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "link_code": "8PN55lVmFpEABwNy9c3JR5VqF4dVowFl"
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "has_joined": false,
    "space_id": 12,
    "file": {
      "file_key": "2jw0BvTpEo90C_7VjBeWYw",
      "folder_id": 1021,
      "team_id": 1576,
      "space_id": 12,
      "creator_id": 24367171,
      "name": "Pixso file",
      "description": "File Description",
      "object_point": "4bgiO978k_k5ZyC1t3ByGw==",
      "avatar_key": "_fji1uVRjB2IW9zJcu-XSQ==",
      "thumb_guid": "",
      "meta": "{\"background_color\":\"#E5E5E5FF\"}",
      "level": 22,
      "from": 0,
      "type": 10,
      "option": 159,
      "modify_at": "2022-07-15T23:29:05Z",
      "created_at": "2022-05-09T09:04:35Z",
      "updated_at": "2022-05-09T09:04:35Z",
      "trashed_at": null
    }
  }
}

Add File Member

Router: /v1/file/member [POST]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
file_keystringFile keyYes
levelintPermission value (valid values: 22, 44)Yes
enterprise_idstring指定子企业id
enterprise_unique_idstring指定子企业唯一键;都未指定时,默认当前企业
shell
curl --location \
--request POST \
'{Prefix}/v1/file/member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 22798989,
    "file_key":"9-oX-D4bpylghlJPyB03wg",
    "level":22
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 22,
      "resource_type": "file",
      "resource_id_or_key": "9-oX-D4bpylghlJPyB03wg",
      "created_at": "0001-01-01T00:00:00Z",
      "updated_at": "0001-01-01T00:00:00Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Batch Add Users to File List

Router: /v1/file/multi-member [POST]

ParameterTypeDescriptionRequired
file_key_liststring arrayFile key arrayYes
user_id_listint arrayUser ID arrayYes
levelintPermission value (valid values: 22, 44)Yes

Note: Any existing members already present in the file will be disregarded, with no permission updates or error messages.

shell
curl --location \
--request POST \
'{Prefix}/v1/file/multi-member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id_list": [24367171,24367172,24367204],
    "file_key_list":["0EBsKrE35YXNiV8Y8ttnfg","3XAXV7Gbse6TfUn42bo6Ug"],
    "level":22
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "zhangz@300624.cn",
      "is_invited": true,
      "level": 22,
      "resource_type": "file",
      "resource_id_or_key": "0EBsKrE35YXNiV8Y8ttnfg",
      "created_at": "0001-01-01T00:00:00Z",
      "updated_at": "0001-01-01T00:00:00Z",
      "user": {
        "user_id": 24367171,
        "nick_name": "test123",
        "avatar_url": "",
        "email": "zhangz@300624.cn"
      }
    },
    {
      "email": "zenghx@300625.cn",
      "is_invited": true,
      "level": 22,
      "resource_type": "file",
      "resource_id_or_key": "0EBsKrE35YXNiV8Y8ttnfg",
      "created_at": "0001-01-01T00:00:00Z",
      "updated_at": "0001-01-01T00:00:00Z",
      "user": {
        "user_id": 24367172,
        "nick_name": "zhx",
        "avatar_url": "",
        "email": "zenghx@300625.cn"
      }
    }
  ]
}

View File Member List

Router: /v1/file/member [GET]

ParameterTypeDescriptionRequired
file_keystringFile keyYes
shell
curl --location \
--request GET \
'{Prefix}/v1/file/member?file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 22,
      "resource_type": "file",
      "resource_id_or_key": "9-oX-D4bpylghlJPyB03wg",
      "created_at": "0001-01-01T00:00:00Z",
      "updated_at": "0001-01-01T00:00:00Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Modify File Member Permission

Router: /v1/file/member [PUT]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
file_keyuint64File keyYes
levelintPermission value (valid values: 22, 44)Yes
shell
curl --location \
--request PUT \
'{Prefix}/v1/file/member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id": 22798989,
    "file_key":"9-oX-D4bpylghlJPyB03wg",
    "level":44
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "email": "",
      "is_invited": true,
      "level": 44,
      "resource_type": "file",
      "resource_id_or_key": "9-oX-D4bpylghlJPyB03wg",
      "created_at": "2022-08-15T13:55:41Z",
      "updated_at": "2022-08-15T13:55:41Z",
      "user": {
        "user_id": 22798989,
        "nick_name": "ED37QpgC",
        "avatar_url": "",
        "email": ""
      }
    }
  ]
}

Delete File Member

Router: /v1/file/member [DELETE]

ParameterTypeDescriptionRequired
user_iduint64User IDYes
file_keyuint64File keyYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/file/member?user_id=22798989&file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Batch Delete Users in File List

Router: /v1/file/multi-member [DELETE]

ParameterTypeDescriptionRequired
file_key_liststring arrayFile key arrayYes
user_id_listint arrayUser ID arrayYes
shell
curl --location \
--request DELETE \
'{Prefix}/v1/file/multi-member' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "user_id_list": [24367171,24367172,24367204],
    "file_key_list":["0EBsKrE35YXNiV8Y8ttnfg","jqNuqrjmJYSxh2dHYdCALA","3XAXV7Gbse6TfUn42bo6Ug"]
}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Modify File Owner

Router: /v1/file/owner/modify [PUT]

ParameterTypeDescriptionRequired
owneruint64New owner Staff IDYes
file_keystringFile keyYes
shell
curl --location \
--request PUT \
'{Prefix}/v1/file/owner/modify' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "file_key":"pJ3yoa42YxwwOdrJSmVeVA",
    "owner":22798989
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": {
    "email": "",
    "is_invited": true,
    "level": 88,
    "resource_type": "file",
    "resource_id_or_key": "pJ3yoa42YxwwOdrJSmVeVA",
    "created_at": "0001-01-01T00:00:00Z",
    "updated_at": "0001-01-01T00:00:00Z",
    "user": {
      "user_id": 22798989,
      "nick_name": "ED37QpgC",
      "avatar_url": "",
      "email": ""
    }
  }
}

Get Seat Values of Enterprise Staff

Router: /v1/file/file-level/list [POST]

ParameterTypeDescriptionRequired
staff_id_listuint64 arrayStaff ID arrayYes
shell
curl --location \
--request POST \
'{Prefix}/v1/file/file-level/list' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
   "staff_id_list":[13,14]
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "user_id": 13,
      "file_level": 22,
      "board_file_level": 22
    },
    {
      "user_id": 14,
      "file_level": 22,
      "board_file_level": 22
    }
  ]
}

Modify Seat of Enterprise Staff

Router: /v1/file/file-level [PUT]

ParameterTypeDescriptionRequired
staff_iduint64Staff IDYes
file_leveluintPermission value (valid values: 22, 44)Yes
shell
curl --location \
--request PUT \
'{Prefix}/v1/file/file-level' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "staff_id":13,
    "file_level":44
}'

Response Example

json
{
  "code": 200,
  "msg": ""
}

Modify Whiteboard Seat of Staff

Router: /v1/file/board/file-level [PUT]

ParameterTypeDescriptionRequired
staff_iduint64Staff idYes
file_leveluintPermission value (valid value: 22, 44)Yes
shell
curl --location \
--request PUT \
'{Prefix}/v1/file/board/file-level' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
    "staff_id":13,
    "file_level":44
}'

Response Example

json
{
   "code": 200,
   "msg": ""
}

Batch Get Mapping between Domain Account and User ID for Enterprise Staff

Router: /v1/staff/unique/batch [POST]

ParameterTypeDescriptionRequired
unique_idsarrayDomain account, namely the unique_id in user information (array length limit: 1000)Yes
shell
curl --location \
--request POST \
'{Prefix}/v1/staff/unique/batch' \
--header 'Authorization: Bearer {AccessToken}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"unique_ids": ["id_1","id_2","id_3"]
}'

Response Example

json
{
  "code": 200,
  "msg": "[code-200] OK",
  "data": {
    "id_1": 1,
    "id_2": 0,
    "id_3": 25290695
  }
}

Batch Get Lists of File Cover Objects

Router: /v1/file/covers [POST]

ParameterTypeDescriptionRequired
avatar_key_liststring arrayList of unique cover identifiersYes
shell
curl --location \
--request POST \
'{Prefix}/v1/file/covers' \
--header 'Authorization: Bearer {AccessToken}'
--data-raw '{
    "avatar_key_list": ["0eod_tCnSjOiG9bG61Sx2w=="]
}'

Response Example

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "avatar_key": "0eod_tCnSjOiG9bG61Sx2w==",
      "url": "http://dev.pixso.design/api/pix/storage_s3/private/img+0eod_tCnSjOiG9bG61Sx2w==?expire=1668688511&sign=fEP_sVtHIa9SL8bUaPoJuwmsHBVEftTZ16whkSlR96o"
    }
  ]
}

Batch Get Enterprise Staff Information by User ID

Router: /v1/staff/userid/batch [POST]

ParameterTypeDescriptionRequired
user_idsarrayuser_id in user information (array length limit: 1000)Yes
shell
curl --location \
--request POST \
'{Prefix}/v1/staff/userid/batch' \
--header 'Authorization: Bearer {AccessToken}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"user_ids": [123,124,125]
}'

Response Example

json
{
  "code": 200,
  "msg": "[code-200] OK",
  "data": [
    {
      "account_id": 0,
      "avatar_url": "string",
      "created_at": "string",
      "department": "string",
      "e_id": 0,
      "email": "string",
      "is_administrator": true,
      "is_owner": true,
      "mobile": "string",
      "nick_name": "string",
      "staff_status": 0,
      "status": 0,
      "title": "string",
      "unique_id": "string",
      "user_id": 0
    }
  ]
}

Version History

Get File Version History

Router: /v1/file/version [GET]

ParameterTypeDescriptionRequired
file_keystringFile keyYes
typeintVersion history type (0: all; 1: auto saved version; 2: manually saved version)No
shell
curl --location \
--request POST \
'{Prefix}/v1/file/version?file_key=qgQ_iuGIgiqEHh-Xrokn7g&type=1'
--header 'Authorization: Bearer {AccessToken}'

Response Example

Field of Version History

json
{
  "code": 200,
  "msg": "",
  "data": [
    {
      "id": "1677060637",
      "file_Key": "qgQ_iuGIgiqEHh-Xrokn7g",
      "name": "",
      "description": "scheduled saving",
      "object_point": "b-5A_Gbk7u9xi2ARFmJhLg==",
      "created_at": "2023-02-22T10:10:37Z",
      "user": {
        "user_id": 0,
        "nick_name": "",
        "avatar_url": "",
        "email": ""
      },
      "type": 1,
      "share_link": "wt8X9bKUCCZC1nL5CPLKH1aF_YfaWX2t?vid=1677060637"
    }
  ]
}

Other Notes

Error Code

Error CodeError MessageDescription
110001too may requestAPI request exceeds rate limits
110002invalid parameterParameter error
110003out of levelPermission error
110004not foundObject does not exist
110011internal server errorInternal server error
149003signature errSignature error
190001server errorServer error
190002out of levelInsufficient permissions
190003invalid parameterParameter error
190101user not foundUser does not exist
190102enterprise not foundEnterprise does not exist
190103enterprise errorEnterprise error
190201team not foundTeam does not exist
190301folder not foundProject does not exist
190304folder out of limitProject out of limit
190401file not foundFile does not exist
190402file type errFile type error
190501member not foundMember does not exist
190502member already existMember already exists
190503owner cannot modifyOwner cannot be modified
190504same as the old oneNo change made as the new value is the same as the old one

Permission value

Permission ValuePermission Information
0No
22Viewable
44Editable
66Administrator
88Owner

Changelog

v1.58