FTP-Stream API Explorer
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