This page displays all APIs that are grouped by resource type with their data representations and methods. 

We use Swagger for generating and maintaining our API documentation. You can explore calls using your own data in multiple programming languages. 

For details on what languages are supported, go to Swagger Codegen documentation where you could learn how to install Swagger Codegen for generation of your API client library in your preferred language.

We are here if you need us with 24/7 phone and email support@maytech.net
Int & UK: +44 (0) 189 286-1222
USA: 1 800 592-1906

swagger: '2.0' info: version: 1.0.0 title: FTP-Stream API tags: - name: Account description: Get general information about the account - name: Public description: Public calls that don't require authentication - name: Session description: FTP-Stream session management calls - name: Profile description: Get information about profile and reset password - name: Files description: files/folders operations (move, copy, download, etc.) - name: Snapshots description: Get snapshot list and restore files from the snapshots - name: Jobs description: Get information about background jobs schemes: - https host: <your account name>.ftpstream.com basePath: /api/1.0 consumes: - application/json produces: - application/json securityDefinitions: Bearer: type: apiKey name: Authorization in: header basicAuth: type: basic description: HTTP Basic Authentication. Works over `HTTP` and `HTTPS`. security: - Bearer: [] paths: /account: get: tags: - Account summary: Get account metadata security: [] responses: '200': description: Account metadata schema: $ref: '#/definitions/accountResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /public/list: post: tags: - Public summary: Get public files/directories/shared folders security: [] parameters: - in: body name: body required: true schema: $ref: '#/definitions/publicListPayload' responses: '200': description: public files/folders list schema: $ref: '#/definitions/publicListResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /public/download: post: tags: - Public summary: Return public downloader url security: [] parameters: - in: body name: body required: true schema: $ref: '#/definitions/publicDownloadPayload' responses: '200': description: public downloader url schema: $ref: '#/definitions/publicDownloadResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /public/download/{key}: get: tags: - Public summary: Public downloader by key security: [] parameters: - in: path name: key description: downloader key required: true type: string responses: '200': description: File content '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /session/login: get: tags: - Session summary: Log in to FTP Stream account security: - basicAuth: [] description: Set token to cookies responses: '200': description: Login success schema: $ref: '#/definitions/sessionLogin' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /session/logout: get: tags: - Session summary: Log out from FTP Stream account responses: '200': description: Logout success '500': description: Internal error schema: $ref: '#/definitions/errorModel' /session/setup-mfa: post: tags: - Session summary: Setup GA or SMS mfa parameters: - in: body name: body required: true schema: $ref: '#/definitions/setupMFAPayload' responses: '200': description: Setup MFA response schema: $ref: '#/definitions/setupMFAResponnse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /session/mfa: post: tags: - Session summary: Verify GA or SMS mfa code parameters: - in: body name: body required: true schema: $ref: '#/definitions/verifyMFAPayload' responses: '200': description: Setup MFA response schema: $ref: '#/definitions/verifyMFAResponnse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /profile: get: tags: - Profile summary: Get profile metadata responses: '200': description: Profile metadata schema: $ref: '#/definitions/profileResponse' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /profile/quota: get: tags: - Profile summary: Get profile quota from zfsd responses: '200': description: Profile quota response schema: $ref: '#/definitions/profileQuotaResponse' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /profile/password-reset: post: tags: - Profile summary: Send email with password reset url parameters: - in: body name: body required: true schema: $ref: '#/definitions/publicPasswordResetPayload' responses: '200': description: Password reset success response '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /profile/password-reset/{id}: post: tags: - Profile summary: Reset password parameters: - in: path name: id required: true type: string - in: body name: body required: true schema: $ref: '#/definitions/publicPasswordResetIDPayload' responses: '200': description: Password reset response schema: $ref: '#/definitions/publicPasswordResetIDResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' get: tags: - Profile summary: Check if reset password url is OK parameters: - in: path name: id required: true type: string responses: '200': description: Password reset response schema: $ref: '#/definitions/publicPasswordResetIDGetResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/list: post: tags: - Files summary: Get files list parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesListPayload' responses: '200': description: Files list response schema: $ref: '#/definitions/filesListResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/mkdir: post: tags: - Files summary: Create directory parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesMkDirPayload' responses: '200': description: Directory created '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/rename: post: tags: - Files summary: Rename directory/file parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesRenamePayload' responses: '200': description: Directory/File renamed '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/move: post: tags: - Files summary: Move directories/files parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesMovePayload' responses: '202': description: Task was published to move files schema: $ref: '#/definitions/filesJobIdResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/copy: post: tags: - Files summary: Copy directories/files parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesCopyPayload' responses: '202': description: Task was published to copy files schema: $ref: '#/definitions/filesJobIdResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/zip: post: tags: - Files summary: Generate Zip from files parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesZipPayload' responses: '202': description: Task was published to zip files schema: $ref: '#/definitions/filesJobIdResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/unzip: post: tags: - Files summary: Unzip files from zip parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesUnZipPayload' responses: '202': description: Task was published to zip files schema: $ref: '#/definitions/filesJobIdResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/delete: post: tags: - Files summary: Delete files parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesDeletePayload' responses: '202': description: Task was published to delete files schema: $ref: '#/definitions/filesJobIdResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/download: post: tags: - Files summary: Get Download url parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesDownloadPayload' responses: '200': description: Download link schema: $ref: '#/definitions/filesDownloadResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/download/{key}: get: tags: - Files summary: Files downloader by key parameters: - in: path name: key description: downloader key required: true type: string responses: '200': description: File content '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/upload: post: tags: - Files summary: Upload file parameters: - in: query name: filename required: true type: string responses: '200': description: Successfully uploaded '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /files/link: post: tags: - Files summary: Get Download link description: Generate downloader link to downloader files without session parameters: - in: body name: body required: true schema: $ref: '#/definitions/filesLinkPayload' responses: '200': description: Download link schema: $ref: '#/definitions/filesLinkResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /snapshots: get: tags: - Snapshots summary: Get all snapshots responses: '200': description: Snapshots schema: $ref: '#/definitions/snapshotsResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /snapshots/list: post: tags: - Snapshots summary: Get snapshots parameters: - in: body name: body required: true schema: $ref: '#/definitions/snapshotsListPayload' responses: '200': description: Snapshot list schema: $ref: '#/definitions/snapshotsListResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /snapshots/restore: post: tags: - Snapshots summary: Publish task to restore snapshot parameters: - in: body name: body required: true schema: type: array items: $ref: '#/definitions/snapshotsRestorePayload' responses: '202': description: Task was published to restore snapshot schema: $ref: '#/definitions/filesJobIdResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /jobs/list: post: tags: - Jobs summary: Get jobs info by ids parameters: - in: body name: body required: true schema: $ref: '#/definitions/jobsListPayload' responses: '200': description: Jobs info schema: $ref: '#/definitions/jobsListResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /jobs/info/{id}: get: tags: - Jobs summary: Get job info by id parameters: - in: path name: id required: true type: string responses: '200': description: Jobs info schema: $ref: '#/definitions/jobsInfoResponse' '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' /download/{key}: get: summary: Download by key description: Download without session security: [] parameters: - in: path name: key description: downloader key required: true type: string responses: '200': description: File content '400': description: Bad request schema: $ref: '#/definitions/errorModel' '401': description: Unauthorized schema: $ref: '#/definitions/errorModel' '404': description: Record not found schema: $ref: '#/definitions/errorModel' '500': description: Internal error schema: $ref: '#/definitions/errorModel' definitions: sessionLogin: type: object properties: session_id: type: string next_auth: type: string mfa_type: type: string setup_mfa: type: boolean accountResponse: type: object properties: id: type: integer label: type: string logo: type: string public_uploads: type: string public_downloads: type: string ack_tos: type: string tos_message: type: string back_link: type: string active: type: string force_strong_passwords: type: string strong_minimum: type: integer strong_alpha: type: integer strong_numeric: type: integer strong_nonalpha: type: integer force_iso: type: string publicListPayload: type: object required: - path properties: path: type: string publicListResponse: type: object properties: files: type: array items: type: object properties: type: type: string name: type: string size: type: integer time: type: integer setupMFAPayload: type: object properties: type: type: string phone: type: string setupMFAResponnse: type: object properties: type: type: string secret: type: string qr_code: type: string verifyMFAPayload: type: object properties: type: type: string code: type: string verifyMFAResponnse: type: object properties: success: type: boolean publicDownloadPayload: type: object properties: download_file_name: type: string release_time: type: integer expire_time: type: integer password: type: string notify: type: array items: type: string files: type: array items: type: string publicDownloadResponse: type: object properties: link: type: string format: url profileResponse: type: object properties: uid: type: integer gid: type: integer profile: type: string name: type: string homedir: type: string expires: type: string bytes_used: type: integer bytes_quota: type: integer admin: type: string active: type: string locked: type: string http_active: type: string web_file_list: type: string web_download: type: string web_upload: type: string web_overwrite: type: string web_delete: type: string web_manage: type: string web_media: type: string web_notification: type: string email: type: string recovery_email: type: string passwordless_link: type: string profileQuotaResponse: type: object properties: account_quota: type: integer account_used: type: integer user_quota: type: integer user_used: type: integer publicPasswordResetPayload: type: object properties: recover_user: type: string publicPasswordResetIDPayload: type: object properties: password: type: string login: type: string publicPasswordResetIDResponse: type: object properties: result: type: string message: type: string publicPasswordResetIDGetResponse: type: object properties: result: type: string logins: type: array items: type: object properties: login: type: string name: type: string filesListPayload: type: object properties: path: type: string filesListResponse: type: object properties: files: type: array items: type: object properties: type: type: string name: type: string size: type: integer time: type: integer perm: type: integer owner: type: integer filesMkDirPayload: type: object properties: path: type: string filesRenamePayload: type: object properties: path_from: type: string path_to: type: string filesMovePayload: type: object properties: path: type: string files: type: array items: type: string overwrite: type: boolean filesCopyPayload: type: object properties: path: type: string files: type: array items: type: string filesZipPayload: type: object properties: path: type: string files: type: array items: type: object properties: real_path: type: string user_path: type: string filesUnZipPayload: type: object properties: path: type: string filesDeletePayload: type: object properties: files: type: array items: type: string filesDownloadPayload: type: object properties: files: type: array items: type: string filesDownloadResponse: type: object properties: link: type: string filesLinkPayload: type: object properties: download_file_name: type: string release_time: type: integer expire_time: type: integer password: type: string notify: type: array items: type: string files: type: array items: type: string filesLinkResponse: type: object properties: link: type: string snapshotsResponse: type: object properties: snapshots: type: array items: type: string snapshotsListPayload: type: object properties: snapshot: type: string directory: type: string snapshotsListResponse: type: object properties: snapshots: type: array items: type: object properties: type: type: string name: type: string size: type: integer time: type: integer perm: type: integer owner: type: integer snapshotsRestorePayload: type: object properties: snapshot: type: string from: type: string to: type: string jobsListPayload: type: object properties: jobs: type: array items: type: string jobsListResponse: type: object properties: jobs: type: array items: type: object properties: job_id: type: string status: type: integer name: type: string cdate: type: integer jobsInfoResponse: type: object properties: job_id: type: string status: type: integer name: type: string cdate: type: integer notification: type: json filesJobIdResponse: type: object properties: job_id: type: string format: uuid errorModel: type: object properties: message: type: string description: error details