API Basics
All API calls must be authenticated with a valid Seafile API key.
curl -H "Authorization: Token 24fd3c026886e3121b2ca630805ed425c272cb96" https://cloud.seafile.com/api2/auth/ping/
The api key can be retrieved by the obtain auth api. See the Quick Start for details.
For each API, we provide curl
examples to illustrate the usage.
Status Code
- 200: OK
- 201: CREATED
- 202: ACCEPTED
- 301: MOVED_PERMANENTLY
- 400: BAD_REQUEST
- 403: FORBIDDEN
- 404: NOT_FOUND
- 409: CONFLICT
- 429: TOO_MANY_REQUESTS
- 440: REPO_PASSWD_REQUIRED
- 441: REPO_PASSWD_MAGIC_REQUIRED
- 500: INTERNAL_SERVER_ERROR
- 520: OPERATION_FAILED
Quick Start
ping
curl https://cloud.seafile.com/api2/ping/
"pong"
obtain auth token
curl -d "username=username@example.com&password=123456" https://cloud.seafile.com/api2/auth-token/
{"token": "24fd3c026886e3121b2ca630805ed425c272cb96"}
auth ping
curl -H "Authorization: Token 24fd3c026886e3121b2ca630805ed425c272cb96" https://cloud.seafile.com/api2/auth/ping/
"pong"
Account
List Accounts
GEThttps://cloud.seafile.com/api2/accounts/
Request parameters
- start (default to 0)
- limit (default to 100)
- scope (default None, accepted values: "LDAP" or "DB")
To retrieve all users, just set both start
and limit
to -1
.
If scope parameter is passed then accounts will be searched inside the specific scope, otherwise it will be used the old approach: first LDAP and, if no account is found, DB.
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/accounts/
Sample response
[
{
"email": "foo@foo.com"
},
{
"email": "bar@bar.com"
}
]
Errors
- 403 Permission error, only administrator can perform this action
Get Account Info
GEThttps://cloud.seafile.com/api2/accounts/{email}/
Request parameters
Sample request
curl -v -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/accounts/user@mail.com/
Sample response
{
"is_staff": false,
"is_active": true,
"id": 2,
"create_time": 1356061187741686,
"usage": 651463187,
"total": 107374182400,
"email": "user@mail.com"
}
Errors
- 403 Permission error, only administrator can perform this action
Check Account Info
GEThttps://cloud.seafile.com/api2/account/info/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/account/info/
Sample response
{
"usage": 26038531,
"total": 104857600,
"email": "user@example.com"
}
Errors
- 403 Invalid token
Create Account
PUThttps://cloud.seafile.com/api2/accounts/{email}/
Request parameters
- password
- is_staff (defaults to False)
- is_active (defaults to True)
Sample request
curl -v -X PUT -d "password=123456" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/accounts/newaccount@gmail.com/
Sample response
...
< HTTP/1.0 201 CREATED
< Location: https://cloud.seafile.com/api2/accounts/newaccount@gmail.com/
...
"success"
Success
Response code 201(Created) is returned and the Location header provides shared link.
Errors
- 403 Permission error, only administrator can perform this action
Update Account
PUThttps://cloud.seafile.com/api2/accounts/{email}/
Request parameters
At least one of followings:
- password
- is_staff
- is_active
- name
- note
- storage
Sample request
curl -v -X PUT -d "password=654321&is_staff=true&storage=1073741824" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/accounts/user@mail.com/
Sample response
...
< HTTP/1.0 200 OK
...
"success"
Success
Response code 200(OK) is returned.
Errors
- 400 Bad Request, keyword password is required
- 403 Permission error, only administrator can perform this action
Delete Account
DELETEhttps://cloud.seafile.com/api2/accounts/{email}/
Sample request
curl -v -X DELETE -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/accounts/newaccount@gmail.com/
Sample response
"success"
Errors
- 403 Permission error, only administrator can perform this action
Get Server Information
GEThttps://cloud.seafile.com/api2/server-info
Note:
- No authentication required.
- Added in seafile community edition server
4.0.5
or pro edition server4.0.3
Sample request
curl https://cloud.seafile.com/api2/server-info/
Sample response
Sample response from a seafile community edition server:
{
"version": "4.0.6",
"features": [
"seafile-basic",
]
}
Sample response from a seafile pro edition server:
{
"version": "4.0.6",
"features": [
"seafile-basic",
"seafile-pro",
"office-preview",
"file-search"
]
}
Starred Files
List starred files
GEThttps://cloud.seafile.com/api2/starredfiles/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e6199b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/starredfiles/
Sample response
[
{
"repo": "99b758e6-91ab-4265-b705-925367374cf0",
"mtime": 1355198150,
"org": -1,
"path": "/foo/bar.doc",
"dir": false,
"size": 0
},
{
"repo": "99b758e6-91ab-4265-b705-925367374cf0",
"mtime": 1353751237,
"org": -1,
"path": "/add_folder-blue.png",
"dir": false,
"size": 3170
}
]
Star A File
POSThttps://cloud.seafile.com/api2/starredfiles/
Request parameters
- repo_id (post)
- p (post)
Sample request
curl -v -d "repo_id=dae8cecc-2359-4d33-aa42-01b7846c4b32&p=/foo.md" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/starredfiles/
Sample response
...
< HTTP/1.0 201 CREATED
< Location: https://cloud.seafile.com/api2/starredfiles/
...
"success"
Success
Response code is 201(Created) and Location header provides url of starred file list.
Errors
- 400
repo_id
orp
is missing, orp
is not valid file path(e.g. /foo/bar/).
Unstar A File
DELETEhttps://cloud.seafile.com/api2/starredfiles/
Request parameters
- repo_id
- p
Sample request
curl -X DELETE -v -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" "https://cloud.seafile.com/api2/starredfiles/?repo_id=dae8cecc-2359-4d33-aa42-01b7846c4b32&p=/foo.md"
Sample response
...
< HTTP/1.0 200 OK
...
"success"
Success
Response code is 200(OK), and a string named "success" is returned.
Errors
- 400
repo_id
orp
is missing, orp
is not valid file path(e.g. /foo/bar/).
User Messages
List User Messages
GEThttps://cloud.seafile.com/api2/user/msgs/{id_or_email}/
Request parameters
- id_or_email
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/user/msgs/2/"
Sample response
{
"to_email": "user@example.com",
"next_page": -1,
"msgs": [
{
"attachments": [
{
"path": "/123.md",
"repo_id": "c7436518-5f46-4296-97db-2fcba4c8c8db"
}
],
"timestamp": 1398233096,
"from_email": "user@example.com",
"msgid": 3,
"msg": "another test msg",
"nickname": "user"
},
{
"attachments": [],
"timestamp": 1398233067,
"from_email": "user@example.com",
"msgid": 2,
"msg": "a test msg",
"nickname": "user"
}
]
}
Errors
- 404 user not found
Reply A User Message
POSThttps://cloud.seafile.com/api2/user/msgs/{id_or_email}/
Request parameters
- id_or_email
- message
Sample request
curl -d "message=this is a user msg reply" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/user/msgs/2/"
Sample response
{
"msgid": 4
}
Errors
- 404 user not found
Count Unseen Messages
GEThttps://cloud.seafile.com/api2/unseen_messages/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/unseen_messages/"
Sample response
{
"count": 1
}
Group
List Groups
GEThttps://cloud.seafile.com/api2/groups/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/groups/"
Sample response
{
"replynum": 0,
"groups": [
{
"ctime": 1398134171327948,
"creator": "user@example.com",
"msgnum": 0,
"mtime": 1398231100,
"id": 1,
"name": "lian"
},
{
"ctime": 1398236081042441,
"creator": "user@example.com",
"msgnum": 0,
"mtime": 0,
"id": 2,
"name": "123"
}
]
}
Add A Group
PUThttps://cloud.seafile.com/api2/groups/
Request parameters
- group_name
Sample request
curl -X PUT -d "group_name=newgroup" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/groups/"
Sample response
{"group_id": 3, "success": true}
Errors
- 400 There is already a group with that name.
Delete Group
DELETEhttps://cloud.seafile.com/api2/groups/{group_id}/
Request parameters
None
Sample request
curl -X DELETE -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/groups/1/"
Success
200 if everything is fine.
Errors
- 400 if ad group id format
- 404 if Group not found
- 403 if Forbid to delete group
- 520 if Failed to remove group (generic error)
Rename Group
POSThttps://cloud.seafile.com/api2/groups/{group_id}/
Request parameters
- operation (value must be "rename")
- newname (the new name for the group)
Sample request
curl -d "operation=rename&newname=pinkfloyd_lovers" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/groups/1/"
Success
200 if everything is fine.
Errors
- 404 if Group not found
- 403 if Forbid to rename group
- 400 if Newname is missing or if Group name is not valid of if There is already a group with that name or Operation can only be rename.
Group Member
Add A Group Member
PUThttps://cloud.seafile.com/api2/groups/{group_id}/members/
Request parameters
- user_name
Sample request
curl -X PUT -d "user_name=user@example.com"-H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/groups/1/members/"
Sample response
{"success": true}
Errors
- 400 invalid group id
- 403 only administrators can add group members
- 404 unable to find group
Delete A Group Member
DELETEhttps://cloud.seafile.com/api2/groups/{group_id}/members/
Request parameters
- user_name
Sample request
curl -X DELETE -d "user_name=user@example.com" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/groups/1/members/"
Sample response
{"success": true}
Errors
- 400 invalid group id
- 403 only administrators can remove group members
- 404 unable to find group
Group Message
Get Group Messages
GEThttps://cloud.seafile.com/api2/group/msgs/{group_id}/
Request parameters
- group_id
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/group/msgs/1/"
Sample response
{
"next_page": -1,
"msgs": [
{
"reply_cnt": 0,
"timestamp": 1398230602,
"replies": [],
"from_email": "user@example.com",
"msgid": 1,
"msg": "test discuss",
"nickname": "user"
}
]
}
Get Group Message Detail
GEThttps://cloud.seafile.com/api2/group/{group_id}/msg/{msg_id}/
Request parameters
- group_id
- msg_id
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/group/1/msg/1/"
Sample response
{
"reply_cnt": 2,
"timestamp": 1398230602,
"replies": [
{
"msg": "this is another test",
"timestamp": 1398232319,
"nickname": "user",
"msgid": 1,
"from_email": "user@example.com"
},
{
"msg": "this is another test",
"timestamp": 1398232508,
"nickname": "user",
"msgid": 3,
"from_email": "user@example.com"
}
],
"from_email": "user@example.com",
"msgid": 1,
"msg": "test discuss",
"nickname": "user"
}
Errors
- 404 message not found
Send A Group Message
POSThttps://cloud.seafile.com/api2/group/msgs/{group_id}/
Request parameters
- message
- group_id
- repo_id(optional)
- path(optional)
Sample request
curl -d "message=this is another test&repo_id=c7436518-5f46-4296-97db-2fcba4c8c8db&path=/123.md" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/group/msgs/1/"
Sample response
{
"msgid": 3
}
Reply A Group Message
POSThttps://cloud.seafile.com/api2/group/{group_id}/msg/{msg_id}
Request parameters
- group_id
- msg_id
- message
Sample request
curl -d "message=this is a reply" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/group/1/msg/1/"
Sample response
{
"msgid": 3
}
Errors
- 404 message not found
Get Group Message Replies
GEThttps://cloud.seafile.com/api2/new_replies/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/new_replies/"
Sample response
[
{
"reply_cnt": 1,
"timestamp": 1398231100,
"replies": [
{
"msg": "@user test reply",
"timestamp": 1398234493,
"nickname": "123",
"msgid": 5,
"from_email": "user@example.com"
}
],
"from_email": "user@example.com",
"att": {
"repo": "c7436518-5f46-4296-97db-2fcba4c8c8db",
"path": "/123.md",
"type": "file",
"src": "recommend"
},
"msgid": 3,
"msg": "this is another test",
"nickname": "user"
}
]
Share
File Share Link
List File Share Links
GEThttps://cloud.seafile.com/api2/shared-links/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/shared-links/"
Sample response
{"fileshares": [{"username": "user@example.com", "repo_id": "a582d3bc-bcf5-421e-9125-741fa56d18d4", "ctime": null, "s_type": "d", "token": "e410827494", "view_cnt": 0, "path": "/123/"}, {"username": "user@example.com", "repo_id": "affc837f-7fdd-4e91-b88a-32caf99897f2", "ctime": null, "s_type": "f", "token": "0ae587a7d1", "view_cnt": 0, "path": "/lian123.md"}]}
Create File Share Link
PUThttps://cloud.seafile.com/api2/repos/{repo-id}/file/shared-link/
Request parameters
- repo-id
- p (Path to the file)
- share_type (optional,
download
orupload
, defaultdownload
) - password (optional)
- expire (optional)
Sample request
Create download link for file
curl -v -X PUT -d "p=/foo.md" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/afc3b694-7d4c-4b8a-86a4-89c9f3261b12/file/shared-link/
Create download link for directory with password and expire date
curl -v -X PUT -d "password=password&expire=6&p=/123/" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/afc3b694-7d4c-4b8a-86a4-89c9f3261b12/file/shared-link/
Create upload link for directory
curl -v -X PUT -d "share_type=upload&p=/123/" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/afc3b694-7d4c-4b8a-86a4-89c9f3261b12/file/shared-link/
Sample response
...
< HTTP/1.0 201 CREATED
< Location: https://cloud.seafile.com/f/9b437a7e55/
...
Success
Response code 201(Created) is returned and the Location header provides shared link.
Errors
- 400 Path is missing
- 400 Password(if link is encrypted) is missing
- 500 Internal server error
Delete File Share Link
DELETEhttps://cloud.seafile.com/api2/shared-links/?t=0ae587a7d1
Request parameters
- t
Sample request
curl -v -X DELETE -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/shared-links/?t=0ae587a7d1"
Sample response
...
< HTTP/1.0 200 OK
...
List Direntry in Dir Download Link
GEThttps://cloud.seafile.com/api2/d/{token}/dir/
Request parameters
- token (upload link token)
- p (sub folder path)
- password (if link is encrypted)
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/d/3af7c46595/dir/?p=/subfolder/"
Sample response
[{"mtime": 1436846750, "type": "dir", "name": "sadof", "id": "1806dbdb700b7bcd49e6275107c7ccf7b3ea1776"}, {"id": "bdb06f6de972c42893fda590ac954988b562429c", "mtime": 1436431020, "type": "file", "name": "test.mdert", "size": 20}]
Shared Libraries
List Shared Libraries
GEThttps://cloud.seafile.com/api2/shared-repos/
Sample request
curl -v -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/shared-repos/
Sample response
[{"repo_id": "7d42522b-1f6f-465d-b9c9-879f8eed7c6c", "share_type": "personal", "permission": "rw", "encrypted": false, "user": "user@example.com", "last_modified": 1361072500, "repo_desc": "ff", "group_id": 0, "repo_name": "u6d4bu8bd5u4e2du6587pdf"}, {"repo_id": "79bb29cd-b683-4844-abaf-433952723ca5", "share_type": "group", "permission": "rw", "encrypted": false, "user": "user@example.com", "last_modified": 1359182468, "repo_desc": "test", "group_id": 1, "repo_name": "test_enc"}]
List Be Shared Libraries
GEThttps://cloud.seafile.com/api2/beshared-repos/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/beshared-repos/"
Sample response
"[{"user": "user@example.com", "repo_id": "989e3952-9d6f-4427-ab16-4bf9b53212eb", "share_type": "personal", "permission": "rw", "encrypted": false, "repo_desc": "lib shared to imwhatiam", "enc_version": false, "last_modified": 1398218747, "is_virtual": false, "group_id": 0, "repo_name": "lib shared to imwhatiam"}]"
Share A Library
PUThttps://cloud.seafile.com/api2/shared-repos/{repo-id}/
Request parameters
- share_type ("personal", "group" or "public")
- user (or users)
- group_id
- permission
If share_type is "personal" then "user" or "users" param are required, if share_type is "group" then "group_id" parameter is required. If share_type is "public" no other params is required.
"user" or "users" parameters can be a comma separated list of emails, in this case the share will be done for more users at the same time. If a problem is encountered during multiple users sharing then the sharing process is aborted.
Sample request
curl -X PUT -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/shared-repos/7d42522b-1f6f-465d-b9c9-879f8eed7c6c/?share_type=group&user=user@example.com&group_id=1&permission=rw"
Sample response
"success"
Unshare A Library
DELETEhttps://cloud.seafile.com/api2/shared-repos/{repo-id}/
Request parameters
- share_type ("personal", "group" or "public")
- user
- group_id
If share_type is "personal" then "user" param is required, if share_type is "group" then "group_id" parameter is required. If share_type is "public" no other params is required.
Sample request
curl -X DELETE -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/shared-repos/7d42522b-1f6f-465d-b9c9-879f8eed7c6c/?share_type=personal&user=user@example.com&group_id=0"
Sample response
"success"
Shared Files
List Shared Files
GEThttps://cloud.seafile.com/api2/shared-files/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/shared-files/"
Sample response
{"priv_share_in": [{"s_type": "f", "repo_id": "989e3952-9d6f-4427-ab16-4bf9b53212eb", "permission": "r", "to_user": "user@example.com", "token": "94aace406a", "from_user": "user@example.com", "path": "/lib.md"}], "priv_share_out": [{"s_type": "f", "repo_id": "affc837f-7fdd-4e91-b88a-32caf99897f2", "permission": "r", "to_user": "user@example.com", "token": "b7b31bc39b", "from_user": "user@example.com", "path": "/lian123.md"}]}
Download Shared File
GEThttps://cloud.seafile.com/api2/f/{token}/
Request parameters
- token(file share token)
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/f/ad93cd0d66/"
Sample response
"http://192.168.1.101:8082/files/89223601/lib.md"
Errors
- 404 repo/token/file not found
- 520 OPERATION FAILED, fail to get file id by path
Get Shared File Detail
GEThttps://cloud.seafile.com/api2/f/{token}/detail/
Request parameters
- token(file share token)
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/f/ad93cd0d66/detail/"
Sample response
{"repo_id": "989e3952-9d6f-4427-ab16-4bf9b53212eb", "name": "lib.md", "mtime": 1398218747, "path": "/lib.md", "type": "file", "id": "0000000000000000000000000000000000000000", "size": 0}
Errors
- 404 repo/token/file not found
- 520 OPERATION FAILED, fail to get file id by path
Delete Shared File
DELETEhttps://cloud.seafile.com/api2/shared-files/?t=0ae587a7d1
Request parameters
- t
Sample request
curl -v -X DELETE -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/shared-files/?t=94aace406a"
Sample response
...
< HTTP/1.0 200 OK
...
Download Private Shared File
GEThttps://cloud.seafile.com/api2/s/f/{token}/
Request parameters
- token(private file share token)
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/s/f/c5aa5f0219/"
Sample response
"http://192.168.1.101:8082/files/6960d5a4/lib.md"
Errors
- 404 repo/token/file not found
- 520 OPERATION FAILED, fail to get file id by path
Get Private Shared File Detail
GEThttps://cloud.seafile.com/api2/s/f/{token}/detail/
Request parameters
- token(private file share token)
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/s/f/c5aa5f0219/detail/"
Sample response
{"repo_id": "989e3952-9d6f-4427-ab16-4bf9b53212eb", "name": "lib.md", "shared_by": "user@example.com", "mtime": 1398218747, "path": "/lib.md", "type": "file", "id": "0000000000000000000000000000000000000000", "size": 0}
Errors
- 404 repo/token/file not found
- 520 OPERATION FAILED, fail to get file id by path
Library
Library
Get Default Library
GEThttps://cloud.seafile.com/api2/default-repo/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/default-repo/"
Sample response
{
"repo_id": "691b3e24-d05e-43cd-a9f2-6f32bd6b800e",
"exists": true
}
Create Default Library
POSThttps://cloud.seafile.com/api2/default-repo/
Sample request
curl -X POST -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/default-repo/"
Sample response
{
"repo_id": "691b3e24-d05e-43cd-a9f2-6f32bd6b800e",
"exists": true
}
List Libraries
GEThttps://cloud.seafile.com/api2/repos/
Sample request
curl -H "Authorization: Token 24fd3c026886e3121b2ca630805ed425c272cb96" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/
Sample response
[
{
"permission": "rw",
"encrypted": false,
"mtime": 1400054900,
"owner": "user@mail.com",
"id": "f158d1dd-cc19-412c-b143-2ac83f352290",
"size": 0,
"name": "foo",
"type": "repo",
"virtual": false,
"desc": "new library",
"root": "0000000000000000000000000000000000000000"
},
{
"permission": "rw",
"encrypted": false,
"mtime": 1400054802,
"owner": "user@mail.com",
"id": "0536b11a-a5fd-4482-9314-728cb3472f54",
"size": 0,
"name": "foo",
"type": "repo",
"virtual": false,
"desc": "new library",
"root": "0000000000000000000000000000000000000000"
}
]
Get Library Info
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/
Request parameters
- repo-id
Sample request
curl -G -H "Authorization: Token 24fd3c026886e3121b2ca630805ed425c272cb96" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/632ab8a8-ecf9-4435-93bf-f495d5bfe975/
Sample response
{
"encrypted": false,
"password_need": null,
"mtime": null,
"owner": "self",
"id": "632ab8a8-ecf9-4435-93bf-f495d5bfe975",
"size": 1356155,
"name": "org",
"root": "b5227040de360dd22c5717f9563628fe5510cbce",
"desc": "org file",
"type": "repo"
}
Get Library Owner
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/owner/
Request parameters
- repo-id
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d9b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/owner/
Sample response
{
"owner": "user@example.com"
}
Errors
- 403 Permission error, only administrator can perform this action
Get Library History
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/history/
Request parameters
- repo-id
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d9b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/history/
Sample response
{"commits": [{"rev_file_size": 0, "rev_file_id": null, "ctime": 1398045167, "creator_name": "imwhatiam123@gmail.com", "creator": "0000000000000000000000000000000000000000", "root_id": "ca2625da6be6e211ddd584615ef3bfaa531e66aa", "rev_renamed_old_path": null, "parent_id": "205c469f0830df09b13024601524058757a43128", "new_merge": false, "repo_id": "691b3e24-d05e-43cd-a9f2-6f32bd6b800e", "desc": "Modified "api.md"", "id": "eb62721812e0c3122889b5facde971b353ad176b", "conflict": false, "second_parent_id": null}, {"rev_file_size": 0, "rev_file_id": null, "ctime": 1398045158, "creator_name": "imwhatiam123@gmail.com", "creator": "0000000000000000000000000000000000000000", "root_id": "0b7a31adf4ea8b29ad5a5920420b548da11dd32f", "rev_renamed_old_path": null, "parent_id": "2ba85ee6072efea51a3483843ea7de9b6d1d1eb2", "new_merge": false, "repo_id": "691b3e24-d05e-43cd-a9f2-6f32bd6b800e", "desc": "Added "api.md"", "id": "205c469f0830df09b13024601524058757a43128", "conflict": false, "second_parent_id": null}], "page_next": false}
Create Library
POSThttps://cloud.seafile.com/api2/repos/
Request parameters
- name
- desc (defaults to "new repo")
- passwd (needed by encrypt library)
Sample request
curl -v -d "name=foo&desc=new library" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/
Sample response
{
"encrypted": "",
"enc_version": 0,
"repo_id": "f15811fd-5c19-412c-b143-2ac83f352290",
"magic": "",
"relay_id": "c5e41170db250ea497075e2911104faf0105b7fb",
"repo_version": 1,
"relay_addr": "cloud.seafile.com",
"token": "c1f3defe9ba408cd7964427ec276843e9d10c23b",
"relay_port": "10001",
"random_key": "",
"email": "user@mail.com",
"repo_name": "foo"
}
Success
Response code 200 and newly created library information are returned.
Errors
- 400 Library name missing.
- 520 Operation failed.
Check/Create Sub Library
check if a dir has a corresponding sub_repo, if it does not have, create one
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/dir/sub_repo/?p=/&name=sub_lib
Request parameters
- repo-id
- p
- name
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d9b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/dir/sub_repo/?p=/&name=sub_lib
Sample response
{"sub_repo_id": "c0a3283c-013c-4a7c-8f68-006f06fa6dec"}
Errors
- 400 Argument missing
- 500 INTERNAL SERVER ERROR
Delete Library
DELETEhttps://cloud.seafile.com/api2/repos/{repo-id}/
Sample request
curl -v -X DELETE -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/8f5f2222-72a8-454f-ac40-8397c5a556a8/
Sample response
"success"
Errors
400 Library does not exist.
403 Only library owner can perform this operation.
Decrypt Library
POSThttps://cloud.seafile.com/api2/repos/{repo-id}/
Request parameters
- password
Sample request
curl -v -d "password=123" -H "Authorization: Token e6a33d61954f219a96b60f635cf02717964e4385" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/0c2465a5-4753-4660-8a22-65abec9ec8d0/
Sample response
"success"
Errors
- 400 Incorrect password
- 409 Repo is not encrypt
- 500 Internal server error
Create Public Library
POSThttps://cloud.seafile.com/api2/repos/{repo-id}/public/
Request parameters
- repo-id
Sample request
curl -X POST -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d9b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/public/
Sample response
...
< HTTP/1.0 200 OK
...
Success
Response code is 200(OK), and a string "success" is returned.
Errors
- 404 Repo not found
- 403 Forbid to access this repo
- 500 INTERNAL SERVER ERROR, Unable to make repo public
Remove Public Library
DELETEhttps://cloud.seafile.com/api2/repos/{repo-id}/public/
Request parameters
- repo-id
Sample request
curl -X DELETE -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d9b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/public/
Sample response
...
< HTTP/1.0 200 OK
...
Success
Response code is 200(OK), and a string "success" is returned.
Errors
- 404 Repo not found
- 403 Forbid to access this repo
- 500 INTERNAL SERVER ERROR, Unable to remove public repo
Fetch library download info
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/download-info/
Request parameters
- repo-id
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d9b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/download-info/
Sample response
{
"applet_root": "https://localhost:13420",
"relay_addr": "localhost",
"token": "46acc4d9ca3d6a5c7102ef379f82ecc1edc629e1",
"repo_id": "dae8cecc-2359-4d33-aa42-01b7846c4b32",
"relay_port": "10002",
"encrypted": "",
"repo_name": "test",
"relay_id": "8e4b13b49ca79f35732d9f44a0804940d985627c",
"email": "user@example.com"
}
List Virtual Libraries
GEThttps://cloud.seafile.com/api2/virtual-repos/
Sample request
curl -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/virtual-repos/"
Sample response
{"virtual-repos":
[
{"virtual_perm": "rw", "store_id": null, "worktree_invalid": false, "encrypted": false, "origin_repo_name": "lian", "last_modify": 0, "no_local_history": false, "head_branch": null, "last_sync_time": 0, "id": "51344de8-456f-4dc7-ac08-718827994252", "size": 0, "share_permission": null, "worktree_changed": false, "worktree_checktime": 0, "origin_path": "/lian", "is_virtual": true, "origin_repo_id": "a582d3bc-bcf5-421e-9125-741fa56d18d4", "version": 1, "random_key": null, "is_original_owner": true, "shared_email": null, "enc_version": 0, "head_cmmt_id": "bc666fdc60d2352b9f6a0324ac64168d43724eed", "desc": null, "index_corrupted": false, "magic": null, "name": "lian", "worktree": null, "auto_sync": false, "relay_id": null},
{"virtual_perm": "rw", "store_id": null, "worktree_invalid": false, "encrypted": false, "origin_repo_name": "lian", "last_modify": 0, "no_local_history": false, "head_branch": null, "last_sync_time": 0, "id": "c0a3283c-013c-4a7c-8f68-006f06fa6dec", "size": 0, "share_permission": null, "worktree_changed": false, "worktree_checktime": 0, "origin_path": "/", "is_virtual": true, "origin_repo_id": "a582d3bc-bcf5-421e-9125-741fa56d18d4", "version": 1, "random_key": null, "is_original_owner": true, "shared_email": null, "enc_version": 0, "head_cmmt_id": "ff18229aadc9acc73ad481278d5b4c42b3353aa0", "desc": null, "index_corrupted": false, "magic": null, "name": "123", "worktree": null, "auto_sync": false, "relay_id": null}
]
}
Search Libraries
GEThttps://cloud.seafile.com/api2/search/
Request parameters
- q
- per_page (optional)
Sample request
curl -G -H "Authorization: Token 24fd3c026886e3121b2ca630805ed425c272cb96" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/search/?q=keyword
Sample response
{
"has_more": false,
"total": 3,
"results": [
{
"repo_id": "691b3e24-d05e-43cd-a9f2-6f32bd6b800e",
"name": "api.md",
"oid": "8ea78453bb474359cd9d8e2c4c4d8d9cbdcef0a2",
"last_modified": 1398045167,
"fullpath": "/api.md",
"size": 18939
},
{
"repo_id": "c5509062-9bca-4933-a7e0-c6da1d5f82be",
"name": "home.md",
"oid": "dda57aaffa5179829e064c7d0c142f47a8a65d3b",
"last_modified": 1397096831,
"fullpath": "/home.md",
"size": 1954
},
{
"repo_id": "c5509062-9bca-4933-a7e0-c6da1d5f82be",
"name": "u5e38u89c1u5b89u88c5u95eeu9898.md",
"oid": "8573f982eeb478b932a55ec13218f4f90a7c5a27",
"last_modified": 1397188959,
"fullpath": "/u5e38u89c1u5b89u88c5u95eeu9898.md",
"size": 1050
}
]
}
Errors
- 404 Search not supported.
- 400 Missing argument q.
File
Download File
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/file/?p=/foo
Request parameters
- repo-id
- p
Sample request
curl -v -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/?p=/foo.c
Sample response
"https://cloud.seafile.com:8082/files/adee6094/foo.c"
Errors
- 400 Path is missing
- 404 File not found
- 520 Operation failed.
Get File Detail
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/file/detail/?p=/foo.c
- repo-id
- p
Sample request
curl -H "Authorization: Token f2210dacd3606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/detail/?p=/foo.c
Sample response
{
"id": "013d3d38fed38b3e8e26b21bb3463eab6831194f",
"mtime": 1398148877,
"type": "file",
"name": "foo.py",
"size": 22
}
Errors
- 400 Path is missing
- 520 Operation failed.
Get File History
GEThttps://cloud.seafile.com/api2/repos/{repo-id}/file/history/?p=/foo.c
Request parameters
- repo-id
- p
Sample request
curl -H "Authorization: Token f2210dacd3606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/history/?p=/foo.c
Sample response
{
"commits":
[
{
"rev_file_size": 0,
"repo_id": "a582d3bc-bcf5-421e-9125-741fa56d18d4",
"ctime": 1398149763,
"creator_name": "user@example.com",
"creator": "0000000000000000000000000000000000000000",
"root_id": "b64d413d9894c9206beac3faf9c2a0d75b4a8ebf",
"rev_renamed_old_path": null,
"parent_id": "8e546762e1657ab22dad83e9cb1e5ea31a767c9a",
"new_merge": false,
"version": 1,
"conflict": false,
"desc": "Added "foo.c"",
"id": "9464f7499bfa7363d563282361339eaf96a93318",
"rev_file_id": "0000000000000000000000000000000000000000",
"second_parent_id": null
},
{
"rev_file_size": 0,
"repo_id": "a582d3bc-bcf5-421e-9125-741fa56d18d4",
"ctime": 1398146059,
"creator_name": "user@example.com",
"creator": "0000000000000000000000000000000000000000",
"root_id": "572413414257c76039897e00aeb35f819471206b",
"rev_renamed_old_path": null,
"parent_id": "f977bdb0ebb205645c3b42216c2817e511c3f68f",
"new_merge": false,
"version": 1,
"conflict": false,
"desc": "Added "foo.c"",
"id": "a1ec20709675f4dc8db825cdbca296be245d189b",
"rev_file_id": "0000000000000000000000000000000000000000",
"second_parent_id": null
}
]
}
Errors
- 400 Path is missing
- 404 File not found
Download File From a Revision
Request parameters
- repo-id
- p
- commit_id
Sample request
curl -H "Authorization: Token f2210dacd3606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/revision/?p=/foo.c&commit_id=a1ec20709675f4dc8db825cdbca296be245d189b
Sample response
"https://cloud.seafile.com:8082/files/adee6094/foo.c"
Errors
- 400 Path is missing
- 404 Revision not found
Create File
POSThttps://cloud.seafile.com/api2/repos/{repo-id}/file/?p=/foo.c
Request parameters
- repo-id
- p
- operation
Sample request
curl -v -d "operation=create" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/?p=/foo.c
Sample response
...
< HTTP/1.1 201 CREATED
...
"success"
Success
Response code is 201, and a string "success"
is returned.
Errors
- 403 FORBIDDEN, You do not have permission to move file
- 520 OPERATION FAILED, fail to create file
Rename File
POSThttps://cloud.seafile.com/api2/repos/{repo-id}/file/?p=/foo.c
Request parameters
- repo-id
- p
- operation
- newname
Sample request
curl -v -d "operation=rename&newname=newfoo.c" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/?p=/foo.c
Sample response
...
< HTTP/1.1 301 MOVED PERMANENTLY
...
"success"
Success
Response code is 301, and a string "success"
is returned.
Errors
- 400 BAD REQUEST, Path is missing or invalid(e.g. p=/) or newname is missing(newname too long)
- 403 FORBIDDEN, You do not have permission to rename file
- 404 NOT FOUND, repo not found
- 409 CONFLICT, the newname is the same to the old
- 520 OPERATION FAILED, fail to rename file
Lock File
PUThttps://cloud.seafile.com/api2/repos/{repo-id}/file/
Request parameters
- repo-id
- p
- operation
Sample request
curl -v -X PUT -d "operation=lock&p=/foo.c" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/
Sample response
...
< HTTP/1.0 200 OK
...
"success"
Success
Response code is 200, and a string "success"
is returned.
Errors
- 400 BAD REQUEST, Path is missing or invalid(e.g. p=/)
- 403 FORBIDDEN, You do not have permission to lock file
- 404 NOT FOUND, repo not found
- 520 OPERATION FAILED, fail to lock file
Unlock File
PUThttps://cloud.seafile.com/api2/repos/{repo-id}/file/
Request parameters
- repo-id
- p
- operation
Sample request
curl -v -X PUT -d "operation=unlock&p=/foo.c" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/
Sample response
...
< HTTP/1.0 200 OK
...
"success"
Success
Response code is 200, and a string "success"
is returned.
Errors
- 400 BAD REQUEST, Path is missing or invalid(e.g. p=/)
- 403 FORBIDDEN, You do not have permission to lock file
- 404 NOT FOUND, repo not found
- 520 OPERATION FAILED, fail to unlock file
Move File
POSThttps://cloud.seafile.com/api2/repos/{repo-id}/file/?p=/foo.c
Request parameters
- repo-id
- p
- operation
- dst_repo
- dst_dir
Sample request
curl -v -d "operation=move&dst_repo=affc837f-7fdd-4e91-b88a-32caf99897f2&dst_dir=/" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; charset=utf-8; indent=4" https://cloud.seafile.com/api2/repos/dae8cecc-2359-4d33-aa42-01b7846c4b32/file/?p=/foo.c
Sample response
...
< HTTP/1.1 301 MOVED PERMANENTLY
...
"success"
Success
Response code is 301, and a string "success"
is returned.
Errors
- 400 BAD REQUEST, Path is missing or invalid(e.g. p=/)
- 403 FORBIDDEN, You do not have permission to move file
- 404 NOT FOUND, repo not found
- 500 INTERNAL SERVER ERROR
Copy File
POSThttps://cloud.seafile.com/api2/repos/{repo_id}/fileops/copy/
Request parameters
- p: source folder path, defaults to
"/"
- file_names: list of file/folder names to copy. Multiple file/folder names can be seperated by
:
. - dst_repo: the destination repo id
- dst_dir: the destination folder in
dst_repo
Sample request
curl -d "dst_repo=73ddb2b8-dda8-471b-b7a7-ca742b07483c&dst_dir=/&file_names=foo.c" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" "https://cloud.seafile.com/api2/repos/c7436518-5f46-4296-97db-2fcba4c8c8db/fileops/copy/
Sample response
"success"
Errors
- 400 missing argument
- 403 You do not have permission to copy file
- 404 repo not found
- 502 failed to copy file
Revert File
PUThttps://cloud.seafile.com/api2/repos/{repo_id}/file/revert/
Request parameters
- repo_id
- p
- commit_id
Sample request
curl -v -X PUT -d "commit_id=a1ec20709675f4dc8db825cdbca296be245d189b&p=/foo.c" -H "Authorization: Token f2210dacd9c6ccb8133606d94ff8e61d99b477fd" -H "Accept: application/json; indent=4" https://cloud.seafile.com/api2/repos/8f5f2222-72a8-454f-ac40-8397c5a556a8/file/rever- 文章导航