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
Public Cloud Version
- Pixso: https://api.pixso.net
- Boardmix: https://api.boardmix.net
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
| Description | Definition |
|---|---|
| Path | /api/oauth/oauth/token |
| Method | POST |
| Content-Type | multipart/form-data |
| Accept | application/json |
Request
| Parameter | Type | Required | Description |
|---|---|---|---|
| grant_type | string | Yes | Specify several grant types for different use cases, with a fixed value of client_credentials |
| scope | string | Yes | A mechanism to limit an application's access to a user's account. all_scopes means all |
| client_id | string | Yes | Application id |
| client_secret | string | Yes | Application secret |
Response
| Parameter | Type | Description |
|---|---|---|
| access_token | string | Access token |
| expires_in | integer | Expiration time (second) |
| scope | string | A mechanism to limit an application's access to a user's account. all_scopes means all |
| token_type | string | Token type: bearer. The access token should be concatenated using Bearer |
Request Example
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
{
"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
Public Cloud Version
- Pixso: https://openapi.pixso.net/
- Boardmix: https://openapi.boardmix.net/
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-8Request methods:
GET,POST,PUT,PATCH,DELETE(For details, check the API explanation).Request parameters:
3types are supported, includingPath Parameters,Query ParametersandBody Parameters.Request header:
AuthorizationwithAccessTokenis required to be carried out for backstage authentication and authorization.Permission description: The API description specifies the required
scopefor theAccessToken, which depends on thescopegot by the third-party application and thescopespecified during the authorization process.Response result:
JSON. API contains 3 parts:code,msg, anddata, some of which only containcodeandmsg.Coderepresents the return code,msgis the return code description, and data is the result returned after calling the API. If thecodeis not0or200, the request is considered a failure, and the failure information can be referred to inmsg.
Response
| Parameter | Type | Description |
|---|---|---|
| code | integer | Business return code |
| msg | string | Business return code description |
| data | json | Business 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
| Parameter | Type | Description |
|---|---|---|
| e_id | integer | Enterprise ID |
| user_id | integer | User ID, unique identifier for staff |
| account_id | integer | Account ID, unique identifier for physical accounts |
| status | integer | Account status - 1: ok; -1: deleted; -2: frozen |
| string | ||
| mobile | string | Phone number |
| unique_id | string | Domain account, corresponding to the unique key of the user in the authentication system, such as username |
| nick_name | string | Nickname |
| avatar_url | string | Avatar URL |
| department | string | Department |
| title | string | Title |
| staff_status | integer | Staff status - 1: active; -1: inactive |
| created_at | string | Join time, standard time format (2022-05-09T09:16:36+08:00) |
| is_administrator | boolean | Is administrator or not |
| is_owner | boolean | Is owner or not |
Team Basic Information Field
| Parameter | Type | Description |
|---|---|---|
| id/team_id | integer | Team ID |
| name | string | Team name |
| space_id | integer | Space ID (same as Enterprise ID; semantic difference: space refers to the product space within the enterprise) |
| creator_id | integer | Creator ID |
| description | string | Team description |
| avatar_key | string | Team avatar unique identifier |
| avatar_status | string | Team avatar audit status - pass: pass; block: block; review: review |
| created_at | time | Team creation time |
Project Basic Information Field
| Parameter | Type | Description |
|---|---|---|
| id/folder_id | integer | Project ID |
| name | string | Project name |
| description | string | Project description |
| creator_id | integer | Creator ID |
| team_id | integer | Team ID |
| level | integer | Project type - 0: team members have no permission; 22: team members are viewers; 44: team members are editors |
| created_at | time | Project creation time |
| updated_at | time | Project update time |
File Basic Information Field
| Parameter | Type | Description |
|---|---|---|
| file_key | string | File unique identifier |
| folder_id | integer | Project ID |
| team_id | integer | Team ID |
| space_id | integer | Space ID (same as Enterprise ID; semantic difference: space refers to the product space within the enterprise) |
| creator_id | integer | Creator ID |
| name | string | File name |
| description | string | File description |
| object_point | string | Object key |
| avatar_key | string | Cover unique identifier |
| thumb_guid | string | If the canvas is used as the cover: Canvas thumbnail_guid |
| meta | string | If the canvas is used as the cover: Canvas meta |
| level | integer | Project type —— 0:team members have no permission; 22: team members are viewers; 44: team members are editors |
| from | integer | File source |
| type | integer | File type - 10: Pixso file; 11: Prototype file; 20: Board file; 31: AxureHtml file |
| modify_at | time | Modification time of content on canvas |
| created_at | time | Creation time |
| updated_at | time | Update time |
| trashed_at | time | File deletion time |
Permission Basic Information Field
| Parameter | Type | Description |
|---|---|---|
| is_invited | integer | Is invited or not |
| level | integer | Permission role — 1: owner; 2: administrator; 3: editable; 4: view only |
| resource_type | string | Message type — team: Team; folder: Project; file: File |
| resource_id_or_key | string | Team/Project/File unique identifier |
| created_at | time | Creation time |
| updated_at | time | Update time |
Version History Information Field
| Parameter | Type | Description |
|---|---|---|
| id | string | Unique ID of version history |
| file_key | string | File unique identifier |
| name | string | History version name |
| description | string | History version Description |
| object_point | string | Object storage key of version history |
| type | integer | History version Type — 0: all types; 1: auto saved version; 2: manually saved version; 3: auto saved version with manual modification |
| share_link | string | The 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_at | time | Creation time |
Team User Information Description
| Parameter | Type | Description |
|---|---|---|
| team_id | integer | Team ID |
| user_id | integer | Asset-assigned user ID |
API Documentation
Enterprise
Get Staff Information (User ID)
Router: /v1/staff [GET]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | integer | User ID, namely the user_id in user information | Yes |
curl --location \
--request GET \
'{Prefix}/v1/staff?user_id={integer}' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| username | string | Domain account, the unique_id in user information | Yes |
curl --location \
--request GET \
'{Prefix}/v1/staff/unique?username={unique_id}' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
curl --location \
--request GET \
'{Prefix}/v1/staff/list' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| name | string | User name, follow the leftmost prefix rule | Yes |
curl --location \
--request GET \
'{Prefix}/v1/staff/search?name=test' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| string | No | ||
| mobile | string | Mobile | No |
| unique_id | string | Domain account, corresponding to the unique key of the user in the authentication system, such as username | Yes |
| name | string | Nickname | Yes |
Note:This API returns the user_id of the staff upon successful execution
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
{
"code": 200,
"msg": "code-200",
"data": 20125352
}Batch Add Staff Information
Router :/v1/staff/add/batch [POST]
| Parameter | Type | Description | Required |
|---|---|---|---|
| users | array | User array (0 < length <= 1000) | Yes |
Note: This API does not return errors but returns a list of failed items.
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
{
"code": 200,
"msg": "code-200",
"data": [
{
"name": "string",
"unique_id": "string",
"mobile": "string",
"email": "string"
}
]
}Set Staff Status
Router: /v1/staff/status [PUT]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | integer | User ID, user_id in user information | Yes |
| staff_status | integer | Status, valid values: 1, -1; 1=Employed, -1=Resigned | Yes |
Note: This API does not return errors but returns a list of failed items.
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| name | string | Team name (length limit: 1-100) | Yes |
| description | string | Description (length limit: 0-200) | No |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| team_id | uint64 | Team ID | Yes |
| name | string | Team name (length limit: 1-100) | Yes |
| description | string | Description (length limit: 0-200) | No |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| team_id | uint64 | Team ID | Yes |
curl --location \
--request GET 'https://dev.pixso.design/api/pix/v1/team?team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
curl --location \
--request GET 'https://dev.pixso.design/api/pix/v1/team/list' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"code": 200,
"msg": "",
"data": [
{
"team_info": {},
"creator": {}
}
]
}Get Team by Team ID
Router: /v1/team/list [POST]
| Parameter | Type | Description | Required |
|---|---|---|---|
| id_list | uint64 array | Team ID array | Yes |
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
{
"code": 200,
"msg": "",
"data": [
{
"team_info": {},
"creator": {}
}
]
}Delete Team
Router: /v1/team [DELETE]
| Parameter | Type | Description | Required |
|---|---|---|---|
| team_id | uint64 | Team ID | Yes |
curl --location \
--request DELETE \
'{Prefix}/v1/team?team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"code": 200,
"msg": ""
}Get Team with Corresponding Permission for Member
Router: /v1/team/user/team-list [GET]
| Parameter | Type | Description | Required |
|---|---|---|---|
| staff_id | uint64 | Staff ID | Yes |
| level | int | Permission value (valid values: 22, 44, 66, 88; and the default value is 22) | Yes |
curl --location \
--request GET \
'{Prefix}/v1/team/user/team-list?staff_id=24367171&level=22' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| team_id | uint64 | Team ID | Yes |
| level | int | Permission value (valid values: 22, 44, 66) | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| team_id | uint64 | Team ID | Yes |
curl --location \
--request GET \
'{Prefix}/v1/team/member?team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| team_id | uint64 | Team ID | Yes |
| level | int | Permission value (valid values: 22, 44, 66) | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| team_id | uint64 | Team ID | Yes |
curl --location \
--request DELETE \
'{Prefix}/v1/team/member?user_id=22798989&team_id=10325' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"code": 200,
"msg": "",
"data": {}
}Modify Team Owner
Router: /v1/team/owner/modify [PUT]
| Parameter | Type | Description | Required |
|---|---|---|---|
| owner | uint64 | New owner Staff ID | Yes |
| team_id | uint64 | Team ID | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| avatar_key_list | string array | Array of unique identifiers for avatars | Yes |
curl --location \
--request POST \
'{Prefix}/v1/team/avatars' \
--header 'Authorization: Bearer {AccessToken}'
--data-raw '{
"avatar_key_list": ["TCXRxQJFiy2c2GxxxxYUeA"]
}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| staff_id | integer | Asset user ID | Yes |
| user_team_list | array | For 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 |
| handover | integer | Asset handover guarantee user, if there is a team with no assigned users for handover, it will default to this user. | Yes |
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
{
"code": 200,
"msg": ""
}Project
Please note that the project shares the same meaning as the folder mentioned below.
Create Project
Router: /v1/folder [POST]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| team_id | uint64 | Team ID | Yes |
| level | int | Permissions that team members have in the project (valid values: 0, 22, 44) | Yes |
| name | string | Team name (length limit: 1-100) | Yes |
| description | string | Description (length limit: 0-200) | No |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id | uint64 | Project ID | Yes |
| name | string | Team name(length limit :1-100) | Yes |
| description | string | Description (length limit :0-200) | No |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id | uint64 | Project ID | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| team_id | uint64 | Team ID | Yes |
curl --location \
--request GET \
'{Prefix}/v1/team/folder/list?team_id=10245' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| team_id_list | uint64 array | Team ID array | Yes |
| level_list | int array | Permission value array | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id | uint64 | Project ID | Yes |
curl --location \
--request DELETE \
'{Prefix}/v1/folder?folder_id=100397' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"code": 200,
"msg": ""
}Modify Project Type
Router: /v1/folder/level [PUT]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id | uint64 | Project ID | Yes |
| level | int | Permissions that team members have in the project (valid values: 0, 22, 44) | Yes |
curl --location \
--request PUT \
'{Prefix}//v1/folder/level' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
"folder_id":100397,
"level":44
}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| folder_id | uint64 | Project ID | Yes |
| level | int | Permission value (valid values: 22, 44, 66) | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id_list | uint64 array | Project ID array | Yes |
| user_id_list | int array | User ID array | Yes |
| level | int | Permission 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.
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id | uint64 | Project ID | Yes |
curl --location \
--request POST \
'{Prefix}/v1/folder/member?folder_id=100397' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | int64 | User ID | Yes |
| folder_id | uint64 | Project ID | Yes |
| level | int | Permission value (valid values: 22, 44, 66) | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | int64 | User ID | Yes |
| folder_id | uint64 | Project ID | Yes |
curl --location \
--request DELETE \
'{Prefix}/v1/folder/member?folder_id=100397&user_id=22798989' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"code": 200,
"msg": "",
"data": {}
}Batch Delete Members in Project List
Router: /v1/folder/multi-member [DELETE]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id_list | uint64 array | Project ID array | Yes |
| user_id_list | int array | User ID array | Yes |
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
{
"code": 200,
"msg": ""
}Modify Project Owner
Router: /v1/folder/:folder_id/owner/modify [PUT]
| Parameter | Type | Description | Required |
|---|---|---|---|
| owner | uint64 | New owner Staff ID | Yes |
| folder_id | uint64 | Project ID | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id_list | uint64 array | Array of unique identifiers for the projects | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| team_id_list | uint64 array | Team 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 user | No |
| level | uint | The 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 returned | No |
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.
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User id | Yes |
| folder_id | uint64 | User id | Yes |
| name | string | File name (Length limit: 1-100) | Yes |
| description | string | Description (Length limit: 0-200) | No |
| type | int | File type (The default is design file;10: design file,11: prototype file, 20: whiteboard file, 31: AxureHtml file) | No |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key | string | File key | Yes |
| name | string | File name (length limit: 1-100) | Yes |
| description | string | Description (length limit: 0-200) | No |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| creator_id | uint64 | File creator ID | Yes |
| folder_id | uint64 | Project ID | Yes |
| name | string | File name (length limit: 1-100) | Yes |
| description | string | Description (length limit: 0-200) | No |
| file | file | Static file zip | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key | string | File key | Yes |
| creator_id | uint64 | File Creator id | Yes |
| name | string | File name (length limit: 1-100) | Yes |
| description | string | Description (length limit: 0-200) | No |
| file | file | Static file zip | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key | string | File key | Yes |
curl --location \
--request GET \
'{Prefix}/v1/file?file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key_list | string array | File key array | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id | uint64 | Project ID | Yes |
curl --location \
--request GET \
'{Prefix}/v1/folder/file/list?folder_id=100397' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| folder_id_list | []uint64 | Project id list | Yes |
| user_id | uint64 | User id | Yes |
| level | int | Support filtering by permission value (value range: 0, 22, 44, 88) | No |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key | string | File key | Yes |
curl --location \
--request DELETE \
'{Prefix}/v1/file?file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"code": 200,
"msg": ""
}Get File Information By Invitation Link
Router: /v1/file/link/check [POST]
| Parameter | Type | Description | Required |
|---|---|---|---|
| link_code | string | Link code of the sharing file | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| file_key | string | File key | Yes |
| level | int | Permission value (valid values: 22, 44) | Yes |
| enterprise_id | string | 指定子企业id | 否 |
| enterprise_unique_id | string | 指定子企业唯一键;都未指定时,默认当前企业 | 否 |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key_list | string array | File key array | Yes |
| user_id_list | int array | User ID array | Yes |
| level | int | Permission 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.
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key | string | File key | Yes |
curl --location \
--request GET \
'{Prefix}/v1/file/member?file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| file_key | uint64 | File key | Yes |
| level | int | Permission value (valid values: 22, 44) | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_id | uint64 | User ID | Yes |
| file_key | uint64 | File key | Yes |
curl --location \
--request DELETE \
'{Prefix}/v1/file/member?user_id=22798989&file_key=9-oX-D4bpylghlJPyB03wg' \
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"code": 200,
"msg": ""
}Batch Delete Users in File List
Router: /v1/file/multi-member [DELETE]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key_list | string array | File key array | Yes |
| user_id_list | int array | User ID array | Yes |
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
{
"code": 200,
"msg": ""
}Modify File Owner
Router: /v1/file/owner/modify [PUT]
| Parameter | Type | Description | Required |
|---|---|---|---|
| owner | uint64 | New owner Staff ID | Yes |
| file_key | string | File key | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| staff_id_list | uint64 array | Staff ID array | Yes |
curl --location \
--request POST \
'{Prefix}/v1/file/file-level/list' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
"staff_id_list":[13,14]
}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| staff_id | uint64 | Staff ID | Yes |
| file_level | uint | Permission value (valid values: 22, 44) | Yes |
curl --location \
--request PUT \
'{Prefix}/v1/file/file-level' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
"staff_id":13,
"file_level":44
}'Response Example
{
"code": 200,
"msg": ""
}Modify Whiteboard Seat of Staff
Router: /v1/file/board/file-level [PUT]
| Parameter | Type | Description | Required |
|---|---|---|---|
| staff_id | uint64 | Staff id | Yes |
| file_level | uint | Permission value (valid value: 22, 44) | Yes |
curl --location \
--request PUT \
'{Prefix}/v1/file/board/file-level' \
--header 'Authorization: Bearer {AccessToken}' \
--data-raw '{
"staff_id":13,
"file_level":44
}'Response Example
{
"code": 200,
"msg": ""
}Batch Get Mapping between Domain Account and User ID for Enterprise Staff
Router: /v1/staff/unique/batch [POST]
| Parameter | Type | Description | Required |
|---|---|---|---|
| unique_ids | array | Domain account, namely the unique_id in user information (array length limit: 1000) | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| avatar_key_list | string array | List of unique cover identifiers | Yes |
curl --location \
--request POST \
'{Prefix}/v1/file/covers' \
--header 'Authorization: Bearer {AccessToken}'
--data-raw '{
"avatar_key_list": ["0eod_tCnSjOiG9bG61Sx2w=="]
}'Response Example
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| user_ids | array | user_id in user information (array length limit: 1000) | Yes |
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
{
"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]
| Parameter | Type | Description | Required |
|---|---|---|---|
| file_key | string | File key | Yes |
| type | int | Version history type (0: all; 1: auto saved version; 2: manually saved version) | No |
curl --location \
--request POST \
'{Prefix}/v1/file/version?file_key=qgQ_iuGIgiqEHh-Xrokn7g&type=1'
--header 'Authorization: Bearer {AccessToken}'Response Example
{
"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 Code | Error Message | Description |
|---|---|---|
| 110001 | too may request | API request exceeds rate limits |
| 110002 | invalid parameter | Parameter error |
| 110003 | out of level | Permission error |
| 110004 | not found | Object does not exist |
| 110011 | internal server error | Internal server error |
| 149003 | signature err | Signature error |
| 190001 | server error | Server error |
| 190002 | out of level | Insufficient permissions |
| 190003 | invalid parameter | Parameter error |
| 190101 | user not found | User does not exist |
| 190102 | enterprise not found | Enterprise does not exist |
| 190103 | enterprise error | Enterprise error |
| 190201 | team not found | Team does not exist |
| 190301 | folder not found | Project does not exist |
| 190304 | folder out of limit | Project out of limit |
| 190401 | file not found | File does not exist |
| 190402 | file type err | File type error |
| 190501 | member not found | Member does not exist |
| 190502 | member already exist | Member already exists |
| 190503 | owner cannot modify | Owner cannot be modified |
| 190504 | same as the old one | No change made as the new value is the same as the old one |
Permission value
| Permission Value | Permission Information |
|---|---|
| 0 | No |
| 22 | Viewable |
| 44 | Editable |
| 66 | Administrator |
| 88 | Owner |
Changelog
v1.58
- Added Team Asset Handover
- Added Set Staff Status