Retrieve all user upload sessions
Returns all active (not yet completed) upload sessions associated with the authenticated user. Each record includes the session ID, file name, total and uploaded sizes, chunk counts, and upload URI.
Offset
Limit
If specified, "offset" parameter will be ignored
and the page containing entity with this Id will be returned.
With parameters
Determines the detail level of the response body.
Upload sessions retrieved successfully.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Total number of items available.
Maximum number of items returned per page.
Number of items skipped before the current page.
Request blocked by WAF
curl -X GET \
"https://{instance}.kiteworks.com/rest/uploads" \
-H "Authorization: Bearer YOUR_TOKEN"import requests
url = "https://{instance}.kiteworks.com/rest/uploads"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
}
response = requests.get(url, headers=headers)
print(response.json())Get upload server configuration
Returns the configuration of the upload server, including its active status and the maximum allowed chunk size.
Upload server configuration retrieved successfully.
ACFS database name
Indicates whether the upload server is active
ACFS status message
Minimum replication factor required for data stored on this ACFS node
Maximum size of a single upload chunk in bytes
Upload timeout in seconds
Indicates whether uploaded data is wiped from temporary storage after processing
Request blocked by WAF
curl -X GET \
"https://{instance}.kiteworks.com/rest/uploads/config" \
-H "Authorization: Bearer YOUR_TOKEN"import requests
url = "https://{instance}.kiteworks.com/rest/uploads/config"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
}
response = requests.get(url, headers=headers)
print(response.json())Get upload session
Returns the details of the specified upload session, including its progress, file size, chunk counts, and upload URI.
The unique identifier of the upload session
With parameters
Determines the detail level of the response body.
Upload session details retrieved successfully.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Request blocked by WAF
curl -X GET \
"https://{instance}.kiteworks.com/rest/uploads/:id" \
-H "Authorization: Bearer YOUR_TOKEN"import requests
id = "VALUE" # The unique identifier of the upload session
url = f"https://{{instance}}.kiteworks.com/rest/uploads/{id}"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
}
response = requests.get(url, headers=headers)
print(response.json())Terminate upload session
Terminates the specified upload session and discards any uploaded chunks. If the session resides on a different upload node, the termination request is forwarded to that node.
The unique identifier of the upload session.
Upload session terminated successfully.
Request blocked by WAF
curl -X DELETE \
"https://{instance}.kiteworks.com/rest/uploads/:id" \
-H "Authorization: Bearer YOUR_TOKEN"import requests
id = "VALUE" # The unique identifier of the upload session.
url = f"https://{{instance}}.kiteworks.com/rest/uploads/{id}"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
}
response = requests.delete(url, headers=headers)
print(response.json())Initiate a ZIP archive upload session for a folder
Description:
Creates an upload session for a ZIP archive to be uploaded to the specified folder. The archive will be automatically extracted after all chunks are received. Once the session is created, an upload link is returned which can be used to upload the archive in chunks.Precondition:
The user must have `file_add` permission for the folder.Response:
The upload session is created and an upload link is returned for subsequent chunk uploads.The unique identifier (UUID) of the entity.
Name of the file to be uploaded.
Total size of the file to be uploaded, in bytes.
Total number of chunks the file will be split into. Must be at least 1.
File creation timestamp as reported by the client (e.g. from the OS or browser).
File last-modified timestamp as reported by the client (e.g. from the OS or browser).
Proximate hostname used to direct client uploads to the nearest available storage endpoint.
Tracking ID for correlating the upload with an external transfer
Indicates whether this is a resumption of a previously interrupted upload. Only applicable when a file with the same name already exists. Currently used internally for SFTP transfers only.
Total uncompressed size of the archive file, in bytes.
Upload session successfully created and an upload link returned.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Bad Request
Possible error codes: ERR_REQUEST_INVALID_JSON
Error code
Error message
Unauthorized
Possible error codes: ERR_AUTH_INVALID_CSRF, ERR_AUTH_UNAUTHORIZED
Error code
Error message
Forbidden
Possible error codes: ERR_ACCESS_USER, ERR_ENTITY_DLP_LOCKED, ERR_ENTITY_IS_BASE_DIR, ERR_ENTITY_NOT_SCANNED, ERR_ENTITY_RESTRICTED_EXTENSION, ERR_ENTITY_VIRUS_FOUND
Error code
Error message
Content Too Large
Possible error codes: ERR_SYSTEM_NO_STORAGE_AVAILABLE
Error code
Error message
Unprocessable Content
Possible error codes: ERR_INPUT_INVALID_DATE, ERR_INPUT_INVALID_FORMAT, ERR_INPUT_MAX_VALUE, ERR_INPUT_MIN_VALUE, ERR_INVALID_PARAMETER, ERR_SYSTEM_NO_STORAGE_AVAILABLE, ERR_SYSTEM_NO_AVAILABLE_STORAGE_HOSTS
Error code
Error message
Request blocked by WAF
curl -X POST \
"https://{instance}.kiteworks.com/rest/folders/:id/actions/initiateUpload/zip" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}'import requests
id = "VALUE" # The unique identifier (UUID) of the entity.
url = f"https://{{instance}}.kiteworks.com/rest/folders/{id}/actions/initiateUpload/zip"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
}
payload = {
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Initiate a file upload session for a folder
Description:
Creates an upload session for a file to be added to the specified folder. Once the session is created, an upload link is returned which can be used to upload the file in chunks.Precondition:
The user must have `file_add` permission for the folder.Response:
The upload session is created and an upload link is returned for subsequent chunk uploads.The unique identifier (UUID) of the entity.
Name of the file to be uploaded.
Total size of the file to be uploaded, in bytes.
Total number of chunks the file will be split into. Must be at least 1.
File creation timestamp as reported by the client (e.g. from the OS or browser).
File last-modified timestamp as reported by the client (e.g. from the OS or browser).
Proximate hostname used to direct client uploads to the nearest available storage endpoint.
Tracking ID for correlating the upload with an external transfer
Indicates whether this is a resumption of a previously interrupted upload. Only applicable when a file with the same name already exists. Currently used internally for SFTP transfers only.
Upload session successfully created and an upload link returned.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Bad Request
Possible error codes: ERR_REQUEST_INVALID_JSON
Error code
Error message
Unauthorized
Possible error codes: ERR_AUTH_INVALID_CSRF, ERR_AUTH_UNAUTHORIZED
Error code
Error message
Forbidden
Possible error codes: ERR_ACCESS_USER, ERR_ENTITY_DLP_LOCKED, ERR_ENTITY_IS_BASE_DIR, ERR_ENTITY_NOT_SCANNED, ERR_ENTITY_RESTRICTED_EXTENSION, ERR_ENTITY_VIRUS_FOUND
Error code
Error message
Content Too Large
Possible error codes: ERR_SYSTEM_NO_STORAGE_AVAILABLE
Error code
Error message
Unprocessable Content
Possible error codes: ERR_INPUT_INVALID_DATE, ERR_INPUT_INVALID_FORMAT, ERR_INPUT_MAX_VALUE, ERR_INPUT_MIN_VALUE, ERR_INVALID_PARAMETER, ERR_SYSTEM_NO_STORAGE_AVAILABLE, ERR_SYSTEM_NO_AVAILABLE_STORAGE_HOSTS
Error code
Error message
Request blocked by WAF
curl -X POST \
"https://{instance}.kiteworks.com/rest/folders/:id/actions/initiateUpload" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}'import requests
id = "VALUE" # The unique identifier (UUID) of the entity.
url = f"https://{{instance}}.kiteworks.com/rest/folders/{id}/actions/initiateUpload"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
}
payload = {
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Initiate a file upload session for a request file
Description:
Creates an upload session for a file to be uploaded to a request file. Once the session is created, an upload link is returned which can be used to upload the file in chunks.Precondition:
The caller must have access to the request file for uploading.Response:
The upload session is created and an upload link is returned for subsequent chunk uploads.The unique reference of the Request File upload link.
Name of the file to be uploaded.
Total size of the file to be uploaded, in bytes.
Total number of chunks the file will be split into. Must be at least 1.
File creation timestamp as reported by the client (e.g. from the OS or browser).
File last-modified timestamp as reported by the client (e.g. from the OS or browser).
Proximate hostname used to direct client uploads to the nearest available storage endpoint.
Tracking ID for correlating the upload with an external transfer
Indicates whether this is a resumption of a previously interrupted upload. Only applicable when a file with the same name already exists. Currently used internally for SFTP transfers only.
Upload session successfully created and an upload link returned.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Bad Request
Possible error codes: ERR_REQUEST_INVALID_JSON
Error code
Error message
Unauthorized
Possible error codes: ERR_AUTH_INVALID_CSRF, ERR_AUTH_UNAUTHORIZED
Error code
Error message
Forbidden
Possible error codes: ERR_ACCESS_USER, ERR_ENTITY_IS_BASE_DIR, ERR_ENTITY_REQUEST_FILE_UPLOAD_LIMIT_REACHED, ERR_ENTITY_RESTRICTED_EXTENSION
Error code
Error message
Content Too Large
Possible error codes: ERR_SYSTEM_NO_STORAGE_AVAILABLE
Error code
Error message
Unprocessable Content
Possible error codes: ERR_INPUT_INVALID_DATE, ERR_INPUT_INVALID_FORMAT, ERR_INPUT_MAX_VALUE, ERR_INPUT_MIN_VALUE, ERR_INVALID_PARAMETER, ERR_SYSTEM_NO_AVAILABLE_STORAGE_HOSTS
Error code
Error message
Request blocked by WAF
curl -X POST \
"https://{instance}.kiteworks.com/rest/requestFile/:ref/actions/initiateUpload" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}'import requests
ref = "VALUE" # The unique reference of the Request File upload link.
url = f"https://{{instance}}.kiteworks.com/rest/requestFile/{ref}/actions/initiateUpload"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
}
payload = {
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Initiate a file upload session for an email attachment
Description:
Creates an upload session for a file to be attached to an email. Once the session is created, an upload link is returned which can be used to upload the attachment in chunks.Precondition:
The user must be the sender of the email.Response:
The upload session is created and an upload link is returned for subsequent chunk uploads.The unique identifier (UUID) of the email.
Name of the file to be uploaded.
Total size of the file to be uploaded, in bytes.
Total number of chunks the file will be split into. Must be at least 1.
File creation timestamp as reported by the client (e.g. from the OS or browser).
File last-modified timestamp as reported by the client (e.g. from the OS or browser).
Proximate hostname used to direct client uploads to the nearest available storage endpoint.
Tracking ID for correlating the upload with an external transfer
Indicates whether this is a resumption of a previously interrupted upload. Only applicable when a file with the same name already exists. Currently used internally for SFTP transfers only.
Upload session successfully created and an upload link returned.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Bad Request
Possible error codes: ERR_REQUEST_INVALID_JSON
Error code
Error message
Unauthorized
Possible error codes: ERR_AUTH_INVALID_CSRF, ERR_AUTH_UNAUTHORIZED
Error code
Error message
Forbidden
Possible error codes: ERR_ACCESS_USER, ERR_ENTITY_IS_BASE_DIR, ERR_ENTITY_RESTRICTED_EXTENSION
Error code
Error message
Content Too Large
Possible error codes: ERR_SYSTEM_NO_STORAGE_AVAILABLE
Error code
Error message
Unprocessable Content
Possible error codes: ERR_INPUT_INVALID_DATE, ERR_INPUT_INVALID_FORMAT, ERR_INPUT_MAX_VALUE, ERR_INPUT_MIN_VALUE, ERR_INVALID_PARAMETER, ERR_SYSTEM_NO_AVAILABLE_STORAGE_HOSTS
Error code
Error message
Request blocked by WAF
curl -X POST \
"https://{instance}.kiteworks.com/rest/mail/:id/actions/initiateUpload" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}'import requests
id = "VALUE" # The unique identifier (UUID) of the email.
url = f"https://{{instance}}.kiteworks.com/rest/mail/{id}/actions/initiateUpload"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
}
payload = {
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Initiate an unauthenticated file upload session for an email attachment
Description:
Creates an upload session for a file to be attached to an email, without requiring full authentication. Once the session is created, an upload link is returned which can be used to upload the attachment in chunks.Precondition:
The caller must have a valid unauthenticated access context for the specified email.Response:
The upload session is created and an upload link is returned for subsequent chunk uploads.The unique identifier (UUID) of the email.
Name of the file to be uploaded.
Total size of the file to be uploaded, in bytes.
Total number of chunks the file will be split into. Must be at least 1.
File creation timestamp as reported by the client (e.g. from the OS or browser).
File last-modified timestamp as reported by the client (e.g. from the OS or browser).
Proximate hostname used to direct client uploads to the nearest available storage endpoint.
Tracking ID for correlating the upload with an external transfer
Indicates whether this is a resumption of a previously interrupted upload. Only applicable when a file with the same name already exists. Currently used internally for SFTP transfers only.
Upload session successfully created and an upload link returned.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Bad Request
Possible error codes: ERR_REQUEST_INVALID_JSON
Error code
Error message
Unauthorized
Possible error codes: ERR_AUTH_INVALID_CSRF, ERR_AUTH_UNAUTHORIZED
Error code
Error message
Forbidden
Possible error codes: ERR_ACCESS_USER, ERR_ENTITY_IS_BASE_DIR, ERR_ENTITY_RESTRICTED_EXTENSION
Error code
Error message
Content Too Large
Possible error codes: ERR_SYSTEM_NO_STORAGE_AVAILABLE
Error code
Error message
Unprocessable Content
Possible error codes: ERR_INPUT_INVALID_DATE, ERR_INPUT_INVALID_FORMAT, ERR_INPUT_MAX_VALUE, ERR_INPUT_MIN_VALUE, ERR_INVALID_PARAMETER, ERR_SYSTEM_NO_AVAILABLE_STORAGE_HOSTS
Error code
Error message
Request blocked by WAF
curl -X POST \
"https://{instance}.kiteworks.com/rest/public/mail/:id/actions/initiateUpload" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}'import requests
id = "VALUE" # The unique identifier (UUID) of the email.
url = f"https://{{instance}}.kiteworks.com/rest/public/mail/{id}/actions/initiateUpload"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
}
payload = {
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Initiate an upload session for a new file version
Description:
Creates an upload session to add a new version of an existing file. Once the session is created, an upload link is returned which can be used to upload the new version in chunks.Precondition:
The user must have `version_created` permission for the specified file.Response:
The upload session is created and an upload link is returned for subsequent chunk uploads.The unique identifier (UUID) of the entity.
Name of the file to be uploaded.
Total size of the file to be uploaded, in bytes.
Total number of chunks the file will be split into. Must be at least 1.
File creation timestamp as reported by the client (e.g. from the OS or browser).
File last-modified timestamp as reported by the client (e.g. from the OS or browser).
Proximate hostname used to direct client uploads to the nearest available storage endpoint.
Tracking ID for correlating the upload with an external transfer
Indicates whether this is a resumption of a previously interrupted upload. Only applicable when a file with the same name already exists. Currently used internally for SFTP transfers only.
Upload session successfully created and an upload link returned.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
Bad Request
Possible error codes: ERR_REQUEST_INVALID_JSON
Error code
Error message
Unauthorized
Possible error codes: ERR_AUTH_INVALID_CSRF, ERR_AUTH_UNAUTHORIZED
Error code
Error message
Forbidden
Possible error codes: ERR_ACCESS_USER, ERR_ENTITY_DLP_LOCKED, ERR_ENTITY_IS_BASE_DIR, ERR_ENTITY_NOT_SCANNED, ERR_ENTITY_RESTRICTED_EXTENSION, ERR_ENTITY_VIRUS_FOUND
Error code
Error message
Content Too Large
Possible error codes: ERR_SYSTEM_NO_STORAGE_AVAILABLE
Error code
Error message
Unprocessable Content
Possible error codes: ERR_INPUT_INVALID_DATE, ERR_INPUT_INVALID_FORMAT, ERR_INPUT_MAX_VALUE, ERR_INPUT_MIN_VALUE, ERR_INVALID_PARAMETER, ERR_SYSTEM_NO_AVAILABLE_STORAGE_HOSTS
Error code
Error message
Request blocked by WAF
curl -X POST \
"https://{instance}.kiteworks.com/rest/files/:id/actions/initiateUpload" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}'import requests
id = "VALUE" # The unique identifier (UUID) of the entity.
url = f"https://{{instance}}.kiteworks.com/rest/files/{id}/actions/initiateUpload"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
}
payload = {
"filename": "string",
"totalSize": 1,
"totalChunks": 1,
"clientCreated": "2024-01-15",
"clientModified": "2024-01-15",
"proximateHost": "string"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())Upload a file chunk
Description:
Uploads a single chunk of a file to the server using the upload link obtained from an initiate-upload call. The file is reconstructed server-side once all chunks are received.Precondition:
- The caller must hold a valid upload link.
- The client must split the file into chunks before uploading.
- Chunks must be uploaded sequentially, starting from index 1.
Response:
Returns the updated upload session after each intermediate chunk, and the completed file record after the final chunk.The upload host name, which can be retrieved from GET /uploads/{id} or the initiateUpload response.
The unique identifier of the upload.
If true, includes the entity in the response body.
Specifies additional fields to include in the response.
Determines the detail level of the response body.
The compression algorithm applied to this chunk.NORMAL – No compression; the chunk is sent as-is.GZIP – Chunk is compressed using GZIP.ZLIB – Chunk is compressed using ZLIB.
The size of the chunk after compression.
The content of the chunk. If the request is in JSON format, this will be base64-encoded.
The original upload content size before compression.
The sequential index of the chunk (starts from 1).
Indicates if this is the last chunk of the file (1 if last, 0 otherwise).
The current chunk upload is successfully received but not yet registered to the server.
Unique identifier for the upload.
Unique identifier of the user who initiated the upload.
Timestamp when the upload was initiated.
Total size of the uploaded file in bytes.
Total number of chunks the file was split into.
Name of the client uploading the file.
Time taken by the server to process the upload (in milliseconds).
Total size of the uploaded chunks in bytes.
Timestamp of the last uploaded chunk.
Error message in case of upload failure.
The URI for the upload link.
Flag indicating if the upload was completed successfully (1 for success, 0 otherwise).
URL where the uploaded file can be accessed.
ID of the file being replaced, if applicable.
Backend storage system used for the upload.
Indicates whether the upload process has finished.
Timestamp when the file was created on the client side.
Timestamp when the file was last modified on the client side.
ID of the file request associated with the upload.
ID of the email associated with the uploaded file, if applicable.
Number of chunks successfully uploaded.
The logical storage location of the uploaded file.
The complete URL for the upload link.
File uploaded successfully and is registered to the server after the last chunk is received.
Unique identifier (UUID) of the file.
Unique identifier (UUID) of the parent folder.
Name of the object.
Type of the object.f – File.d – Folder.
Unique identifier (UUID) who created the file.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
The date and time when the object was created.
The date and time when the object was last modified.
Expiration timestamp of the object, if applicable.
Unique identifier for the permission.
Name of the permission.
Indicates whether the permission is granted (True) or denied (False).
Indicates whether the object has been deleted.
Indicates whether the object has been permanently deleted.
Permanent URL link to access the file.
Path to the object in the hierarchy.
Unique identifier (UUID) of the associated object (file or folder).
Role assigned to the member.
Unique identifier (UUID) of the user.
Unique identifier of the LDAP group.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
Role ID
Role name
Role rank
Role type
LDAP Group ID
LDAP Group name
LDAP Group domain name
LDAP Group email
LDAP Group description
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
Date when the file or folder was shared.
Inherited role ID from the parent folder, if applicable.
List of allowed folder role IDs.
Email associated with the member.
Rank of the member role.
Vendor document ID associated with the object.
Name of the vendor document associated with the object.
Indicates whether the folder or the parent folder containing the file is marked as secure.
ID representing the source of the object (1 - Salesforce, 2 - Teams).
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
The size of the file in bytes.
The MIME type of the file.
A unique hash identifying the file.
The algorithm used to generate the fingerprint (e.g., sha3-256, md5).
The resulting hash value representing the fingerprint of the file or object.
The date and time when the file was created on the client side.
The date and time when the file was last modified on the client side.
Indicates whether the expiration date for the file has been overridden.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
The date and time when the file was shared.
Unique identifier (UUID) of the folder.
Unique identifier (UUID) of the parent object.
Name of the object.
Type of the object.f – File.d – Folder.
Unique identifier (UUID) who created the folder.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
The date and time when the object was created.
The date and time when the object was last modified.
Expiration timestamp of the object, if applicable.
Unique identifier for the permission.
Name of the permission.
Indicates whether the permission is granted (True) or denied (False).
Indicates whether the object has been deleted.
Indicates whether the object has been permanently deleted.
Permanent URL link to access the object.
Path to the folder in the hierarchy.
Unique identifier (UUID) of the associated object (file or folder).
Role assigned to the member.
Unique identifier (UUID) of the user.
Unique identifier of the LDAP group.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
Role ID
Role name
Role rank
Role type
LDAP Group ID
LDAP Group name
LDAP Group domain name
LDAP Group email
LDAP Group description
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
Date when the file or folder was shared.
Inherited role ID from the parent folder, if applicable.
List of allowed folder role IDs.
Email associated with the member.
Rank of the member role.
Vendor document ID associated with the object.
Name of the vendor document associated with the object.
Indicates whether the folder or the parent folder containing the file is marked as secure.
ID representing the source of the object (1 - Salesforce, 2 - Teams).
Indicates if the folder is shared with other users.
Indicates if the folder can be synced by Desktop Sync Client.
Time duration (in days) for which the files in this folder are kept after being added to the folder.
The description of the folder.
Indicates if the folder is marked as a favorite by the user.
The number of files that have been pushed to mobile apps in this folder.
Role ID
Role name
Role rank
Role type
The Antivirus (AV) status of the folder.
The Data Loss Prevention (DLP) status of the folder.
Total number of members who have access to this folder.
Total number of subfolders within this folder.
Total number of files within this folder.
The maximum expiration date allowed for files in this folder.
The maximum duration (in days) that files in this folder can be kept after being added to the folder.
Indicates if the folder is part of an LDAP group.
Indicates if this folder is a subfolder of the user's "My Folder".
A list of IDs representing the path of the folder within the folder hierarchy.
Indicates if this folder is a root folder.
The ID of the root folder if this is a subfolder.
Indicates if a folder quota is applied to this folder.
The storage quota for the folder (in bytes).
The total storage size used by the folder (in bytes).
The amount of free space available in the folder (in bytes).
Indicates if a folder inherits permissions from the parent folder
The ID of the original file if this one is a copy.
Indicates the file version's availability status based on Antivirus (AV) settings and whether it has been scanned or detected as infected.
Indicates the file version's availability status based on Data Loss Prevention (DLP) settings and whether it has been scanned or detected as infected.
Indicates the file version's availability status based on the administrator's quarantine status.
Indicates if the file is locked.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
Indicates if the file is shared with other users.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
Unique identifier (UUID) for the pushed object.
Unique identifier (UUID) for the user who pushed the object.
The date and time when the object was pushed.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
A list of IDs representing the path of the file within the folder hierarchy.
The WOPI (Web Application Open Platform Interface) source URL for the mobile application.
Unique identifier of the user.
The WOPI service ID.
URI scheme used by the mobile application to handle the file.
Indicates the level of support the mobile app has for the URI scheme.
Indicates if the file has been pushed to a mobile app.
Unique identifier (UUID) for the tag.
Display name of the tag.
Type category of the tag.
Indicates if the file is locked through a SafeEdit session.
Unique identifier (UUID) for the user.
Email address associated with the user.
Full name of the user.
URL or identifier for the user's profile icon.
The total number of versions for the file.
Tracking identifier associated with the file upload.
Bad Request
Possible error codes: ERR_REQUEST_INVALID_JSON
Error code
Error message
Unauthorized
Possible error codes: ERR_AUTH_INVALID_CSRF, ERR_AUTH_UNAUTHORIZED
Error code
Error message
Forbidden
Possible error codes: ERR_ACCESS_USER, ERR_ENTITY_DLP_LOCKED, ERR_ENTITY_IS_BASE_DIR, ERR_ENTITY_NOT_SCANNED, ERR_ENTITY_REQUEST_FILE_UPLOAD_LIMIT_REACHED, ERR_ENTITY_RESTRICTED_TYPE, ERR_ENTITY_VIRUS_FOUND
Error code
Error message
Unprocessable Content
Possible error codes: ERR_INPUT_NOT_IN_LIST, ERR_INVALID_PARAMETER, ERR_LICENSE_MAX_UPLOAD_SIZE
Error code
Error message
Request blocked by WAF
curl -X POST \
"https://{instance}.kiteworks.com/:host_name/rest/uploads/:id" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"compressionMode": "NORMAL",
"compressionSize": 1,
"content": "string",
"originalSize": 1,
"index": 1,
"lastChunk": 1
}'import requests
host_name = "VALUE" # The upload host name, which can be retrieved from GET /uploads/{id} or the initiateUpload response.
id = "VALUE" # The unique identifier of the upload.
url = f"https://{{instance}}.kiteworks.com/{host_name}/rest/uploads/{id}"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
}
payload = {
"compressionMode": "NORMAL",
"compressionSize": 1,
"content": "string",
"originalSize": 1,
"index": 1,
"lastChunk": 1
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())