File Management API is available for customers with available Pooled Storage containers, and would like to programmatically manage their stored data
Requirements
Pooled Storage — File Management API is only available with Pooled Storage (Shared Storage) containers
Pooled Storage is a subscription add-on. Please contact sales@authentic8.com for pricing informationFile Management API token (contact Support)
Pooled Storage bucket_id — instructions provided below
File Management API Requests
Below is a list of supported File Management API functionalities:
Upload files into Pooled Storage
Download files from Pooled Storage
Find files within Pooled Storage
Modify files within Pooled Storage
Delete files within Poled Storage
Uploading Files
Files can be uploaded by sending a POST request to the following API URL: https://extapi.authentic8.com/putfile/
Required Parameters
- bucket_id: target storage bucket
- name: name of file
- file: file data to be uploaded
- API endpoint: https://extapi.authentic8.com/putfile/
Optional Parameters
path: target directory within the storage bucket's folder structure. If unspecified, the root folder is assumed
content_type
File ID of created file: {"file_id": "9806902c9cbea3820739c8ffb5331293"}
cURL Example:
curl -X POST -F "auth=<api_token>" -F "bucket_id=<bucket_id>" -F "name=test_file" -F "path=/test_directory" -F "file=@/tmp/test_file" https://extapi.authentic8.com/putfile/
Sample Output:
{
"file_id": "9806902c9cbea3820739c8ffb5331293"
}
Sample Audit Log:
{
"username": "support_demo",
"client_ip": "127.0.0.1",
"bucket_id": "3966f9e5412cf711bb6f92cc273393a0",
"user_id": "46671c19c5509efccdb7e906413673d4",
"name": "test_file",
"uploading_until": null,
"seq_id": 3907037,
"org_id": "50925dc546925170f877036d3b7820c0",
"bucket_type": "Pooled Storage",
"create_user": "46671c19c5509efccdb7e906413673d4",
"bucket_name": "test",
"create_ts": "2016-11-04 18:20:41",
"content_type": "application/octet-stream",
"file_size": 241,
"action": "put file with external api",
"type": "A8SS",
"file_path": "/",
"file_id": "9806902c9cbea3820739c8ffb5331293"
}
Downloading Files
Files can be downloaded by sending a POST request to the following API URL: https://extapi.authentic8.com/getfile/
Required Parameters
file_id: unique File ID of the target object
curl -X POST -F "id=<file_id>" -F "auth=<api_token>" https://extapi.authentic8.com/getfile/ -o <filepath+filename>
Sample Audit Log:
{
"username": "support_demo",
"bucket_type": "Pooled Storage",
"bucket_id": "4ec26bca9804e16ac079f7c2c14ca96c",
"user_id": "e92a9e35c318b86d7d82131ba2fbbb5d",
"name": "test_file.pptx",
"org_id": "53ba4d41358a7f599d106eed140cb8b0",
"client_ip": "10.1.2.3",
"create_user": "e92a9e35c318b86d7d82131ba2fbbb5d",
"bucket_name": "Test",
"file_id": "11cc183d638672ad904d78f02e9af689",
"content_type": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"file_size": 413895,
"action": "get file with external api",
"type": "A8SS",
"file_path": "/",
"create_ts": "2025-07-25 16:22:51"
}
Finding Files
Required Parameter
bucket_id
Optional Parameters
name: filter by file name
path: filter by path
type: filter by object type (file, directory)
:name_starts_with: boolean parameter; specify that ‘name’ parameter should match the beginning of file name entries. Requires ‘name’ parameter to be present
:name_contains: boolean parameter; specify that ‘name’ parameter should be present in file name entries. Requires ‘name’ parameter to be present
:created_before : filter for files with create timestamps before this
:created_before_or_at : filter for files with create timestamps before or equal to this
:created_after : filter for files with create timestamps after this
:created_after_or_at : filter for files with create timestamps after or equal to this
More Info:
the “:created…” fields take ISO8601 strings (e.g., 2025-07-25T18:19:11.265006), epoch time (e.g., 1478127958), or “now+<seconds>”. To specify a time in the past by relative offset, use “now+-<seconds>”
If path is not specified, a full-bucket search is performed
The filters are treated as “and” arguments
The JSON must be submitted as a POST request to: https://extapi.authentic8.com/api/
cURL Example:
curl -X POST https://extapi.authentic8.com/api/ -H "Content-Type: application/json" -d '[{"command":"setauth","data":"<api_token>"},{"command":"findfiles","bucket_id":"3966f9e5412cf711bb6f92cc273393a0",":created_after":"now+-5"}]'
Sample Output:
[
{
"result": "setting auth from data"
},
{
"result": [
{
"bucket_id": "3966f9e5412cf711bb6f92cc273393a0",
"content_type": "application/octet-stream",
"create_ts": "2025-07-25T18:20:40.851985",
"expire_ts": null,
"file_id": "3486e12ebd7ab8666615126ee3d49599",
"file_size": 241,
"name": "test_file",
"path": "/",
"type": "file",
"uploading_until": null
}
]
}
]
Important: No audit logs are generated with the findfiles functionality
Modifying Files
Required Parameters
file_id
The JSON must be submitted as a POST request to: https://extapi.authentic8.com/api/
Optional Parameters
content_type
name
path
expire_ts
expire_ts formats
ISO8601 string (e.g., 2025-07-25T18:19:11.265006)
epoch time (e.g., 1478127958)
now+<seconds> : offset from current time (seconds may be negative)
+<seconds> : offset from existing expire time (seconds may be negative)
reset: set file expire to default bucket expire time. For example, if the bucket has a 90-day default expire, “reset” would set the file’s expiration time to 90 days in the future, as though it had just been created
cURL Example:
curl -X POST https://extapi.authentic8.com/api/ -H "Content-Type: application/json" -d '[{"command":"setauth","data":"<api_token>"},{"command":"modifyfile","name":"newname","expire_ts":"now+3600","file_id":"b5ea33ed8762698c629db9fc17e26c5e"}]'
Sample Output:
[
{
"result": "setting auth from data"
},
{
"result": "update file b5ea33ed8762698c629db9fc17e26c5e [expire_ts, name]"
}
]
Sample Audit Log:
{
"username": "support_demo",
"bucket_type": "Pooled Storage",
"user_id": "46671c19c5509efccdb7e906413673d4",
"new_values": {
"name": "newname",
"expire_ts": "2025-07-25T19:20:42.593791",
"uploading_until": null,
"bucket_id": "3966f9e5412cf711bb6f92cc273393a0",
"create_ts": "2025-07-254T18:20:40.851985",
"content_type": "application/octet-stream",
"file_size": 241,
"path": "/",
"type": "file",
"file_id": "3486e12ebd7ab8666615126ee3d49599"
},
"org_id": "50925dc546925170f877036d3b7820c0",
"client_ip": "127.0.0.1",
"bucket_id": "3966f9e5412cf711bb6f92cc273393a0",
"file_id": "3486e12ebd7ab8666615126ee3d49599",
"old_values": {
"name": "oldname",
"expire_ts": null,
"uploading_until": null,
"bucket_id": "3966f9e5412cf711bb6f92cc273393a0",
"create_ts": "2025-07-25T18:20:40.851985",
"content_type": "application/octet-stream",
"file_size": 241,
"path": "/",
"type": "file",
"file_id": "3486e12ebd7ab8666615126ee3d49599"
},
"seq_id": 3907038,
"action": "modify file with external api",
"type": "A8SS",
"create_ts": "2025-07-25 18:20:42"
}
Deleting Files
Required Parameter
file_id
The JSON must be submitted as a POST request to: https://extapi.authentic8.com/api/
Important: There are no optional parameters for the deletefile functionality
cURL Example:
curl -X POST https://extapi.authentic8.com/api/ -H "Content-Type: application/json" -d '[{"command":"setauth","data":"<api_token>"},{"command":"deletefile","file_id":"c1396149c1982c246c5a7d719080ce89"}]'
Sample Output:
[
{
"result": "setting auth from data"
},
{
"result": "deleted file c1396149c1982c246c5a7d719080ce89"
}
]
Sample Audit Log:
{
"username": "support_demo",
"client_ip": "127.0.0.1",
"bucket_id": "3966f9e5412cf711bb6f92cc273393a0",
"user_id": "46671c19c5509efccdb7e906413673d4",
"name": "newname",
"uploading_until": null,
"seq_id": 3907039,
"org_id": "50925dc546925170f877036d3b7820c0",
"bucket_type": "Pooled Storage",
"create_user": "46671c19c5509efccdb7e906413673d4",
"bucket_name": "Test",
"create_ts": "2025-07-25 18:20:43",
"content_type": "application/octet-stream",
"file_size": 241,
"action": "delete file with external api",
"type": "A8SS",
"file_path": "/",
"file_id": "3486e12ebd7ab8666615126ee3d49599"
}
More Info:
All API requests require a File Management API Token (contact Support to obtain one)
Support for Cloud Secure Storage API requests is available with Pooled Storage only. Temporary Storage and Per User Storage (My Drive) are not supported at this time|
Please contact Support for any additional questions