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 information


  • File 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 Example:


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


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



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