Testing
openapi: 3.0.3
info:
title: Quatrix API
description: Download and upload files or folders, share them with predefined security
options, manage your account and profile settings and a lot more functionalities
can be easily integrated into your application using our Quatrix APIs. Learn more
how to authenticate the Quatrix session, how to construct JSON formatted API calls
and what responses to expect in our [API Guide](https://docs.maytech.net/display/MD/Quatrix+API).
version: 1.0.0
servers:
- url: https://{account_name}.quatrix.it/{basePath}
description: Base url
variables:
account_name:
default: api
description: 'this value is assigned by the service provider, in this example `gigantic-server.com`'
basePath:
default: api/1.0
security:
- session_id: []
- bearerAuth: []
tags:
- name: Auth
description: Authenticate Quatrix account
- name: Account
description: Get general information about the current account
- name: Language
description: Get details about account language
- name: Contact
description: Create and manage contacts
- name: PGP
description: Generate and manage PGP keys
- name: Group
description: Get information about users and contacts
- name: File
description: Retrieve and modify files/folders (hereinafter files)
- name: Upload
description: Upload files
- name: Password Reset
description: Reset password for existing users
- name: Preview
description: Preview photos, videos or files
- name: Profile
description: Update profile information of the user
- name: MFA
description: Enable and disable MFA
- name: Project Folder
description: Create and manage project folders
- name: Site Settings
description: Manage service settings
- name: User
description: Create and manage users
- name: Widget
description: Set the widget
- name: Share
description: Create shares, quicklinks, file sharing requests
- name: ActivityLog
description: Track activity history
- name: Service
description: Get information about the service
- name: Automation
description: Create and administer automatic rules
- name: Inbox
description: Activity tracking of a logged-in contact
- name: SSH-Key
description: Create and manage SSH keys
- name: API-Key
description: Create and manage API keys
- name: Branding
description: Create/update email branding
- name: Tags
description: Manage file tags
paths:
/session/login:
get:
tags:
- Auth
summary: Log in and get session ID details
description: |
Get session information for the given session ID and log in to the account.
The easiest way to authenticate is using [Basic HTTP Authentication Scheme](https://en.wikipedia.org/wiki/Basic_access_authentication).
To proceed with the authorization, you need to have Quatrix account. If you don’t have the one, you can set up a free trial account [here](https://www.maytech.net/freetrial.html#trial=qtrx).
As the basic authentication requires the authentication of the user with the user ID and password, the Authorization header should be constructed as follows:
1. The user email and password are combined with a single colon. (:)
2. The resulting string is encoded using a variant of Base64.
3. The authorization method and a space is then prepended to the encoded string, separated with a space (e.g. "Basic ").
For example, 'test@example.com' as the user email and 'qwerty' as the password, then the field's value is the following:
base64-encoding of test@example.com:qwerty, or dGVzdEBleGFtcGxlLmNvbTpxd2VydHk=.
The authorization header will appear as
'Authorization: Basic dGVzdEBleGFtcGxlLmNvbTpxd2VydHk='
responses:
200:
description: Login success response
content:
application/json:
schema:
$ref: '#/components/schemas/SessionLoginResp'
207:
description: MFA required
headers:
Mfa-Code:
description: MFA code
schema:
type: number
enum:
- 61
- 71
- 73
content:
application/json:
schema:
$ref: '#/components/schemas/SessionLoginResp'
401:
$ref: '#/components/responses/Unauthorized'
security:
- basicAuth: []
post:
security:
- session_id: []
tags:
- Auth
- MFA
summary: Log in to the account using MFA
description: |
Use to generate a session login token in scenarios in which 2FA or PIN are required.
requestBody:
content:
application/json:
schema:
title: SessionLoginPostResp
required:
- auth_type
- code
type: object
properties:
auth_type:
type: string
enum:
- 2FA
- PIN
code:
type: string
description: Auth code for MFA
required: true
responses:
200:
description: Login success response
content:
application/json:
schema:
$ref: '#/components/schemas/SessionLoginResp'
401:
$ref: '#/components/responses/Unauthorized'
/session/keepalive:
get:
tags:
- Auth
summary: Refresh session expiration time
description: |
Refresh the existing session using the ID for the session. The session will expire if there were no API actions for 15 minutes.
responses:
200:
description: Keepalive success response
content: {}
401:
$ref: '#/components/responses/Unauthorized'
/session/logout:
get:
tags:
- Auth
summary: Close the user's session
description: |
Close the session for the currently logged in user.
responses:
200:
description: Logout success response
content: {}
/session/unblock-captcha:
get:
tags:
- Auth
summary: Unblock the session using CAPTCHA
description: |
Enter CAPTCHA to log in the user to the current session.
parameters:
- name: token
in: query
required: true
schema:
type: string
responses:
200:
description: Captcha is passed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SessionUnblockCaptchaResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
description: Captcha is wrong
content:
application/json:
schema:
$ref: '#/components/schemas/SessionUnblockCaptchaResp'
/account/metadata:
get:
security: []
tags:
- Account
summary: Get account metadata
description: |
Retrieve general settings for the account e.g. status of the user, identity providers, language, set logo and banner text.
responses:
200:
description: Account metadata
content:
application/json:
schema:
title: AccountMetadataResp
type: object
properties:
status:
type: string
title:
type: string
language:
type: string
default_logo:
type: boolean
/account/roles:
get:
tags:
- Account
summary: Call users of the account
description: |
Get the list of the current account users with their IDs, names and emails
responses:
200:
description: List of account roles
content:
application/json:
schema:
title: AccountRolesResp
type: array
items:
title: AccountRolesRespItems
type: object
properties:
id:
type: string
format: uuid
email:
type: string
format: email
name:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/account/logo:
get:
security: []
tags:
- Account
summary: Get account logo
description: |
Retrieve the logo set for the current account.
responses:
200:
description: Logo body
content: {}
/account/info:
get:
tags:
- Account
summary: Get account usage info
description: |
Retrieve details of the account e.g. service settings, virus scan details, available and used storage, set automations, etc.
responses:
200:
description: Account info
content:
application/json:
schema:
title: AccountInfoResp
type: object
properties:
id:
type: string
format: uuid
key:
type: string
base:
type: boolean
properties:
type: object
format: json
description: account service properties json
server_location:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/account/list:
get:
tags:
- Account
summary: List user accounts
description: |
Get the list with user accounts displaying the ID, host name, plan and status.
responses:
200:
description: Account list
content:
application/json:
schema:
title: AccountListResp
type: array
items:
title: AccountListRespItems
type: object
properties:
id:
type: string
hostname:
type: string
plan:
type: string
status:
type: string
current:
type: boolean
description: true if logged in to this account
401:
$ref: '#/components/responses/Unauthorized'
/languages:
get:
tags:
- Language
summary: List available languages
description: |
Get the list of languages that can be set for the account. English and Chinese are currently available.
responses:
200:
description: Language list
content:
application/json:
schema:
title: LanguagesResp
type: array
items:
title: LanguagesRespItems
type: object
properties:
id:
type: string
name:
type: string
filename:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/languages/default:
get:
security: []
tags:
- Language
summary: Get default language
description: |
Get the default language ID. English (GB) is set as the default language for Quatrix.
responses:
200:
description: Default language id
content:
application/json:
schema:
title: LanguagesDefaultResp
type: object
properties:
id:
type: string
/contact:
get:
tags:
- Contact
summary: List user contacts
description: |
Retrieve the list of contacts (personal and site) available in the current account.
responses:
200:
description: Contact list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ContactResp'
401:
$ref: '#/components/responses/Unauthorized'
/contact/metadata/{id}:
get:
tags:
- Contact
summary: Get contact metadata
description: |
Retrieve contact details containing the ID, name, email, status, time it was created, PGP key details, assigned group and permissions.
parameters:
- $ref: '#/components/parameters/ContactId'
responses:
200:
description: Contact metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ContactResp'
401:
$ref: '#/components/responses/Unauthorized'
/contact/create:
post:
tags:
- Contact
summary: Create a new contact
description: |
Add a new contact to the account. The contact will be assigned a unique ID that can be used to look up the contact inside of Quatrix later.
requestBody:
content:
application/json:
schema:
title: ContactCreateReq
required:
- name
- email
type: object
properties:
name:
maxLength: 511
minLength: 1
type: string
email:
maxLength: 254
minLength: 6
type: string
description: valid email
personal:
type: boolean
description: should be 'true' for personal contact
groups:
type: array
description: Group IDs. Could be omitted for site contact.
items:
type: string
format: uuid
required: true
responses:
201:
description: Contact metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ContactResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
example:
msg: Email is already taken
code: 32
details: {}
401:
$ref: '#/components/responses/Unauthorized'
/contact/edit/{id}:
post:
tags:
- Contact
summary: Edit contact metadata
description: |
Use to edit the existing contact details.
parameters:
- name: id
in: path
description: ID of a contact
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: ContactEditResp
type: object
properties:
name:
maxLength: 511
minLength: 1
type: string
email:
maxLength: 254
minLength: 6
type: string
description: valid email
personal:
type: boolean
description: should be 'true' for personal contact
groups:
type: array
description: Group IDs. Could be omitted for site contact.
items:
type: string
format: uuid
required: false
responses:
200:
description: Contact metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ContactResp'
401:
$ref: '#/components/responses/Unauthorized'
/contact/delete:
post:
tags:
- Contact
summary: Delete a contact
description: |
Delete an existing contact from the account.
requestBody:
description: IDs of a contacts
content:
application/json:
schema:
$ref: '#/components/schemas/IdsReq'
required: true
responses:
200:
description: Contact ids
content:
application/json:
schema:
title: ContactDeleteResp
type: array
items:
title: ContactDeleteRespItems
type: object
properties:
id:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/contact/upgrade/{id}:
get:
tags:
- Contact
summary: Upgrade a contact
description: |
Convert an existing contact to the user.
parameters:
- name: id
in: path
description: ID of a contact
required: true
schema:
type: string
format: uuid
responses:
200:
description: User metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ContactUpgradeResp'
401:
$ref: '#/components/responses/Unauthorized'
/contact/pgp-key/{id}:
get:
tags:
- Contact
- PGP
summary: Get contact's PGP key
description: |
Use to retrieve PGP key generated by the contact.
parameters:
- name: id
in: path
description: ID of a contact
required: true
schema:
type: string
format: uuid
responses:
200:
description: PGP key metadata object
content:
application/json:
schema:
$ref: '#/components/schemas/PgpKeyResp'
401:
$ref: '#/components/responses/Unauthorized'
403:
description: PGP management is disabled
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
404:
description: Contact doesn't have a PGP key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
deprecated: true
/contact/group:
get:
tags:
- Contact
- Group
summary: List available contact groups.
description: |
Get a list of available contact groups.
responses:
200:
description: Contact groups metadata object
content:
application/json:
schema:
title: ContactGroupResp
type: array
items:
title: ContactGroupRespItems
type: object
properties:
id:
type: string
format: uuid
name:
type: string
global:
type: boolean
readonly:
type: boolean
401:
$ref: '#/components/responses/Unauthorized'
/file/metadata:
get:
tags:
- File
summary: Get metadata of files
description: |
Get information about files in the current User Home folder.
parameters:
- $ref: '#/components/parameters/FileContentFlag'
responses:
200:
description: File metadata object
content:
application/json:
schema:
$ref: '#/components/schemas/FileMetadataGetResp'
401:
$ref: '#/components/responses/Unauthorized'
post:
tags:
- File
summary: Modify file metadata
description: |
Update file metadata with the given payload.
requestBody:
content:
application/json:
schema:
title: FileMetadataPostReq
required:
- id
type: object
properties:
id:
type: string
format: uuid
mtime:
type: number
format: timestamp
required: true
responses:
200:
description: File metadata
content:
application/json:
schema:
title: FileMetadataPostResp
type: object
properties:
id:
type: string
description: File ID
format: uuid
parent_id:
type: string
description: File parent ID
format: uuid
name:
type: string
description: File name
created:
type: number
description: File creation timestamp
modified:
type: number
description: File modification timestamp
modified_ms:
type: number
description: File modification timestamp with microseconds
format: timestamp
size:
type: number
description: File size in bytes
format: int
type:
type: string
description: File type
gid:
type: number
description: Unix group id
format: int
uid:
type: number
description: Unix user id
format: int
metadata:
type: object
properties: {}
description: File metadata json
operations:
type: number
description: File operations bitmask
format: int
/file/metadata/{id}:
get:
tags:
- File
summary: Get all file metadata
description: |
Retrieve all metadata associated with a given file. If ID endpoint is not provided, get the metadata of a current Use Home folder.
parameters:
- $ref: '#/components/parameters/FileId'
- $ref: '#/components/parameters/FileContentFlag'
responses:
200:
description: File metadata object
content:
application/json:
schema:
$ref: '#/components/schemas/FileMetadataGetResp'
401:
$ref: '#/components/responses/Unauthorized'
/file/info/{id}:
get:
tags:
- File
summary: Get file info
description: |
Retrieve the file information by the specified ID.
parameters:
- $ref: '#/components/parameters/FileId'
responses:
200:
description: File info object
content:
application/json:
schema:
title: FileInfoResp
type: object
properties:
id:
type: string
description: File ID
format: uuid
created:
type: number
description: File creation timestamp
modified:
type: number
description: File modification timestamp
content_modified:
type: number
description: File content modification timestamp
name:
type: string
description: File name
size:
type: number
description: File size in bytes
format: int
type:
type: string
description: File type
file_owner:
type: object
properties: {}
description: Owner of the file
action_role:
type: object
properties: {}
description: User role who created or uploaded the file
paths:
type: object
properties: {}
description: Path and type of path to the file
antivirus_check:
type: string
description: Antivirus check result. Null if file is not infected
widget_metadata:
type: object
properties: {}
description: The data is submitted with the file, if it was uploaded
via widget
401:
$ref: '#/components/responses/Unauthorized'
/file/size/{id}:
get:
tags:
- File
summary: Get file size
description: |
Get details about the file size by the given ID.
parameters:
- $ref: '#/components/parameters/FileId'
responses:
200:
description: File size
content:
application/json:
schema:
title: FileSizeResp
type: object
properties:
size:
type: number
description: File size in bytes
format: int
401:
$ref: '#/components/responses/Unauthorized'
/file/copy:
post:
tags:
- File
summary: Copy files
description: |
Creates a copy of a file or a folder. The original version of the file will not be changed. On success 202 response it returns “job_id”. To check the result, see the API call “job/status".
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CopyMoveFilesReq'
required: true
responses:
202:
description: Job response object
content:
application/json:
schema:
$ref: '#/components/schemas/JobResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/delete:
post:
tags:
- File
summary: Delete files
description: |
Move a file or folder to Trash. If you delete less than 10 files, it returns 200 and the IDs of the deleted files. In case you delete more than 10 files, the API returns 202 response.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdsReq'
required: true
responses:
200:
description: File ids if requested ids <= 10
content:
application/json:
schema:
$ref: '#/components/schemas/IdsResp'
202:
description: Job response object if requested ids > 10
content:
application/json:
schema:
$ref: '#/components/schemas/JobResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/empty-trash/{id}:
post:
tags:
- File
summary: Empty trash
description: |
Permanently delete all files from Trash by the given Trash ID. If the ID is not provided, empty the Trash of the logged-in user.
parameters:
- $ref: '#/components/parameters/FileId'
responses:
200:
description: Empty trash response
content:
application/json:
schema:
title: EmptyTrashResp
type: array
items:
title: EmptyTrashRespItems
type: object
properties:
id:
type: string
format: uuid
source_id:
type: string
format: uuid
dest_id:
type: string
format: uuid
401:
$ref: '#/components/responses/Unauthorized'
/file/move:
post:
tags:
- File
summary: Move files
description: |
Move a file or folder from one location to another.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CopyMoveFilesReq'
required: true
responses:
200:
description: File ids if requested ids <= 10
content:
application/json:
schema:
$ref: '#/components/schemas/IdsResp'
202:
description: Job response object if requested ids > 10
content:
application/json:
schema:
$ref: '#/components/schemas/JobResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/makedir:
post:
tags:
- File
summary: Create a new folder
description: |
Create a new folder
requestBody:
content:
application/json:
schema:
title: MakeDirReq
type: object
properties:
target:
type: string
format: uuid
name:
type: string
format: filename
resolve:
type: boolean
default: true
required: true
responses:
201:
description: File metadata object
content:
application/json:
schema:
$ref: '#/components/schemas/FileResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/csv/{id}:
get:
tags:
- File
summary: Download CSV file with Folder Content
description: |
Return CSV file with information containing file metadata. It contains the path for each file displaying the hierarchy of files.
parameters:
- name: id
in: path
description: File action ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Folder Map
content:
text/csv:
schema:
title: FileCsvResp
type: object
properties:
Path:
type: string
description: File Path
Name:
type: string
description: File name
Size:
type: number
description: File Size
Type:
type: string
description: File Type (F-file, D-directory, T-trash)
enum:
- D
- F
- T
Created:
type: string
description: File creation time
Modified:
type: string
description: File modification time
Content_modified:
type: string
description: File content modification time
Created_by:
type: object
properties: {}
description: Who created a file
Owner:
type: object
properties: {}
description: Who owns a file
description: File content
400:
description: Parameter Error
content:
text/csv:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
description: Unauthorized
content:
text/csv:
schema:
$ref: '#/components/schemas/ErrorModel'
/file/rename/{id}:
post:
tags:
- File
summary: Rename a file
description: |
Change a file name.
parameters:
- $ref: '#/components/parameters/FileId'
requestBody:
content:
application/json:
schema:
title: FileRenameReq
type: object
properties:
name:
type: string
format: filename
resolve:
type: boolean
default: true
required: true
responses:
200:
description: File metadata object
content:
application/json:
schema:
title: FileRenameResp
type: object
properties:
id:
type: string
description: File ID
format: uuid
created:
type: number
description: File creation timestamp
modified:
type: number
description: File modification timestamp
name:
type: string
description: File name
parent_id:
type: string
description: File parent ID
format: uuid
size:
type: number
description: File size in bytes
format: int
type:
type: string
description: File type
metadata:
type: object
properties: {}
description: File metadata json
operations:
type: number
description: File operations bitmask
format: int
old_name:
type: string
description: File name before rename
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/tags/{id}:
get:
tags:
- File
- Tags
summary: Get a list of file tags
description: |
Retrieve a list of available file tags.
operationId: getTagsByFileID
parameters:
- $ref: '#/components/parameters/FileId'
responses:
200:
description: List of file tags
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FileTagResp'
401:
$ref: '#/components/responses/Unauthorized'
/file/add-tag/{id}:
post:
tags:
- File
- Tags
summary: Add a file tag
description: |
Add a tag to filter the file list.
operationId: addTagByFileID
parameters:
- $ref: '#/components/parameters/FileId'
requestBody:
content:
application/json:
schema:
title: FileAddTagReq
type: object
properties:
type:
type: string
value:
type: string
required: true
responses:
200:
description: File tag
content:
application/json:
schema:
$ref: '#/components/schemas/FileTagResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/tags/parent/{id}:
post:
tags:
- File
- Tags
summary: Get a list of tags for files in folder
description: |
Retrieve a list of available file tags.
operationId: getTagsByParentID
parameters:
- name: id
in: path
description: ID of a parent(folder)
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: FileTagTypes
type: object
properties:
tag_types:
type: array
items:
type: string
enum:
- text
- from
- to
default:
- text
required: false
responses:
200:
description: List of file tags
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FileTagByParentResp'
401:
$ref: '#/components/responses/Unauthorized'
/file/download-link:
post:
tags:
- File
summary: Get download link
description: |
Get a unique key for downloading files.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdsReq'
required: true
responses:
200:
description: Download link id
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/download/{id}:
get:
tags:
- File
summary: Download file
description: |
Download a file or files by given ID. Multiple file download returns files in Zip format.
parameters:
- name: id
in: path
description: ID of a file download link
required: true
schema:
type: string
format: uuid
responses:
200:
description: File content
401:
description: Unauthorized
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/ErrorModel'
/file/search:
post:
tags:
- File
summary: Search files
description: |
Search any file by the given directory.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchReq'
required: true
responses:
200:
description: Files list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FileSearchResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/preview/{id}:
get:
tags:
- File
- Preview
summary: Get a file preview
description: |
Retrieve a file preview by the given ID of the file.
parameters:
- $ref: '#/components/parameters/FileId'
responses:
200:
description: Preview metadata
content:
application/json:
schema:
title: FilePreviewResp
type: object
properties:
type:
type: string
enum:
- image
- video
- document
uri:
type: string
description: URI to get file preview by a preview type.
401:
$ref: '#/components/responses/Unauthorized'
/file/diff/{id}:
get:
tags:
- File
summary: Display changes of the file
description: |
Get file changes for specified period.
parameters:
- $ref: '#/components/parameters/FileId'
- name: from
in: query
required: true
schema:
type: number
- name: to
in: query
schema:
type: number
responses:
200:
description: File diffs list
content:
application/json:
schema:
title: FileDiffResp
type: object
properties:
from:
type: number
to:
type: number
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
action:
type: string
parent_id:
type: string
format: uuid
name:
type: string
type:
type: string
size:
type: number
format: int64
modified:
type: number
operations:
type: number
format: int
metadata:
type: object
properties: {}
401:
$ref: '#/components/responses/Unauthorized'
/file/modify:
post:
tags:
- File
- Upload
summary: Get file modification link
description: |
Get file modification link
requestBody:
content:
application/json:
schema:
title: FileModifyReq
required:
- id
type: object
properties:
id:
type: string
format: uuid
truncate:
type: number
format: integer
required: true
responses:
200:
description: Modify link metadata
content:
application/json:
schema:
title: FileModifyResp
type: object
properties:
name:
type: string
file_id:
type: string
format: uuid
parent_id:
type: string
format: uuid
upload_key:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/group:
get:
tags:
- Group
summary: List available user groups
description: |
Get a list of available contact groups.
responses:
200:
description: Group list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/GroupResp'
401:
$ref: '#/components/responses/Unauthorized'
/group/metadata/{id}:
get:
tags:
- Group
summary: Get group metadata
description: |
Retrieve information about the group by the specified group ID.
parameters:
- name: id
in: path
description: ID of a group
required: true
schema:
type: string
format: uuid
responses:
200:
description: Group metadata
content:
application/json:
schema:
$ref: '#/components/schemas/GroupResp'
401:
$ref: '#/components/responses/Unauthorized'
/pgp-key/recipients:
post:
tags:
- PGP
summary: Get recipients' PGP keys
description: |
Get public PGP keys for given recipients
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdsReq'
required: true
responses:
200:
description: PGP keys list
content:
application/json:
schema:
title: PgpKeyRecipientsResp
type: array
items:
title: PgpKeyRecipientsRespItems
type: object
properties:
id:
type: string
format: uuid
name:
type: string
created:
type: integer
format: timestamp
modified:
type: integer
format: timestamp
public:
type: string
format: base64
recipient_id:
type: string
format: uuid
email:
type: string
format: email
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/pgp-key/metadata/{id}:
get:
tags:
- PGP
summary: Get PGP key metadata
description: |
Retrieve information about PGP key containing the ID, name and email of the creator, date it was created and modified, public and private keys.
parameters:
- name: id
in: path
description: ID of a PGP key
required: true
schema:
type: string
format: uuid
responses:
200:
description: PGP key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/PgpKeyResp'
401:
$ref: '#/components/responses/Unauthorized'
/pgp-key/create:
post:
tags:
- PGP
summary: Create PGP key
description: |
Generate a new PGP key
requestBody:
content:
application/json:
schema:
title: PgpCreateReq
required:
- name
- public
type: object
properties:
name:
type: string
public:
type: string
private:
type: string
required: true
responses:
201:
description: PGP key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/PgpKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/pgp-key/edit/{id}:
post:
tags:
- PGP
summary: Edit PGP key
description: |
Edit an existing PGP key.
parameters:
- name: id
in: path
description: ID of a PGP key
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: PgpEditReq
type: object
properties:
name:
type: string
public:
type: string
private:
type: string
required: false
responses:
200:
description: PGP key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/PgpKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/pgp-key/delete/{id}:
get:
tags:
- PGP
summary: Delete PGP key
description: |
Delete an existing PGP key.
parameters:
- name: id
in: path
description: ID of a PGP key
required: true
schema:
type: string
format: uuid
responses:
200:
description: PGP key id
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
401:
$ref: '#/components/responses/Unauthorized'
/pgp-key/request:
post:
tags:
- PGP
summary: Request PGP key
description: |
Send PGP key generation request to a user or a contact.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdsReq'
required: true
responses:
202:
description: Jobs response object
content:
application/json:
schema:
type: object
properties:
jobs:
type: array
items:
type: object
properties:
role_id:
type: string
description: ID of the user receiving the request
format: uuid
id:
type: string
description: the corresponding job ID
format: uuid
401:
$ref: '#/components/responses/Unauthorized'
/key-request/metadata/{id}:
get:
tags:
- PGP
summary: Get PGP key request metadata
description: |
Retrieve details about PGP key generation request.
parameters:
- name: id
in: path
description: ID of the PGP key request
required: true
schema:
type: string
format: uuid
responses:
200:
description: PGP key request metadata
content:
application/json:
schema:
title: KeyRequestMetadataResp
type: object
properties:
id:
type: string
format: uuid
sender_name:
type: string
sender_email:
type: string
user_name:
type: string
user_email:
type: string
locale:
type: string
is_contact:
type: boolean
401:
$ref: '#/components/responses/Unauthorized'
/key-request/respond/{id}:
post:
tags:
- PGP
summary: Respond to PGP key request
description: |
Respond to PGP key request with PGP key
parameters:
- name: id
in: path
description: ID of a PGP key request
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: KeyRequestRespondReq
required:
- name
- public
type: object
properties:
name:
type: string
public:
type: string
private:
type: string
required: true
responses:
202:
description: Job response object
content:
application/json:
schema:
$ref: '#/components/schemas/JobResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/reset-password/request:
post:
security: []
tags:
- Password Reset
summary: Request password reset
description: |
Send an email with the request to reset password (including the link) to the user.
requestBody:
content:
application/json:
schema:
title: ResetPasswordRequestReq
required:
- email
type: object
properties:
email:
type: array
items:
type: string
required: true
responses:
200:
description: Response object for anonymous user
content:
application/json:
schema:
title: ResetPasswordRequestResp
type: object
properties:
email:
type: array
items:
type: string
202:
description: Job response object for authorized user
content:
application/json:
schema:
type: object
properties:
status:
type: string
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/reset-password/metadata/{id}:
get:
security: []
tags:
- Password Reset
summary: Get password reset request metadata
description: |
Retrieve information about the password reset request.
parameters:
- name: id
in: path
description: ID of the password reset request
required: true
schema:
type: string
format: uuid
responses:
200:
description: Password reset request id
content:
application/json:
schema:
title: ResetPasswordMetadataResp
type: object
properties:
id:
type: string
format: uuid
multiple_accounts:
type: boolean
401:
$ref: '#/components/responses/Unauthorized'
/reset-password/reset/{id}:
post:
security: []
tags:
- Password Reset
summary: Reset password
description: |
Change the password based on the existing password reset request.
parameters:
- name: id
in: path
description: ID of a password reset request
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: ResetPasswordResetReq
required:
- password
type: object
properties:
password:
type: string
required: true
responses:
200:
description: Password reset request id
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/preview/{id}:
get:
tags:
- Preview
summary: Get binary preview data
description: |
Get a preview with the response content type based on the file type e.g. image/jpeg for images.
parameters:
- name: id
in: path
description: File ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Binary preview data
401:
description: Unauthorized
content:
image/jpeg:
schema:
$ref: '#/components/schemas/ErrorModel'
video/mp4:
schema:
$ref: '#/components/schemas/ErrorModel'
application/pdf:
schema:
$ref: '#/components/schemas/ErrorModel'
/profile:
get:
tags:
- Profile
summary: Get profile metadata
description: |
Retrieve profile information of the current user.
responses:
200:
description: Profile metadata
content:
application/json:
schema:
title: ProfileResp
type: object
properties:
id:
type: string
format: uuid
name:
type: string
email:
type: string
super_admin:
type: string
home_id:
type: string
format: uuid
operations:
type: number
format: integer
max_file_size:
type: number
format: integer
max_files_per_share:
type: number
format: integer
plan:
type: string
is_contact:
type: boolean
language:
type: string
channel_id:
type: string
format: uuid
account_id:
type: string
format: uuid
storage_id:
type: string
format: uuid
created:
type: number
modified:
type: number
quota:
type: number
format: integer
status:
type: string
uid:
type: number
format: integer
gid:
type: number
format: integer
has_key:
type: boolean
pgp_enabled:
type: boolean
message_signature:
type: string
outgoing_id:
type: string
incoming_id:
type: string
services:
type: array
items:
$ref: '#/components/schemas/ShortUserService'
share_types:
type: object
properties:
restricted_share:
type: boolean
public_share:
type: boolean
tracked_share:
type: boolean
unique_login:
type: string
sftp_login:
type: string
auth_methods:
type: array
items:
type: string
account_status:
type: string
enum:
- A
- S
sftp_url:
type: string
forced_auth:
type: array
items:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/profile/set:
post:
tags:
- Profile
summary: Update profile metadata
description: |
Edit profile information of the current user including name, email, language and message signature.
requestBody:
content:
application/json:
schema:
title: ProfileSetReq
type: object
properties:
name:
type: string
email:
type: string
language:
type: string
message_signature:
type: string
required: false
responses:
200:
description: Updated profile metadata
content:
application/json:
schema:
title: ProfileSetResp
type: object
properties:
name:
type: string
email:
type: string
language:
type: string
message_signature:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/profile/set-password:
post:
tags:
- Profile
summary: Change profile password
description: |
Change the account password for the logged-in user.
requestBody:
content:
application/json:
schema:
title: ProfileSetPasswordReq
required:
- new_password
- password
type: object
properties:
password:
type: string
description: current password in base64
new_password:
type: string
description: new password in base64
required: true
responses:
200:
description: Change profile password
content:
application/json:
schema:
title: ProfileSetPasswordResp
type: object
properties:
email:
type: string
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/profile/info:
get:
tags:
- Profile
summary: Retrieve additional profile info
description: |
Get additional details about the account e.g. number of used and available user licenses.
responses:
200:
description: Profile info
content:
application/json:
schema:
title: ProfileInfoResp
type: object
properties:
user_used:
type: number
format: integer
user_limit:
type: number
format: integer
acc_used:
type: number
format: integer
acc_limit:
type: number
format: integer
401:
$ref: '#/components/responses/Unauthorized'
/profile/2fa/generate:
get:
tags:
- Profile
summary: Generate a new 2FA code
description: |
Generate a new verification code for 2FA with QR code.
responses:
200:
description: Image in base64 with QR code
401:
description: Unauthorized
content:
application/octet-stream:
schema:
$ref: '#/components/schemas/ErrorModel'
/profile/set-mfa:
post:
tags:
- Profile
- MFA
summary: Enable MFA for the logged-in user
description: |
Turn on MFA (multifactor authentication) for the user who requested 2FA activation while editing their profile. MFA adds an additional secure step on the way to log in to the account by using one more authentication method beyond the email and password.
requestBody:
content:
application/json:
schema:
title: ProfileSetMfaReq
required:
- auth_type
- code
type: object
properties:
auth_type:
type: string
enum:
- 2FA
- PIN
code:
type: string
description: Auth code for MFA
required: true
responses:
200:
description: IDs of closed sessions
content:
application/json:
schema:
title: ProfileSetMfaResp
type: object
properties:
session_ids:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/profile/remove-mfa:
post:
tags:
- Profile
- MFA
summary: Disable MFA for the logged-in user
description: |
Turn off MFA (multifactor authentication) for the user who requested 2FA deactivation while editing their profile. This operation is possible if it was not forced by the administrator.
requestBody:
content:
application/json:
schema:
title: ProfileRemoveMfaReq
required:
- auth_type
type: object
properties:
auth_type:
type: string
enum:
- 2FA
- PIN
required: true
responses:
200:
description: success response
content:
application/json:
schema:
title: ProfileRemoveMfaResp
type: object
properties:
status:
type: string
description: Action status
enum:
- success
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder:
get:
tags:
- Project Folder
summary: List available project folders for a logged-in user
description: |
Retrieve a list of all project folders of a current logged-in user.
responses:
200:
description: Project folders list
content:
application/json:
schema:
title: ProjectFoldersListResp
type: array
items:
title: ProjectFoldersListRespItem
type: object
properties:
owner:
$ref: '#/components/schemas/ProjectOwner'
project_id:
type: string
format: uuid
ctime:
type: number
format: integer
name:
type: string
file_id:
type: string
format: uuid
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/create:
post:
tags:
- Project Folder
summary: Create a project folder
description: |
Create a new project folder for a user. Learn more how to create a project folder in our [API guide](https://docs.maytech.net/display/MD/Creating+Project+Folders).
requestBody:
content:
application/json:
schema:
title: PfCreateReq
required:
- file_id
- name
- users_permissions
type: object
properties:
created:
type: number
name:
type: string
file_id:
type: string
format: uuid
users_permissions:
type: array
items:
$ref: '#/components/schemas/UserPermissionReq'
notify:
type: boolean
default: false
required: true
responses:
201:
description: Project Folder
content:
application/json:
schema:
title: PfCreateResp
type: object
properties:
id:
type: string
format: uuid
name:
type: string
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/project-users:
post:
tags:
- Project Folder
summary: List all project folders for given users
description: |
Get a list of all project folders for given users.
requestBody:
content:
application/json:
schema:
title: PfUsersListReq
required:
- ids
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
required: true
responses:
200:
description: Project Folder
content:
application/json:
schema:
title: PfUsersListResp
type: array
items:
title: PfUsersListRespItems
type: object
properties:
operations:
type: number
format: integer
owner:
type: boolean
project_id:
type: string
format: uuid
user_id:
type: string
format: uuid
notify:
type: boolean
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/users/{id}:
get:
tags:
- Project Folder
summary: List users of the project folder
description: |
Retrieve a list of users by given project folder ID.
parameters:
- name: id
in: path
description: project folder ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Project Folder Users List
content:
application/json:
schema:
title: PfUsersResp
type: array
items:
$ref: '#/components/schemas/UserPermissionResp'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/set-users:
post:
tags:
- Project Folder
summary: Add users to project folders.
description: |
Add users to specified project folders. If the users exist in the given project folder, their permissions will be updated based on given parameters.
requestBody:
content:
application/json:
schema:
title: PfSetUsersReq
required:
- users
type: object
properties:
users:
type: array
items:
type: object
properties:
user_id:
type: string
format: uuid
params:
type: array
items:
type: object
properties:
operations:
type: number
format: integer
project_id:
type: string
format: uuid
notify:
type: boolean
default: true
required: true
responses:
200:
description: Set users
content:
application/json:
schema:
title: PfSetUsersResp
type: array
items:
title: PfSetUsersRespItems
type: object
properties:
operations:
type: number
description: File operations bitmask
format: int
project_id:
type: string
format: uuid
user_id:
type: string
format: uuid
notify:
type: boolean
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
404:
description: Users not set to project folders
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/project-folder/metadata/{id}:
get:
tags:
- Project Folder
summary: Get project folder metadata
description: |
Retrieve the metadata of the project folder.
parameters:
- name: id
in: path
description: project folder ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Project folder metadata
content:
application/json:
schema:
title: PfMetadataResp
type: object
properties:
folder_name:
type: string
format: text
created:
type: number
creator:
type: object
properties: {}
users:
type: array
items:
$ref: '#/components/schemas/UserPermissionResp'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/add-users/{id}:
post:
tags:
- Project Folder
summary: Add users to the project folder
description: |
Add users to the specified project folder.
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: PfAddUsersReq
required:
- users_permissions
type: object
properties:
users_permissions:
type: array
items:
$ref: '#/components/schemas/UserPermissionReq'
required: true
responses:
200:
description: Project Folder Users List
content:
application/json:
schema:
title: PfAddUsersResp
type: array
items:
$ref: '#/components/schemas/UserPermissionResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/edit-users/{id}:
post:
tags:
- Project Folder
summary: Update users’ permissions of the project folder
description: |
Edit users’ permissions of the given project folder.
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: PfEditUsersReq
required:
- users_permissions
type: object
properties:
users_permissions:
type: array
items:
$ref: '#/components/schemas/UserPermissionReq'
notify:
type: boolean
default: false
required: true
responses:
200:
description: Project Folder Users List
content:
application/json:
schema:
title: PfEditUsersResp
type: array
items:
$ref: '#/components/schemas/UserPermissionResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/delete-users/:
post:
tags:
- Project Folder
summary: Remove project folder users
description: |
Delete users of the given project folder.
requestBody:
content:
application/json:
schema:
title: PfDeleteUsersReq
required:
- users
type: object
properties:
users:
title: PfDeleteUsersReqItems
type: array
items:
type: object
properties:
user_id:
type: string
format: uuid
project_id:
type: array
items:
type: string
format: uuid
required: true
responses:
200:
description: Project Folder Users IDs
content:
application/json:
schema:
title: PfDeleteUsersResp
type: array
items:
title: PfDeleteUsersRespItems
type: object
properties:
user_id:
type: string
format: uuid
project_id:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/project-folder/delete/{id}:
get:
tags:
- Project Folder
summary: Convert a project folder to a folder
description: |
Convert the project folder to regular folder keeping the same name and location.
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
200:
description: Project Folder
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
401:
$ref: '#/components/responses/Unauthorized'
/settings:
get:
tags:
- Site Settings
summary: Get site settings
description: |
Retrieve information about the service settings adjusted for the account e.g. language, banner text, email footer, billing emails, PGP, permitted share types.
responses:
200:
description: Site Settings
content:
application/json:
schema:
$ref: '#/components/schemas/SettingsResp'
401:
$ref: '#/components/responses/Unauthorized'
/settings/set:
post:
tags:
- Site Settings
summary: Set site settings
description: |
Update service settings for the account e.g. enable or disable PGP, force 2FA for all users of the account.
requestBody:
content:
application/json:
schema:
title: SettingsSetReq
type: object
properties:
title:
type: string
bcc:
type: array
items:
type: string
billing_emails:
type: array
items:
type: string
email_footer:
type: string
language:
type: string
pgp_enabled:
type: boolean
share_types:
type: object
properties:
public_share:
type: boolean
tracked_share:
type: boolean
restricted_share:
type: boolean
auth_methods:
type: array
items:
type: string
enum:
- IP
- 2FA
ip_whitelist:
type: array
description: Available formats 1.1.1.1, 1.1.1.1\32, 1.1.1.1-255
items:
type: string
required: true
responses:
200:
description: Site Settings
content:
application/json:
schema:
$ref: '#/components/schemas/SettingsResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/settings/upload-logo-link:
get:
tags:
- Site Settings
- Upload
summary: Get a new logo upload link
description: |
Get a unique key for uploading a new logo
responses:
200:
description: Upload logo link id
content:
application/json:
schema:
title: SettingsUploadLogoLinkResp
type: object
properties:
upload_key:
type: string
format: uuid
401:
$ref: '#/components/responses/Unauthorized'
/settings/auth-methods:
get:
tags:
- Site Settings
summary: Get available authentication methods
description: |
Get available authentication methods that can be set for the account.
responses:
200:
description: Account auth-methods settings
content:
application/json:
schema:
title: SettingsAuthMethodsResp
type: array
items:
title: SettingsAuthMethodsRespItems
type: object
properties:
rank:
type: integer
id:
type: string
format: uuid
key:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/upload/link:
post:
tags:
- Upload
summary: Get file upload link
description: |
Retrieve a link for uploading a file.
requestBody:
content:
application/json:
schema:
title: UploadLinkReq
required:
- name
- parent_id
type: object
properties:
name:
type: string
format: filename
parent_id:
type: string
description: File parent ID
format: uuid
resolve:
type: boolean
default: true
file_size:
type: number
required: true
responses:
200:
description: Upload link metadata
content:
application/json:
schema:
title: UploadLinkResp
type: object
properties:
name:
type: string
file_id:
type: string
format: uuid
parent_id:
type: string
format: uuid
upload_key:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/upload/finalize/{id}:
get:
tags:
- Upload
summary: Finalize chunked file upload
description: |
Complete the chunked upload of a file.
parameters:
- name: id
in: path
description: Upload key
required: true
schema:
type: string
format: uuid
- name: mtime
in: query
description: File modification timestamp
schema:
type: number
format: timestamp
responses:
200:
description: Upload link metadata
content:
application/json:
schema:
title: UploadFinalizeResp
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
size:
type: number
format: integer
modified:
type: number
description: File modification timestamp
format: timestamp
401:
$ref: '#/components/responses/Unauthorized'
/user:
get:
tags:
- User
summary: List users
description: |
Retrieve a list of users
responses:
200:
description: Users list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserResp'
401:
$ref: '#/components/responses/Unauthorized'
/user/metadata/{id}:
get:
tags:
- User
summary: Get user metadata
description: |
Retrieve user’s metadata by given user ID.
parameters:
- name: id
in: path
description: ID of a user
required: true
schema:
type: string
format: uuid
responses:
200:
description: User metadata
content:
application/json:
schema:
$ref: '#/components/schemas/UserResp'
401:
$ref: '#/components/responses/Unauthorized'
/user/create:
post:
tags:
- User
summary: Create a user
description: |
Add a new user to the account. The user receives an email where the password can be set.
requestBody:
content:
application/json:
schema:
title: UserCreateReq
required:
- email
- name
type: object
properties:
name:
type: string
email:
type: string
parent_id:
type: string
format: uuid
quota:
type: number
format: integer
status:
type: string
enum:
- A
- D
super_admin:
type: string
enum:
- Y
- N
home_id:
type: string
format: uuid
user_operations:
type: number
format: integer
home_operations:
type: number
format: integer
language:
type: string
groups:
type: array
items:
type: string
format: uuid
services:
type: array
items:
type: string
format: uuid
sftp_login:
type: string
notes:
type: string
required: true
responses:
201:
description: User metadata
content:
application/json:
schema:
$ref: '#/components/schemas/UserResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
example:
msg: Email is already taken
code: 31
details: {}
401:
$ref: '#/components/responses/Unauthorized'
/user/edit:
post:
tags:
- User
summary: Update metadata of users
description: |
Edit the existing users’ metadata. An email can be edited only for one user using one API call. In this case both old and new emails will be notified about the change.
requestBody:
content:
application/json:
schema:
title: UserEditReq
required:
- ids
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
name:
type: string
email:
type: string
parent_id:
type: string
format: uuid
quota:
type: number
format: integer
status:
type: string
enum:
- A
- D
super_admin:
type: string
enum:
- Y
- N
home_id:
type: string
format: uuid
user_operations:
type: number
format: integer
home_operations:
type: number
format: integer
language:
type: string
groups:
type: array
items:
type: string
format: uuid
services:
type: array
items:
type: string
format: uuid
sftp_login:
type: string
notes:
type: string
required: true
responses:
200:
description: User metadata
content:
application/json:
schema:
title: UserEditResp
type: array
items:
$ref: '#/components/schemas/UserResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/user/delete:
post:
tags:
- User
summary: Delete users
description: |
Remove users from the account by specified user IDs.
requestBody:
content:
application/json:
schema:
title: UserDeleteReq
required:
- ids
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
delete_home:
type: boolean
required: true
responses:
202:
description: Job response object
content:
application/json:
schema:
$ref: '#/components/schemas/JobResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/user/pgp-key/{id}:
get:
tags:
- User
- PGP
summary: Get user's PGP key
description: |
Use to retrieve PGP key generated by the user.
parameters:
- name: id
in: path
description: ID of a user
required: true
schema:
type: string
format: uuid
responses:
200:
description: PGP key metadata object
content:
application/json:
schema:
$ref: '#/components/schemas/PgpKeyResp'
401:
$ref: '#/components/responses/Unauthorized'
/user/group:
get:
tags:
- User
- Group
summary: List all user groups
description: |
Retrieve a list of all user groups that can be set for users.
responses:
200:
description: Groups list
content:
application/json:
schema:
title: UserGroupResp
type: array
items:
$ref: '#/components/schemas/Group'
401:
$ref: '#/components/responses/Unauthorized'
/user/signup:
post:
security: []
tags:
- User
summary: Register a new user
description: |
Set password for a new user.
requestBody:
content:
application/json:
schema:
title: UserSignupReq
required:
- email
- password
type: object
properties:
email:
type: string
password:
type: string
format: base64
required: true
responses:
200:
description: Successful signup
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
example:
msg: Email is already taken
code: 31
details: {}
/user/set-mfa:
post:
tags:
- User
- MFA
summary: Enable MFA for users
description: |
Activate MFA for a user by specified user ID. If auth type is 2FA, the user will be forced to use MFA. All logged-in sessions of users will be stopped.
requestBody:
content:
application/json:
schema:
title: UserSetMfaReq
required:
- auth_type
- code
- ids
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
auth_type:
type: string
enum:
- 2FA
- PIN
code:
type: string
description: Auth code for MFA
required: true
responses:
200:
description: success response
content:
application/json:
schema:
title: UserSetMfaResp
type: object
properties:
status:
type: string
description: Action status
enum:
- success
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/user/remove-mfa:
post:
tags:
- User
- MFA
summary: Disable MFA for users
description: |
Deactivate MFA for a user by specified user ID. If 2FA is forced for the account, the user won’t be able to deactivate it using this API call.
requestBody:
content:
application/json:
schema:
title: UserRemoveMfaReq
required:
- auth_type
- ids
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
auth_type:
type: string
enum:
- 2FA
- PIN
required: true
responses:
200:
description: success response
content:
application/json:
schema:
title: UserRemoveMfaResp
type: object
properties:
status:
type: string
description: Action status
enum:
- success
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/user/reset-mfa:
post:
tags:
- User
- MFA
summary: Update existing MFA settings for users
description: |
Remove already set MFA code values, the MFA will be left activated.
All logged-in sessions of users will be stopped. On the next login the user should set MFA again.
requestBody:
content:
application/json:
schema:
title: UserResetMfaReq
required:
- auth_type
- ids
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
auth_type:
type: string
enum:
- 2FA
required: true
responses:
200:
description: success response
content:
application/json:
schema:
title: UserResetMfaResp
type: object
properties:
status:
type: string
description: Action status
enum:
- success
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/widget/metadata/{id}:
get:
security: []
tags:
- Widget
summary: Get all widget metadata
description: |
Retrieve available metadata of the widget.
parameters:
- $ref: '#/components/parameters/WidgetId'
responses:
200:
description: Successful response
content:
application/json:
schema:
title: WidgetMetadataResp
type: object
properties:
id:
type: string
description: Action status
format: uuid
captcha_passed:
type: boolean
description: Is captcha passed in current session
files_remaining:
type: integer
description: Session upload files limit
404:
description: Widget does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/widget/makedir/{id}:
post:
security: []
tags:
- Widget
summary: Create a subfolder in the widget folder
description: |
Creates a new folder in the widget directory and returns the ID that can be
used to upload a file or create a subfolder.
If the folder exists already under the selected parent, it will return the existing ID.
Required passed captcha
parameters:
- $ref: '#/components/parameters/WidgetId'
requestBody:
content:
application/json:
schema:
title: WidgetMakedirReq
type: object
properties:
name:
type: string
description: folder name
parent_id:
type: string
description: parent folder id, if none - widget directory is used
format: uuid
required: true
responses:
200:
description: Successful response
content:
application/json:
schema:
title: WidgetMakedirResp
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
description: File parent ID
format: uuid
modified:
type: number
description: File modification timestamp
name:
type: string
description: File name
/widget/upload-link/{id}:
post:
security: []
tags:
- Widget
summary: Get widget upload link
description: |
Retrieve a link for uploading the file via widget.
Required passed captcha
parameters:
- $ref: '#/components/parameters/WidgetId'
requestBody:
content:
application/json:
schema:
title: WidgetUploadLinkReq
type: object
properties:
file_size:
type: number
name:
type: string
parent_id:
type: string
format: uuid
payload:
type: object
properties: {}
required: true
responses:
200:
description: Upload link metadata
content:
application/json:
schema:
title: WidgetUploadLinkResp
type: object
properties:
upload_key:
type: string
format: uuid
/widget/finalize-upload/{id}:
get:
security: []
tags:
- Widget
summary: Finalize chunked upload of the widget
description: |
Complete the chunked upload of the widget.
parameters:
- name: id
in: path
description: Upload key
required: true
schema:
type: string
format: uuid
responses:
200:
description: Upload link metadata
content:
application/json:
schema:
title: WidgetFinalizeUploadResp
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
size:
type: number
format: integer
/widget/unblock-captcha/{id}:
post:
tags:
- Widget
summary: Unblock the widget CAPTCHA
description: |
Unblock the widget CAPTCHA
parameters:
- $ref: '#/components/parameters/WidgetId'
requestBody:
content:
application/json:
schema:
title: WidgetUnblockCaptchaReq
type: object
properties:
token:
type: string
required: true
responses:
200:
description: Successful response
content:
application/json:
schema:
title: WidgetMakedirResp
type: object
properties:
valid:
type: boolean
files_remaining:
type: integer
/share/recipients:
get:
tags:
- Share
summary: List all contacts for the share
description: |
Retrieve a list of all recipients that can receive the share.
parameters:
- name: email
in: query
description: Search emails by the specified beginning.
schema:
type: string
responses:
200:
description: Recipient list
content:
application/json:
schema:
title: ShareRecipientsResp
type: object
properties:
id:
type: string
format: uuid
name:
type: string
email:
type: string
has_key:
type: boolean
401:
$ref: '#/components/responses/Unauthorized'
/share/create:
post:
tags:
- Share
summary: Create a file share
description: |
Create a share with files.
File share types:
- P (public) - Anyone can download. Limited tracking - IP address only.
- T (tracked) - Any registered user/recipient can download. Full tracking.
- C (restricted) - Only the registered email recipient(s) can download. Full tracking.
requestBody:
content:
application/json:
schema:
title: ShareCreateReq
required:
- contacts
- files
- folder_id
type: object
properties:
folder_id:
type: string
files:
type: array
items:
type: string
format: uuid
contacts:
type: array
items:
type: string
format: uuid
subject:
type: string
message:
type: string
expires:
type: number
description: it should be larger than the "activates" parameter.
format: timestamp
activates:
type: number
format: timestamp
return_files:
type: boolean
request_auth:
type: boolean
description: Defines if return files will require authentication
for public share
default: true
pgp_encrypted:
type: boolean
description: for PGP encrypted shares PGP keys should be generated
by the sender and the recipient. PGP encryption is disabled for
public shares.
return_pgp_encrypted:
type: boolean
message_signature:
type: string
notify:
type: boolean
share_type:
type: string
default: T
enum:
- P
- T
- C
pin:
type: string
format: base64
send_email:
type: boolean
description: create a share with sending an email or just create
a share
default: false
required: true
responses:
201:
description: Share ID
content:
application/json:
schema:
title: ShareCreateResp
type: object
properties:
id:
type: string
format: uuid
activates:
type: number
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/share/login-pin:
post:
tags:
- Share
summary: Log in with PIN to access a share
description: |
Log in using a previously generated PIN that was sent while creating the share to have access to it.
requestBody:
content:
application/json:
schema:
title: ShareLoginPinReq
required:
- id
- pin
type: object
properties:
id:
type: string
format: uuid
pin:
type: string
format: base64
required: true
responses:
200:
description: Logged in with PIN successfully
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/quicklink/create:
post:
tags:
- Share
summary: Create a quicklink
description: |
Create a quicklink with the usage behavior the same as a public share.
requestBody:
content:
application/json:
schema:
title: QuicklinkCreateReq
required:
- files
type: object
properties:
subject:
type: string
files:
type: array
items:
type: string
format: uuid
pin:
type: string
format: base64
required: true
responses:
201:
description: Share ID, expires
content:
application/json:
schema:
title: QuicklinkCreateResp
type: object
properties:
id:
type: string
format: uuid
expires:
type: number
format: timestamp
activates:
type: number
format: timestamp
files:
type: array
items:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/quicklink/revoke/{id}:
get:
tags:
- Share
summary: Revoke a quicklink
description: |
Disable access to a quicklink.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Revoked share action ID
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
401:
$ref: '#/components/responses/Unauthorized'
/quicklink/login-pin:
post:
tags:
- Share
summary: Log in with PIN to access a quicklink
description: |
Log in using a previously generated PIN that was sent while creating the quicklink to have access to it.
requestBody:
content:
application/json:
schema:
title: QuicklinkLoginPinReq
required:
- id
- pin
type: object
properties:
id:
type: string
format: uuid
pin:
type: string
format: base64
required: true
responses:
200:
description: Logged in with PIN successfully
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/tracking/activity:
get:
tags:
- ActivityLog
summary: Get activity log
description: |
Retrieve the history of actions by the specified user (all visible users) for a given period.
parameters:
- name: id
in: query
description: Log ID
schema:
type: string
format: uuid
- name: user_id
in: query
description: User ID
schema:
type: string
format: uuid
- name: limit
in: query
description: Rows per page
schema:
maximum: 1000
minimum: 1
type: number
default: 100
- name: from
in: query
description: UTC timestamp
schema:
type: number
default: 0
- name: to
in: query
description: UTC timestamp
schema:
type: number
responses:
200:
description: Activity log list
content:
application/json:
schema:
title: TrackingActivityResp
type: array
items:
title: TrackingActivityRespItems
type: object
properties:
id:
type: string
format: uuid
email:
type: string
user_name:
type: string
description: User name
user_status:
type: string
enum:
- A
- D
- R
timestamp:
type: number
format: integer
protocol:
type: string
enum:
- web
- SFTP
event:
type: string
enum:
- share
- file
- files-return
action:
type: string
enum:
- create
- revoke
- created-link
- sent-email
- replied
- upload
- download
- move-rename
- delete
- makedir
share_status:
type: string
enum:
- A
- D
- null
payload:
type: object
properties: {}
description: other information(share id, files, etc)
duration:
type: number
description: duration in seconds
format: float
401:
$ref: '#/components/responses/Unauthorized'
/tracking/csv:
get:
tags:
- ActivityLog
summary: Download CSV file with activity log
description: |
Download a file with full activity log in the CSV format by given user ID. If the user ID is not specified, the activity of all manageable users should be displayed. The content of the file will display all actions performed in the account for a specified period.
parameters:
- name: user_id
in: query
description: User ID
schema:
type: string
format: uuid
- name: from
in: query
description: UTC timestamp
schema:
type: number
- name: to
in: query
description: UTC timestamp
schema:
type: number
responses:
200:
description: File content
content:
text/csv:
schema:
title: TrackingCSVResp
type: array
items:
title: TrackingCSVRespItems
type: object
properties:
Time:
type: string
Event:
type: string
enum:
- share
- file
- files-return
Action:
type: string
enum:
- create
- revoke
- created-link
- sent-email
- replied
- upload
- download
- move-rename
- rename
- delete
- makedir
- copy
Client IPs:
type: string
User name:
type: string
Email:
type: string
User status:
type: string
enum:
- A
- D
- R
Protocol:
type: string
enum:
- web
- SFTP
Payload:
type: object
properties: {}
description: other information(share id, files, etc)
401:
description: Unauthorized
content:
text/csv:
schema:
$ref: '#/components/schemas/ErrorModel'
/tracking/files/{id}:
get:
tags:
- ActivityLog
summary: Get share action files
description: |
Retrieve a list of shared files by specified share action ID with the number of downloads.
parameters:
- name: id
in: path
description: Share ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: List of shared files
content:
application/json:
schema:
title: TrackingFilesResp
type: array
items:
title: TrackingFilesRespItems
type: object
properties:
id:
type: string
format: uuid
name:
type: string
size:
type: number
type:
type: string
downloads:
type: number
401:
$ref: '#/components/responses/Unauthorized'
/tracking/downloads/{id}:
get:
tags:
- ActivityLog
summary: Get shared file downloads
description: |
Retrieve information about download actions of the file.
parameters:
- name: id
in: path
description: Shared file ID - File ID from /tacking/files/id
required: true
schema:
type: string
format: uuid
responses:
200:
description: List of share file downloads
content:
application/json:
schema:
title: TrackingDownloadsResp
type: array
items:
title: TrackingDownloadsRespItems
type: object
properties:
ip:
type: string
name:
type: string
size:
type: number
duration:
type: number
time:
type: number
recipient:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/tracking/:
get:
tags:
- Share
summary: List share actions metadata for all users
description: |
Retrieve the metadata of created shares and quicklinks of all users that can be managed by a logged-in user.
parameters:
- name: date
in: query
description: Share date timestamp
schema:
type: number
responses:
200:
description: List of shares
content:
application/json:
schema:
title: TrackingResp
type: array
items:
title: TrackingRespItems
type: object
properties:
id:
type: string
format: uuid
subject:
type: string
type:
type: string
is_reply:
type: boolean
release_date:
type: number
expire_date:
type: number
created:
type: number
status:
type: string
email:
type: string
emails:
type: array
items:
type: string
owner_id:
type: string
is_request:
type: boolean
can_reply:
type: boolean
folder:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/tracking/{id}:
get:
tags:
- Share
summary: List share actions metadata for a user
description: |
Retrieve the metadata of created shares and quicklinks of a user by given user ID.
parameters:
- name: id
in: path
description: User ID
required: true
schema:
type: string
- name: date
in: query
description: Share date timestamp
schema:
type: number
responses:
200:
description: List of shares
content:
application/json:
schema:
title: TrackingIdResp
type: array
items:
title: TrackingIdRespItems
type: object
properties:
id:
type: string
format: uuid
subject:
type: string
type:
type: string
is_reply:
type: boolean
release_date:
type: number
expire_date:
type: number
created:
type: number
status:
type: string
email:
type: string
emails:
type: array
items:
type: string
owner_id:
type: string
401:
$ref: '#/components/responses/Unauthorized'
/files-return/send:
post:
tags:
- Share
summary: Return files in the created share
description: |
Return files to the share sender.
requestBody:
content:
application/json:
schema:
title: FilesReturnSendReq
required:
- files
- id
type: object
properties:
id:
type: string
description: already created share ID.
files:
type: array
items:
type: string
format: uuid
message:
type: string
required: true
responses:
201:
description: Sent files IDs
content:
application/json:
schema:
title: FilesReturnSendResp
type: object
properties:
file_ids:
type: array
items:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/files-return/metadata/{id}:
get:
tags:
- Share
summary: Get return files metadata
description: |
Get the metadata of returning files.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Share metadata
content:
application/json:
schema:
title: FilesReturnMetadataResp
type: object
properties:
id:
type: string
description: already created share ID.
format: uuid
subject:
type: string
sender_name:
type: string
sender_key:
type: string
sender_email:
type: string
user_name:
type: string
user_email:
type: string
locale:
type: string
return_pgp_encrypted:
type: boolean
title:
type: string
pgp_enabled:
type: boolean
share_type:
type: string
folder_id:
type: string
activates:
type: number
expires:
type: number
files_per_share:
type: number
message:
type: string
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/files-return/upload-link/{id}:
post:
tags:
- Share
summary: Get return files upload link
description: |
Get the upload link to return files to the share sender.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
title: FilesReturnUploadLinkReq
required:
- name
type: object
properties:
parent_id:
type: string
format: uuid
file_size:
type: number
name:
type: string
required: true
responses:
200:
description: File upload info
content:
application/json:
schema:
title: FilesReturnUploadLinkResp
type: object
properties:
file_id:
type: string
format: uuid
upload_key:
type: string
format: uuid
parent_id:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/files-return/makedir/{id}:
post:
tags:
- Share
summary: Create a directory for returned files
description: |
Add a directory for returned files in the sender’s file tree. In order to return a file tree structure, you should duplicate it on the server side, that is send this API call to create each folder separately. This call returns the ID response that can be used as the parent ID for creating a new folder in the already created folder.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
title: FilesReturnMakedirReq
required:
- name
type: object
properties:
name:
type: string
parent_id:
type: string
format: uuid
required: true
responses:
201:
description: Folder metadata
content:
application/json:
schema:
title: FilesReturnMakedirResp
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
modified:
type: number
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/share/download-info/{id}:
get:
tags:
- Share
summary: Get share download info
description: |
Get the share metadata by the given share action iD.
File share types:
- P (public) - Anyone can download. Limited tracking - IP address only.
- T (tracked) - Any registered user/recipient can download. Full tracking.
- C (restricted) - Only the registered email recipient(s) can download. Full tracking.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Share download info
content:
application/json:
schema:
title: ShareDownloadInfoResp
type: object
properties:
id:
type: string
format: uuid
message:
type: string
subject:
type: string
activates:
type: number
format: timestamp
expires:
type: number
format: timestamp
sender_name:
type: string
sender_email:
type: string
user_name:
type: string
description: user name from current session
user_email:
type: string
description: user email from current session
locale:
type: string
user_id:
type: string
format: uuid
pgp_encrypted:
type: boolean
description: PGP protected share
private_key:
type: string
description: for PGP
pgp_enabled:
type: boolean
description: It shows that the user from the current session has
PGP key. If True - the user will get his private_key.
status:
type: string
share_type:
type: string
enum:
- P
- C
- T
title:
type: string
expired:
type: boolean
is_reply:
type: boolean
pin_protected:
type: boolean
401:
$ref: '#/components/responses/Unauthorized'
/share/files/{id}:
get:
tags:
- Share
summary: List shared files
description: |
Retrieve a list of shared files.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Share download info
content:
application/json:
schema:
title: ShareFilesResp
type: array
items:
title: ShareFilesRespItems
type: object
properties:
id:
type: string
format: uuid
size:
type: number
count:
type: number
name:
type: string
type:
type: string
download_locked:
type: boolean
401:
$ref: '#/components/responses/Unauthorized'
/share/download-link/{id}:
get:
tags:
- Share
summary: Get download link for all files
description: |
Retrieve a link for downloading all files.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: All shared files download link ID
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
401:
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Share
summary: Get download link for specified files
description: |
Retrieve a link for downloading specified files.
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: ShareDownloadLinkReq
type: object
properties:
files:
type: array
items:
type: string
description: File ID
format: uuid
required: false
responses:
200:
description: Selected share files download link ID
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/share/download/{id}:
get:
tags:
- Share
summary: Download share files
description: |
Download files requested in the share/download-link call.
parameters:
- name: id
in: path
description: Download link ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Share files content
/share/revoke/{id}:
get:
tags:
- Share
summary: Revoke a share
description: |
Revoke access to a share
parameters:
- name: id
in: path
description: Share action ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Revoked share action ID
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
401:
$ref: '#/components/responses/Unauthorized'
/share/preview/{id}:
get:
tags:
- Share
summary: Preview a shared file
description: |
Preview a shared file by given share file ID.
parameters:
- name: id
in: path
description: Share file ID
required: true
schema:
type: string
format: uuid
- name: size
in: query
schema:
type: string
enum:
- small
- large
responses:
200:
description: File preview data
401:
description: Unauthorized
content:
image/png:
schema:
$ref: '#/components/schemas/ErrorModel'
/share/request:
post:
tags:
- Share
summary: Send a request to share files
description: |
Send a file sharing request.
requestBody:
content:
application/json:
schema:
title: ShareRequestReq
required:
- ids
type: object
properties:
return_pgp_encrypted:
type: boolean
description: if PGP keys were generated by the sender or the recipient.
default: false
request_auth:
type: boolean
description: Defines if return files will require authentication
default: true
send_email:
type: boolean
default: true
ids:
type: array
description: List of recipient IDs
items:
type: string
format: uuid
message:
type: string
folder_id:
type: string
description: Target folder ID for requested files
format: uuid
required: true
responses:
200:
description: Return page metadata
content:
application/json:
schema:
title: ShareRequestResp
type: object
properties:
id:
type: string
format: uuid
url:
type: string
job_id:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/share/send-request/{id}:
post:
deprecated: true
tags:
- Share
summary: Request files. Use /share/request API call instead.
description: |
Send a file sharing request.
parameters:
- name: id
in: path
description: Share Request ID
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: ShareSendRequestReq
type: object
properties:
message:
type: string
required: false
responses:
202:
description: Job response object
content:
application/json:
schema:
$ref: '#/components/schemas/JobResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/service:
get:
tags:
- Service
summary: List available services
description: |
Retrieve a list of all available services.
responses:
200:
description: List of services
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceResp'
401:
$ref: '#/components/responses/Unauthorized'
/service/metadata/{id}:
get:
tags:
- Service
summary: Get service metadata
description: |
Retrieve information about the service by given ID.
parameters:
- name: id
in: path
description: Service ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Service metadata
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceResp'
401:
$ref: '#/components/responses/Unauthorized'
/automation:
get:
tags:
- Automation
summary: List all automations
description: |
Retrieve a list of all automations of the user.
responses:
200:
description: List of automations
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AutomationResp'
401:
$ref: '#/components/responses/Unauthorized'
/automation/metadata/{id}:
get:
tags:
- Automation
summary: Get automation metadata
description: |
Get the automation metadata by the specified automation ID.
parameters:
- name: id
in: path
description: automation ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: Automation metadata
content:
application/json:
schema:
$ref: '#/components/schemas/AutomationResp'
401:
$ref: '#/components/responses/Unauthorized'
/automation/create:
post:
tags:
- Automation
summary: Create a new automation
description: |
Add a new automatic operation.
requestBody:
content:
application/json:
schema:
title: AutomationCreateReq
required:
- action
- file_id
type: object
properties:
file_id:
type: string
format: uuid
action:
type: string
enum:
- autodelete
- video_upload
status:
type: string
enum:
- A
- D
options:
$ref: '#/components/schemas/AutomationOptions'
comment:
type: string
expires:
type: number
format: integer
email:
type: array
items:
type: string
required: true
responses:
201:
description: Automation metadata
content:
application/json:
schema:
$ref: '#/components/schemas/AutomationResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/automation/edit/:
post:
tags:
- Automation
summary: Edit an existing automation
description: |
Update an existing rule for a specified automatic operation.
requestBody:
content:
application/json:
schema:
title: AutomationEditReq
required:
- ids
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
action:
type: string
enum:
- autodelete
- video_upload
file_id:
type: string
format: uuid
status:
type: string
enum:
- A
- D
options:
$ref: '#/components/schemas/AutomationOptions'
comment:
type: string
expires:
type: number
format: integer
email:
type: array
items:
type: string
required: true
responses:
200:
description: Automation metadata
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AutomationResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/automation/delete:
post:
tags:
- Automation
summary: Delete automations
description: |
Delete a rule set for automatic operations.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/IdsReq'
required: true
responses:
200:
description: Deleted automation IDs
content:
application/json:
schema:
title: AutomationDeleteResp
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/inbox:
get:
tags:
- Inbox
summary: Get contact's share tracking
description: |
Retrieve the tracking of actions where the contact was the recipient.
parameters:
- name: id
in: query
description: Inbox ID
schema:
type: string
format: uuid
- name: limit
in: query
description: Rows per page
schema:
type: number
maximum: 1000
minimum: 1
default: 100
- name: from
in: query
description: UTC timestamp
schema:
type: number
default: 0
- name: to
in: query
description: UTC timestamp
schema:
type: number
responses:
200:
description: Activity log list
content:
application/json:
schema:
title: InboxResp
type: array
items:
title: InboxRespItems
type: object
properties:
id:
type: string
format: uuid
sender_name:
type: string
description: Sender name
activates:
type: number
format: integer
is_reply:
type: boolean
replied:
type: boolean
subject:
type: string
type:
type: string
enum:
- P
- C
- T
file_request:
type: boolean
expires:
type: number
format: integer
protected:
type: boolean
401:
$ref: '#/components/responses/Unauthorized'
/ssh-key/:
get:
tags:
- SSH-Key
summary: List all available SSH keys
description: |
Get SSH keys of all available users that the current logged-in user can manage.
responses:
200:
description: SSH-Key list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SshKeyResp'
401:
$ref: '#/components/responses/Unauthorized'
/ssh-key/{id}:
get:
tags:
- SSH-Key
summary: List available SSH keys by the given user ID.
description: |
Get user's SSH keys by given user ID.
parameters:
- name: id
in: path
description: SSH key ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: SSH-Key list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SshKeyResp'
401:
$ref: '#/components/responses/Unauthorized'
/ssh-key/metadata/{id}:
get:
tags:
- SSH-Key
summary: Get SSH key metadata
description: |
Retrieve the metadata of SSH key by the given ID.
parameters:
- name: id
in: path
description: SSH key ID
required: true
schema:
type: string
format: uuid
responses:
200:
description: SSH key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/SshKeyResp'
401:
$ref: '#/components/responses/Unauthorized'
/ssh-key/create:
post:
tags:
- SSH-Key
summary: Create a new SSH key
description: |
Generate a new SSH key.
requestBody:
content:
application/json:
schema:
title: SshKeyCreateReq
required:
- caption
- key
type: object
properties:
caption:
type: string
minLength: 1
maxLength: 255
key:
type: string
minLength: 256
maxLength: 16384
expires:
type: number
format: integer
user_id:
type: string
format: uuid
description: If it is not provided, it will be a logged-in user ID.
required: true
responses:
200:
description: SSH key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/SshKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/ssh-key/edit:
post:
tags:
- SSH-Key
summary: Edit SSH key metadata
description: |
Update the metadata of SSH key.
requestBody:
content:
application/json:
schema:
title: SshKeyEditReq
required:
- id
type: object
properties:
id:
type: string
format: uuid
caption:
type: string
maxLength: 255
minLength: 1
status:
type: string
enum:
- A
- D
expires:
type: number
format: integer
required: true
responses:
200:
description: SSH key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/SshKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/ssh-key/delete:
post:
tags:
- SSH-Key
summary: Delete SSH key
description: |
Remove the key specified by SSH key ID.
requestBody:
content:
application/json:
schema:
title: SshKeyDeleteReq
required:
- id
type: object
properties:
id:
type: string
format: uuid
required: true
responses:
200:
description: SSH Key ID
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/api-key:
get:
tags:
- API-Key
summary: Get all user's API keys
description: |
Get all manageable user's API keys
responses:
200:
description: List of API keys
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/APIKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/api-key/{id}:
get:
tags:
- API-Key
summary: Get user's API keys
description: |
Retrieve all API keys for a specified user.
parameters:
- name: id
in: path
description: ID of a user
required: true
schema:
type: string
format: uuid
responses:
200:
description: List of API keys
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/APIKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/api-key/metadata/{id}:
get:
tags:
- API-Key
summary: Get API key details
description: |
Retrieve API key metadata by the ID of the key.
parameters:
- name: id
in: path
description: ID of a key
required: true
schema:
type: string
format: uuid
responses:
200:
description: API key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/APIKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/api-key/create:
post:
tags:
- API-Key
summary: Create API Key
description: |
Create API key for a specified user.
requestBody:
content:
application/json:
schema:
title: APIKeyCreateReq
type: object
properties:
name:
type: string
default: ""
status:
type: string
default: A
enum:
- A
- D
role_id:
type: string
format: uuid
default: "current user id"
required: true
responses:
200:
description: API key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/APIKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/api-key/update/{id}:
post:
tags:
- API-Key
summary: Update API key
description: |
Update API key metadata by ID of the key
parameters:
- name: id
in: path
description: ID of the key
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
title: APIKeyUpdateReq
type: object
properties:
name:
type: string
status:
type: string
enum:
- A
- D
required: true
responses:
200:
description: API key metadata
content:
application/json:
schema:
$ref: '#/components/schemas/APIKeyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/api-key/delete/{id}:
get:
tags:
- API-Key
summary: Delete API key
description: |
Delete API key by the given ID
parameters:
- name: id
in: path
description: ID of a key
required: true
schema:
type: string
format: uuid
responses:
200:
description: API key ID
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/branding:
get:
tags:
- Branding
summary: Get branding for account
description: |
Returns branding for account(based on logged role)
responses:
200:
description: Account branding
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBranding'
401:
$ref: '#/components/responses/Unauthorized'
post:
tags:
- Branding
summary: Create or update branding for account
description: |
Create or update branding for account. Returns account branding
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBrandingReq'
required: true
responses:
200:
description: Account branding
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBranding'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/branding/preview:
post:
tags:
- Branding
summary: Render html from markdown
description: |
Render markdown and sanitize output html
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBrandingPreview'
required: true
responses:
200:
description: Rendered HTML parts
content:
application/json:
schema:
$ref: '#/components/schemas/AccountBrandingPreview'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/file/comment/{id}:
get:
tags:
- File
- Comment
summary: Get comments added to the file
description: Get comments added to the file
operationId: getCommentsByFileID
parameters:
- name: id
in: path
description: file id
required: true
schema:
type: string
format: uuid
responses:
200:
description: Comments added to the file
content:
application/json:
schema:
title: comments
type: array
items:
$ref: '#/components/schemas/CommentResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
404:
description: File does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
post:
tags:
- File
- Comment
summary: Add comment to the file
description: Add comment to the file
operationId: addCommentByFileID
parameters:
- name: id
in: path
description: file id
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentReq'
required: true
responses:
200:
description: Created comment
content:
application/json:
schema:
$ref: '#/components/schemas/CommentModifyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
404:
description: File does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/file/comment/parent/{id}:
get:
tags:
- File
- Comment
summary: Get comments for files in parent folder
description: Get comments for files in parent folder
operationId: getCommentsByParentID
parameters:
- name: id
in: path
description: id of parent folder
required: true
schema:
type: string
format: uuid
responses:
200:
description: Comments for files in parent folder
content:
application/json:
schema:
title: comments
type: array
items:
$ref: '#/components/schemas/CommentGroupedResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
404:
description: File does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/comment/edit/{id}:
post:
tags:
- Comment
summary: Edit comment
description: Edit comment
operationId: editCommentByID
parameters:
- name: id
in: path
description: comment id
required: true
schema:
type: string
format: uuid
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentReq'
required: true
responses:
200:
description: Edited comment
content:
application/json:
schema:
$ref: '#/components/schemas/CommentModifyResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
404:
description: Comment does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/comment/delete/{id}:
post:
tags:
- Comment
summary: Delete comment
description: Delete comment
operationId: deleteCommentByID
parameters:
- name: id
in: path
description: comment id
required: true
schema:
type: string
format: uuid
responses:
200:
description: ID of successfully deleted comment
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
404:
description: Comment does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/comment/preview:
post:
tags:
- Comment
summary: Preview comment
description: Render markdown to html
operationId: previewComment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CommentReq'
required: true
responses:
200:
description: Rendered comment
content:
application/json:
schema:
$ref: '#/components/schemas/CommentPreviewResp'
400:
description: Parameter Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
401:
$ref: '#/components/responses/Unauthorized'
/tags/delete/{id}:
post:
tags:
- File
- Tags
summary: Delete tag
description: |
Delete tag.
operationId: deleteTagByID
parameters:
- name: id
in: path
description: ID of a tag
required: true
schema:
type: string
format: uuid
responses:
200:
description: ID of successfully deleted tag
content:
application/json:
schema:
$ref: '#/components/schemas/IdResp'
401:
$ref: '#/components/responses/Unauthorized'
404:
description: Tag does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
/tags/list:
get:
tags:
- File
- Tags
summary: List of all tags
description: |
Returns list of tag values with tag_type 'text' for all available files.
operationId: getTagsList
responses:
200:
description: List of tags
content:
application/json:
schema:
title: tags
type: array
items:
type: string
401:
$ref: '#/components/responses/Unauthorized'
404:
description: Tag does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
components:
schemas:
SessionLoginResp:
type: object
properties:
session_id:
type: string
description: New session id
format: uuid
SessionUnblockCaptchaResp:
type: object
properties:
valid:
type: boolean
IdsReq:
required:
- ids
type: object
properties:
ids:
type: array
items:
type: string
description: UUID
format: uuid
IdResp:
type: object
properties:
id:
type: string
description: UUID
format: uuid
IdsResp:
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
CopyMoveFilesReq:
required:
- ids
- target
type: object
properties:
ids:
type: array
items:
type: string
format: uuid
target:
type: string
format: uuid
resolve:
type: boolean
default: true
FileResp:
type: object
properties:
id:
type: string
description: File ID
format: uuid
created:
type: number
description: File creation timestamp
modified:
type: number
description: File modification timestamp
name:
type: string
description: File name
parent_id:
type: string
description: File parent ID
format: uuid
size:
type: number
description: File size in bytes
format: int
modified_ms:
type: number
description: File modification timestamp
format: timestamp
type:
type: string
description: File type
metadata:
type: object
format: json
description: File metadata json
operations:
type: number
description: File operations bitmask
format: int
sub_type:
type: string
description: File origin info
FileSearchResp:
type: object
properties:
id:
type: string
description: File ID
format: uuid
created:
type: number
description: File creation timestamp
modified:
type: number
description: File modification timestamp
name:
type: string
description: File name
parent_id:
type: string
description: File parent ID
format: uuid
size:
type: number
description: File size in bytes
format: int
type:
type: string
description: File type
metadata:
type: object
format: json
description: File metadata json
operations:
type: number
description: File operations bitmask
format: int
sub_type:
type: string
description: File origin info
tags:
title: File tags
type: array
items:
$ref: '#/components/schemas/FileTagResp'
comments_number:
type: integer
description: number of comments available for the file
FileMetadataGetResp:
type: object
properties:
id:
type: string
description: File ID
format: uuid
gid:
type: number
description: Unix group id
format: int
uid:
type: number
description: Unix user id
format: int
created:
type: number
description: File creation timestamp
modified:
type: number
description: File modification timestamp
name:
type: string
description: File name
parent_id:
type: string
description: File parent ID
format: uuid
size:
type: number
description: File size in bytes
format: int
type:
type: string
description: File type
metadata:
type: object
format: json
description: File metadata json
operations:
type: number
description: File operations bitmask
format: int
sub_type:
type: string
description: File origin info
content:
type: array
items:
$ref: '#/components/schemas/FileResp'
UserResp:
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
home_id:
type: string
format: uuid
home_name:
type: string
super_admin:
type: string
enum:
- Y
- N
name:
type: string
email:
type: string
format: email
status:
type: string
quota:
type: number
format: integer
created:
type: number
format: timestamp
modified:
type: number
format: timestamp
groups:
type: array
items:
$ref: '#/components/schemas/Group'
user_operations:
type: number
format: integer
effective_operations:
type: number
format: integer
home_operations:
type: number
format: integer
language:
type: string
has_key:
type: boolean
services:
type: array
items:
$ref: '#/components/schemas/ShortUserService'
unique_login:
type: string
sftp_login:
type: string
sftp_home:
type: string
readonly:
type: boolean
auth_methods:
type: array
items:
type: string
last_login:
type: number
format: timestamp
storage_used:
type: number
format: integer
forced_auth:
type: array
items:
type: string
notes:
type: string
ShortUserService:
type: object
properties:
id:
type: string
format: uuid
service_key:
type: string
ContactResp:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
email:
type: string
format: email
type:
type: string
status:
type: string
created:
type: integer
format: timestamp
owner_id:
type: string
format: uuid
readonly:
type: boolean
has_key:
type: boolean
groups:
type: array
items:
$ref: '#/components/schemas/Group'
ContactUpgradeResp:
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
home_id:
type: string
format: uuid
home_name:
type: string
super_admin:
type: string
enum:
- Y
- N
name:
type: string
email:
type: string
format: email
status:
type: string
quota:
type: number
format: integer
created:
type: number
format: timestamp
modified:
type: number
format: timestamp
groups:
type: array
items:
$ref: '#/components/schemas/Group'
user_operations:
type: number
format: integer
effective_operations:
type: number
format: integer
home_operations:
type: number
format: integer
language:
type: string
storage_id:
type: string
format: uuid
has_key:
type: boolean
services:
type: array
items:
$ref: '#/components/schemas/ShortUserService'
unique_login:
type: string
readonly:
type: boolean
auth_methods:
type: array
items:
type: string
PgpKeyResp:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
created:
type: integer
format: timestamp
modified:
type: integer
format: timestamp
public:
type: string
format: base64
private:
type: string
format: base64
email:
type: string
format: email
JobResp:
type: object
properties:
job_id:
type: string
format: uuid
FileTagResp:
type: object
properties:
id:
type: string
format: uuid
type:
type: string
value:
type: string
FileTagByParentResp:
type: object
properties:
file_id:
type: string
format: uuid
tags:
$ref: '#/components/schemas/FileTagResp'
SearchReq:
type: object
properties:
_and:
type: array
items:
$ref: '#/components/schemas/SearchQuery'
_or:
type: array
items:
$ref: '#/components/schemas/SearchQuery'
SearchQuery:
type: object
properties:
tag:
$ref: '#/components/schemas/TagSearchQueryElement'
name:
$ref: '#/components/schemas/StringSearchQueryElement'
created:
$ref: '#/components/schemas/TimestampSearchQueryElement'
modified:
$ref: '#/components/schemas/TimestampSearchQueryElement'
SearchTag:
type: object
properties:
type:
type: string
enum:
- text
- from
- to
value:
type: string
TagSearchQueryElement:
type: object
properties:
_and:
type: array
items:
$ref: '#/components/schemas/SearchTag'
_or:
type: array
items:
$ref: '#/components/schemas/SearchTag'
StringSearchQueryElement:
type: object
properties:
_and:
type: array
items:
type: string
_or:
type: array
items:
type: string
TimestampSearchQueryElement:
type: object
properties:
_and:
type: array
items:
type: number
format: timestamp
_or:
type: array
items:
type: number
format: timestamp
GroupMetadata:
type: object
properties:
is_system:
type: boolean
translation_id:
type: string
format: uuid
visual_order:
type: number
format: integer
Group:
type: object
properties:
id:
type: string
format: uuid
metadata:
$ref: '#/components/schemas/GroupMetadata'
name:
type: string
GroupResp:
type: object
properties:
id:
type: string
format: uuid
parent_id:
type: string
format: uuid
parent_name:
type: string
name:
type: string
type:
type: string
operations:
type: number
format: integer
users:
type: array
items:
$ref: '#/components/schemas/IdName'
groups:
type: array
items:
$ref: '#/components/schemas/IdName'
metadata:
$ref: '#/components/schemas/GroupMetadata'
IdName:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
ProjectOwner:
type: object
properties:
email:
type: string
name:
type: string
id:
type: string
format: uuid
UserPermissionReq:
type: object
properties:
user_id:
type: string
format: uuid
operations:
type: number
format: integer
notify:
type: boolean
default: false
UserPermissionResp:
type: object
properties:
user_id:
type: string
format: uuid
operations:
type: number
format: integer
owns:
type: boolean
notify:
type: boolean
SettingsResp:
type: object
properties:
title:
type: string
bcc:
type: array
items:
type: string
billing_emails:
type: array
items:
type: string
email_footer:
type: string
modified:
type: number
language:
type: string
pgp_enabled:
type: boolean
share_types:
type: object
properties: {}
ServiceResp:
type: object
properties:
id:
type: string
format: uuid
key:
type: string
base:
type: boolean
properties:
type: object
properties: {}
users:
type: array
items:
type: object
properties:
id:
type: string
name:
type: string
forced_auth:
type: array
items:
type: string
AutomationResp:
type: object
properties:
id:
type: string
format: uuid
owner_id:
type: string
format: uuid
file_id:
type: string
format: uuid
created:
type: number
format: integer
modified:
type: number
format: integer
status:
type: string
enum:
- A
- D
action:
type: string
enum:
- autodelete
options:
$ref: '#/components/schemas/AutomationOptions'
email:
type: array
items:
type: string
file_path:
type: string
rule_num:
type: number
format: integer
AutomationOptions:
type: object
properties:
expire:
type: number
format: integer
keep_folder_structure:
type: boolean
protected_folder_ids:
type: array
items:
type: string
format: uuid
skip_home_folders:
type: boolean
skip_shared_folders:
type: boolean
super_trash:
type: boolean
oauth_code:
type: string
description: automation metadata json
format: json
SshKeyResp:
type: object
properties:
id:
type: string
format: uuid
user_id:
type: string
format: uuid
email:
type: string
unique_login:
type: string
sftp_login:
type: string
caption:
type: string
fingerprint:
type: string
modified:
type: number
format: integer
expires:
type: number
format: integer
status:
type: string
enum:
- A
- D
APIKeyResp:
type: object
properties:
id:
type: string
format: uuid
role_id:
type: string
format: uuid
email:
type: string
key:
type: string
hint:
type: string
created:
type: number
format: integer
modified:
type: number
format: integer
status:
type: string
enum:
- A
- D
AccountBranding:
type: object
properties:
banner_text:
type: string
sender_name:
type: string
sender_email:
type: string
email_validated:
type: boolean
email_title_prefix:
type: string
body_header:
type: string
body_footer:
type: string
status:
type: string
enum:
- A
- D
AccountBrandingReq:
type: object
properties:
banner_text:
type: string
sender_name:
type: string
sender_email:
type: string
email_title_prefix:
type: string
body_header:
type: string
body_footer:
type: string
AccountBrandingPreview:
type: object
properties:
body_header:
type: string
body_footer:
type: string
CommentResp:
type: object
properties:
id:
type: string
description: comment id
format: uuid
message:
type: string
description: rendered message
raw_message:
type: string
description: raw message with markdown
role_id:
type: string
description: role id
format: uuid
role_name:
type: string
description: name of user
role_status:
type: string
enum:
- A
- D
- R
created:
type: string
format: dateTime
modified:
type: string
format: dateTime
file_id:
type: string
format: uuid
CommentGroupedResp:
type: object
properties:
file_id:
type: string
description: file id
format: uuid
number:
type: integer
description: number of comments
comments:
title: comments
type: array
items:
$ref: '#/components/schemas/CommentResp'
CommentReq:
type: object
properties:
message:
maxLength: 1000
type: string
CommentModifyResp:
type: object
properties:
id:
type: string
description: comment id
format: uuid
message:
type: string
description: rendered message
raw_message:
type: string
description: raw message with markdown
created:
type: string
format: dateTime
modified:
type: string
format: dateTime
file_id:
type: string
format: uuid
CommentPreviewResp:
type: object
properties:
message:
type: string
ErrorModel:
required:
- code
- msg
type: object
properties:
msg:
type: string
description: error details
code:
minimum: -1
maximum: 100
type: integer
details:
type: object
description: additional information per call
responses:
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
parameters:
ContactId:
name: id
in: path
description: ID of a contact
required: true
schema:
type: string
format: uuid
FileId:
name: id
in: path
description: ID of a file
required: true
schema:
type: string
format: uuid
FileContentFlag:
name: content
in: query
description: Return content flag
required: false
schema:
type: number
format: int
default: 1
enum:
- 0
- 1
WidgetId:
name: id
in: path
description: ID of a widget
required: true
schema:
type: string
format: uuid
securitySchemes:
session_id:
description: Value returned in /session/login
type: apiKey
name: X-Auth-Token
in: header
basicAuth:
type: http
description: HTTP Basic Authentication. Works over `HTTP` and `HTTPS`.
scheme: basic
bearerAuth:
description: Value returned in /api-key/create
type: http
scheme: bearer