Skip to content
Hoody.com

Use these endpoints to connect a cloud storage backend to your Hoody Files container. Each endpoint registers a specific provider — Google Drive, Dropbox, OneDrive, iCloud, Proton Drive, and others — so you can mount the remote storage as a virtual filesystem path inside your project. After connecting, the returned id can be attached to a mount path via the filesystem mount endpoints.

All requests are sent as POST to the files container and accept a JSON configuration body. Successful connections return 201 Created; configuration or credential errors return 400 Bad Request.


Connect a Box backend (user or enterprise account).

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
access_tokenstringNo""Box App Primary Access Token. Leave blank normally.
auth_urlstringNo""Auth server URL. Leave blank to use the provider defaults.
box_config_filestringNo""Box App config.json location. Leading ~ and env vars such as ${RCLONE_CONFIG_DIR} are expanded.
box_sub_typestringNo"user"One of user, enterprise.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow (RFC 6749).
client_idstringNo""OAuth Client Id. Leave blank normally.
client_secretstringNo""OAuth Client Secret. Leave blank normally.
commit_retriesintegerNo100Max number of times to try committing a multipart file.
descriptionstringNo""Description of the remote.
encodingstringNo"52535298"Backend encoding.
impersonatestringNo""Box user ID to impersonate when using a JWT service account.
list_chunkintegerNo1000Size of listing chunk (1-1000).
owned_bystringNo""Only show items owned by the supplied email address.
root_folder_idstringNo"0"Folder ID to use as the root for Hoody.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL. Leave blank to use the provider defaults.
upload_cutoffstringNo"52428800"Cutoff for switching to multipart upload (at least 50 MiB).
{
"data": {
"backend_type": "box",
"id": "backend_box_8a4f2c",
"mount_paths": [],
"type": "cloud"
},
"message": "Box backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/box" \
-H "Content-Type: application/json" \
-d '{
"access_token": "box_app_access_token",
"box_sub_type": "user",
"description": "Personal Box account"
}'

Connect a Google Drive backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
acknowledge_abusebooleanNofalseAllow download of files flagged with cannotDownloadAbusiveFile.
allow_import_name_changebooleanNofalseAllow Google docs to change filetype on upload.
alternate_exportbooleanNofalseDeprecated. No longer needed.
auth_owner_onlybooleanNofalseOnly consider files owned by the authenticated user.
auth_urlstringNo""Auth server URL. Leave blank for defaults.
chunk_sizestringNo"8388608"Upload chunk size. Must be a power of 2, at least 256k.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""Google Application Client Id. Recommended.
client_secretstringNo""OAuth Client Secret.
copy_shortcut_contentbooleanNofalseServer-side copy shortcut contents instead of the shortcut itself.
descriptionstringNo""Description of the remote.
disable_http2booleanNotrueDisable HTTP/2 (workaround for a Drive issue).
encodingstringNo"16777216"Backend encoding.
env_authbooleanNofalseGet IAM credentials from runtime (env vars or instance metadata). One of false, true.
export_formatsstringNo"docx,xlsx,pptx,svg"Comma-separated preferred formats for downloading Google docs.
fast_list_bug_fixbooleanNotrueWork around a Drive listing bug when using --fast-list.
formatsstringNo""Deprecated. See export_formats.
impersonatestringNo""User to impersonate when using a service account.
import_formatsstringNo""Comma-separated preferred formats for uploading Google docs.
keep_revision_foreverbooleanNofalseKeep new head revision of each file forever.
list_chunkintegerNo1000Size of listing chunk (100-1000, 0 to disable).
metadata_labelsstringNo"0"Label metadata access. One of off, read, write, failok, read,write.
metadata_ownerstringNo"1"Owner metadata access. One of off, read, write, failok, read,write.
metadata_permissionsstringNo"0"Permissions metadata access. One of off, read, write, failok, read,write.
pacer_burstintegerNo100Number of API calls to allow without sleeping.
pacer_min_sleepintegerNo0Minimum sleep between API calls (seconds).
resource_keystringNo""Resource key for accessing a link-shared file.
root_folder_idstringNo""ID of the root folder. Leave blank normally.
scopestringNo""Comma-separated scopes. One of drive, drive.readonly, drive.file, drive.appfolder, drive.metadata.readonly.
server_side_across_configsbooleanNofalseDeprecated. Allow server-side operations across Drive configs.
service_account_credentialsstringNo""Service account credentials JSON blob.
service_account_filestringNo""Service account credentials JSON file path.
shared_with_mebooleanNofalseOnly show files shared with me.
show_all_gdocsbooleanNofalseShow all Google Docs including non-exportable ones.
size_as_quotabooleanNofalseShow sizes as storage quota usage, not actual size.
skip_checksum_gphotosbooleanNofalseSkip checksums on Google photos and videos.
skip_dangling_shortcutsbooleanNofalseSkip dangling shortcut files.
skip_gdocsbooleanNofalseSkip Google docs in all listings.
skip_shortcutsbooleanNofalseSkip shortcut files.
starred_onlybooleanNofalseOnly show files that are starred.
stop_on_download_limitbooleanNofalseMake download limit errors fatal.
stop_on_upload_limitbooleanNofalseMake upload limit errors fatal.
team_drivestringNo""ID of the Shared Drive (Team Drive).
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
trashed_onlybooleanNofalseOnly show files in the trash.
upload_cutoffstringNo"8388608"Cutoff for switching to chunked upload.
use_created_datebooleanNofalseUse file created date instead of modified date.
use_shared_datebooleanNofalseUse date file was shared instead of modified date.
use_trashbooleanNotrueSend files to trash instead of deleting permanently.
v2_download_min_sizestringNo"-1"If objects are greater, use Drive v2 API to download.
{
"data": {
"backend_type": "drive",
"id": "backend_drive_9d7e1a",
"mount_paths": [],
"type": "cloud"
},
"message": "Google Drive backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/drive" \
-H "Content-Type: application/json" \
-d '{
"client_id": "your-google-client-id.apps.googleusercontent.com",
"client_secret": "your-google-client-secret",
"description": "Team Google Drive",
"scope": "drive"
}'

Connect a Dropbox backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
batch_commit_timeoutintegerNo600Max time to wait for a batch to finish committing (seconds).
batch_modestringNo"sync"Upload file batching mode. One of sync, async, off.
batch_sizeintegerNo0Max number of files in upload batch (less than 1000).
batch_timeoutintegerNo0Max idle time for an upload batch before uploading (seconds).
chunk_sizestringNo"50331648"Upload chunk size (less than 150 MiB).
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"52469762"Backend encoding.
impersonatestringNo""Dropbox user to impersonate (business accounts).
pacer_min_sleepintegerNo0Minimum sleep between API calls (seconds).
root_namespacestringNo""Dropbox namespace ID to use as the root for all paths.
shared_filesbooleanNofalseWork on individual shared files (list/read only).
shared_foldersbooleanNofalseWork on shared folders.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
{
"data": {
"backend_type": "dropbox",
"id": "backend_dropbox_2f8c1b",
"mount_paths": [],
"type": "cloud"
},
"message": "Dropbox backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/dropbox" \
-H "Content-Type: application/json" \
-d '{
"client_id": "dropbox-app-key",
"client_secret": "dropbox-app-secret",
"description": "Personal Dropbox"
}'

Connect a 1Fichier backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
api_keystringNo""Your API Key from https://1fichier.com/console/params.pl.
cdnbooleanNofalseUse CDN download links.
descriptionstringNo""Description of the remote.
encodingstringNo"52666494"Backend encoding.
file_passwordstringNo""Password for a shared password-protected file.
folder_passwordstringNo""Password for a shared password-protected folder.
shared_folderstringNo""If you want to download a shared folder.
{
"data": {
"backend_type": "fichier",
"id": "backend_fichier_5e0a3c",
"mount_paths": [],
"type": "cloud"
},
"message": "1Fichier backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/fichier" \
-H "Content-Type: application/json" \
-d '{
"api_key": "your-1fichier-api-key",
"description": "1Fichier account"
}'

Connect an Enterprise File Fabric backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
descriptionstringNo""Description of the remote.
encodingstringNo"50429954"Backend encoding.
permanent_tokenstringNo""Permanent authentication token (created in the Enterprise File Fabric dashboard).
root_folder_idstringNo""ID of the root folder. Leave blank normally.
tokenstringNo""Session token. Set automatically by Hoody.
token_expirystringNo""Token expiry time. Set automatically by Hoody.
urlstringYes""URL of the Enterprise File Fabric to connect to. One of https://storagemadeeasy.com, https://eu.storagemadeeasy.com, https://yourfabric.smestorage.com.
versionstringNo""Version read from the file fabric. Set automatically by Hoody.
{
"data": {
"backend_type": "filefabric",
"id": "backend_filefabric_4d6f8a",
"mount_paths": [],
"type": "cloud"
},
"message": "Enterprise File Fabric backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/filefabric" \
-H "Content-Type: application/json" \
-d '{
"url": "https://storagemadeeasy.com",
"permanent_token": "your-permanent-token",
"description": "Corporate File Fabric"
}'

Connect a Files.com backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
api_keystringNo""API key for Files.com.
descriptionstringNo""Description of the remote.
encodingstringNo"60923906"Backend encoding.
passwordstringNo""Files.com account password.
sitestringNo""Site subdomain or custom domain.
usernamestringNo""Files.com username.
{
"data": {
"backend_type": "filescom",
"id": "backend_filescom_7c1b09",
"mount_paths": [],
"type": "cloud"
},
"message": "Files.com backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/filescom" \
-H "Content-Type: application/json" \
-d '{
"site": "mysite",
"username": "user@example.com",
"password": "files-com-password",
"description": "Files.com workspace"
}'

Connect a Gofile backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
access_tokenstringNo""API access token from the Gofile web control panel.
account_idstringNo""Account ID. Filled in automatically by Hoody.
descriptionstringNo""Description of the remote.
encodingstringNo"323331982"Backend encoding.
list_chunkintegerNo1000Number of items to list in each call.
root_folder_idstringNo""ID of the root folder. Filled in automatically by Hoody.
{
"data": {
"backend_type": "gofile",
"id": "backend_gofile_3a82f1",
"mount_paths": [],
"type": "cloud"
},
"message": "Gofile backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/gofile" \
-H "Content-Type: application/json" \
-d '{
"access_token": "gofile-access-token",
"description": "Gofile account"
}'

Connect a Google Photos backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
batch_commit_timeoutintegerNo600Max time to wait for a batch to finish committing (seconds).
batch_modestringNo"sync"Upload batching mode. One of sync, async, off.
batch_sizeintegerNo0Max number of files in upload batch (less than 50).
batch_timeoutintegerNo0Max idle time for an upload batch (seconds).
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"50348034"Backend encoding.
include_archivedbooleanNofalseAlso view and download archived media.
proxystringNo""Use the gphotosdl proxy URL (e.g. http://localhost:8282).
read_onlybooleanNofalseRequest read-only access.
read_sizebooleanNofalseRead the size of media items (recommended for VFS).
start_yearintegerNo2000Earliest upload year to include.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
{
"data": {
"backend_type": "google photos",
"id": "backend_gphotos_b21e04",
"mount_paths": [],
"type": "cloud"
},
"message": "Google Photos backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/google-photos" \
-H "Content-Type: application/json" \
-d '{
"client_id": "google-photos-client-id",
"client_secret": "google-photos-client-secret",
"read_size": true,
"description": "Family photos"
}'

Connect a HiDrive backend (STRATO).

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
chunk_sizestringNo"50331648"Chunk size for chunked uploads.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
disable_fetching_member_countbooleanNofalseDo not fetch number of objects in directories unless necessary.
encodingstringNo"33554434"Backend encoding.
endpointstringNo"https://api.hidrive.strato.com/2.1"API endpoint URL.
root_prefixstringNo"/"Root/parent folder for all paths. One of /, root, "".
scope_accessstringNo"rw"Access permissions. One of rw, ro.
scope_rolestringNo"user"User-level. One of user, admin, owner.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
upload_concurrencyintegerNo4Concurrency for chunked uploads.
upload_cutoffstringNo"100663296"Cutoff/threshold for chunked uploads.
{
"data": {
"backend_type": "hidrive",
"id": "backend_hidrive_8f2a31",
"mount_paths": [],
"type": "cloud"
},
"message": "HiDrive backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/hidrive" \
-H "Content-Type: application/json" \
-d '{
"client_id": "hidrive-client-id",
"client_secret": "hidrive-client-secret",
"scope_access": "rw",
"scope_role": "user",
"description": "STRATO HiDrive"
}'

Connect an iCloud Drive backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
apple_idstringYes""Apple ID.
client_idstringNo"d39ba9916b7251055b22c7f910e2ea796ee65e98b2ddecea8f5dde8d9d1a815d"Client id.
cookiesstringNo""Cookies (internal use only).
descriptionstringNo""Description of the remote.
encodingstringNo"50438146"Backend encoding.
passwordstringYes""Password.
trust_tokenstringNo""Trust token.
{
"data": {
"backend_type": "iclouddrive",
"id": "backend_icloud_6c14de",
"mount_paths": [],
"type": "cloud"
},
"message": "iCloud Drive backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/iclouddrive" \
-H "Content-Type: application/json" \
-d '{
"apple_id": "user@icloud.com",
"password": "app-specific-password",
"description": "Personal iCloud"
}'

Connect a Jottacloud backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"50431886"Backend encoding.
hard_deletebooleanNofalseDelete files permanently instead of putting them in trash.
md5_memory_limitstringNo"10485760"Files larger than this are cached on disk for MD5 calculation.
no_versionsbooleanNofalseAvoid server-side versioning by recreating files instead of overwriting.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
trashed_onlybooleanNofalseOnly show files in the trash.
upload_resume_limitstringNo"10485760"Files larger than this can be resumed if upload fails.
{
"data": {
"backend_type": "jottacloud",
"id": "backend_jotta_1ab9d2",
"mount_paths": [],
"type": "cloud"
},
"message": "Jottacloud backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/jottacloud" \
-H "Content-Type: application/json" \
-d '{
"client_id": "jottacloud-client-id",
"client_secret": "jottacloud-client-secret",
"description": "Personal Jottacloud"
}'

Connect a Koofr, Digi Storage, or other Koofr-compatible provider.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
descriptionstringNo""Description of the remote.
encodingstringNo"50438146"Backend encoding.
endpointstringYes""The Koofr API endpoint to use.
mountidstringNo""Mount ID (uses primary mount if omitted).
passwordstringYes""Your account password.
providerstringNo""Storage provider. One of koofr, digistorage, other.
setmtimebooleanNotrueWhether the backend supports setting modification time.
userstringYes""Your username.
{
"data": {
"backend_type": "koofr",
"id": "backend_koofr_44a8b1",
"mount_paths": [],
"type": "cloud"
},
"message": "Koofr backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/koofr" \
-H "Content-Type: application/json" \
-d '{
"endpoint": "https://app.koofr.net",
"provider": "koofr",
"user": "user@example.com",
"password": "koofr-app-password",
"description": "Personal Koofr"
}'

Connect a Linkbox backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
descriptionstringNo""Description of the remote.
tokenstringYes""Token from https://www.linkbox.to/admin/account.
{
"data": {
"backend_type": "linkbox",
"id": "backend_linkbox_9e3d20",
"mount_paths": [],
"type": "cloud"
},
"message": "Linkbox backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/linkbox" \
-H "Content-Type: application/json" \
-d '{
"token": "your-linkbox-token",
"description": "Linkbox account"
}'

Connect a Mail.ru Cloud backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
check_hashbooleanNotrueWhat to do if file checksum is mismatched. One of true, false.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"50440078"Backend encoding.
passstringYes""App password (a normal password will not work).
quirksstringNo""Comma-separated internal maintenance flags (do not use).
speedup_enablebooleanNotrueSkip full upload if another file has the same hash. One of true, false.
speedup_file_patternsstringNo"*.mkv,*.avi,*.mp4,*.mp3,*.zip,*.gz,*.rar,*.pdf"Comma-separated glob patterns eligible for speedup. One of "", *, *.mkv,*.avi,*.mp4,*.mp3, *.zip,*.gz,*.rar,*.pdf.
speedup_max_diskstringNo"3221225472"Disable speedup for files larger than this. One of 0, 1G, 3G.
speedup_max_memorystringNo"33554432"Files larger than this are always hashed on disk. One of 0, 32M, 256M.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
userstringYes""User name (usually email).
user_agentstringNo""HTTP user agent. Defaults to Hoody/VERSION.
{
"data": {
"backend_type": "mailru",
"id": "backend_mailru_2c7f88",
"mount_paths": [],
"type": "cloud"
},
"message": "Mail.ru Cloud backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/mailru" \
-H "Content-Type: application/json" \
-d '{
"user": "user@mail.ru",
"pass": "mailru-app-password",
"description": "Mail.ru Cloud"
}'

Connect a Mega backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
debugbooleanNofalseOutput more debug from Mega (requires -vv).
descriptionstringNo""Description of the remote.
encodingstringNo"50331650"Backend encoding.
hard_deletebooleanNofalsePermanently delete files instead of trashing them.
passstringYes""Password.
use_httpsbooleanNofalseUse HTTPS for transfers.
userstringYes""User name.
{
"data": {
"backend_type": "mega",
"id": "backend_mega_77c4a1",
"mount_paths": [],
"type": "cloud"
},
"message": "Mega backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/mega" \
-H "Content-Type: application/json" \
-d '{
"user": "user@mega.nz",
"pass": "mega-password",
"description": "Personal Mega"
}'

Connect a Microsoft OneDrive backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
access_scopesstringNo["Files.Read","Files.ReadWrite","Files.Read.All","Files.ReadWrite.All","Sites.Read.All","offline_access"]Scopes requested by Hoody. One of Files.Read Files.ReadWrite Files.Read.All Files.ReadWrite.All Sites.Read.All offline_access, Files.Read Files.Read.All Sites.Read.All offline_access, Files.Read Files.ReadWrite Files.Read.All Files.ReadWrite.All offline_access.
auth_urlstringNo""Auth server URL. Leave blank for defaults.
av_overridebooleanNofalseAllow download of files flagged as infected by the server’s anti-virus check.
chunk_sizestringNo"10485760"Chunk size for uploads. Must be a multiple of 320 KiB.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
deltabooleanNofalseUse delta listing for recursive listings (faster at the drive root).
descriptionstringNo""Description of the remote.
disable_site_permissionbooleanNofalseDisable request for Sites.Read.All permission.
drive_idstringNo""The ID of the drive to use.
drive_typestringNo""Drive type: personal, business, or documentLibrary.
encodingstringNo"57386894"Backend encoding.
expose_onenote_filesbooleanNofalseMake OneNote files visible in directory listings.
hard_deletebooleanNofalsePermanently delete files on removal (OneDrive for Business / SharePoint only).
hash_typestringNo"auto"Hash type in use. One of auto, quickxor, sha1, sha256, crc32, none.
link_passwordstringNo""Password for created links (OneDrive personal paid only).
link_scopestringNo"anonymous"Scope of created links. One of anonymous, organization.
link_typestringNo"view"Type of created links. One of view, edit, embed.
list_chunkintegerNo1000Size of listing chunk.
metadata_permissionsstringNo"0"Permissions metadata access. One of off, read, write, read,write, failok.
no_versionsbooleanNofalseRemove all versions on modifying operations.
regionstringNo"global"National cloud region. One of global, us, de, cn.
root_folder_idstringNo""ID of the root folder.
server_side_across_configsbooleanNofalseDeprecated. Allow server-side operations across OneDrive configs.
tenantstringNo""Service principal’s tenant (directory) ID.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
{
"data": {
"backend_type": "onedrive",
"id": "backend_onedrive_55f0a2",
"mount_paths": [],
"type": "cloud"
},
"message": "Microsoft OneDrive backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/onedrive" \
-H "Content-Type: application/json" \
-d '{
"client_id": "azure-app-client-id",
"client_secret": "azure-app-client-secret",
"region": "global",
"description": "Work OneDrive"
}'

Connect an OpenDrive backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
chunk_sizestringNo"10485760"Chunk size for uploads (buffered in memory).
descriptionstringNo""Description of the remote.
encodingstringNo"62007182"Backend encoding.
passwordstringYes""Password.
usernamestringYes""Username.
{
"data": {
"backend_type": "opendrive",
"id": "backend_opendrive_64c09f",
"mount_paths": [],
"type": "cloud"
},
"message": "OpenDrive backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/opendrive" \
-H "Content-Type: application/json" \
-d '{
"username": "opendrive-user",
"password": "opendrive-password",
"description": "OpenDrive account"
}'

Connect a Pcloud backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"50438146"Backend encoding.
hostnamestringNo"api.pcloud.com"Pcloud hostname. One of api.pcloud.com, eapi.pcloud.com.
passwordstringNo""Your pcloud password.
root_folder_idstringNo"d0"Folder ID to use as the root for Hoody.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
usernamestringNo""Your pcloud username (required only for the cleanup command).
{
"data": {
"backend_type": "pcloud",
"id": "backend_pcloud_19b6cc",
"mount_paths": [],
"type": "cloud"
},
"message": "Pcloud backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/pcloud" \
-H "Content-Type: application/json" \
-d '{
"client_id": "pcloud-client-id",
"client_secret": "pcloud-client-secret",
"hostname": "api.pcloud.com",
"description": "Personal Pcloud"
}'

Connect a PikPak backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
chunk_sizestringNo"5242880"Chunk size for multipart uploads.
descriptionstringNo""Description of the remote.
device_idstringNo""Device ID used for authorization.
encodingstringNo"56829838"Backend encoding.
hash_memory_limitstringNo"10485760"Files larger than this are cached on disk for hashing.
no_media_linkbooleanNofalseUse original file links instead of media links.
passstringYes""PikPak password.
root_folder_idstringNo""ID of the root folder. Leave blank normally.
trashed_onlybooleanNofalseOnly show files in the trash.
upload_concurrencyintegerNo5Concurrency for multipart uploads.
use_trashbooleanNotrueSend files to trash instead of deleting permanently.
userstringYes""PikPak username.
user_agentstringNo"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0"HTTP user agent for PikPak.
{
"data": {
"backend_type": "pikpak",
"id": "backend_pikpak_d0e5f3",
"mount_paths": [],
"type": "cloud"
},
"message": "PikPak backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/pikpak" \
-H "Content-Type: application/json" \
-d '{
"user": "user@pikpak.com",
"pass": "pikpak-password",
"description": "Personal PikPak"
}'

Connect a Pixeldrain Filesystem backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
api_keystringNo""API key from https://pixeldrain.com/user/api_keys.
api_urlstringYes"https://pixeldrain.com/api"Pixeldrain API endpoint.
descriptionstringNo""Description of the remote.
root_folder_idstringNo"me"Root of the filesystem. Set to me for personal or a shared directory ID.
{
"data": {
"backend_type": "pixeldrain",
"id": "backend_pixeldrain_39ad71",
"mount_paths": [],
"type": "cloud"
},
"message": "Pixeldrain Filesystem backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/pixeldrain" \
-H "Content-Type: application/json" \
-d '{
"api_url": "https://pixeldrain.com/api",
"api_key": "your-pixeldrain-api-key",
"description": "Personal Pixeldrain"
}'

Connect a premiumize.me backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
api_keystringNo""API key. Not normally used (OAuth is preferred).
auth_urlstringNo""Auth server URL. Leave blank for defaults.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"50438154"Backend encoding.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
{
"data": {
"backend_type": "premiumizeme",
"id": "backend_premiumizeme_b2c4ee",
"mount_paths": [],
"type": "cloud"
},
"message": "premiumize.me backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/premiumizeme" \
-H "Content-Type: application/json" \
-d '{
"client_id": "premiumizeme-client-id",
"client_secret": "premiumizeme-client-secret",
"description": "premiumize.me"
}'

Connect a Proton Drive backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
2fastringNo""2FA code if the Proton account has 2FA enabled.
app_versionstringNo"macos-drive@1.0.0-alpha.1+hoody-vfs"App version string sent with every API request.
client_access_tokenstringNo""Client access token (internal use only).
client_refresh_tokenstringNo""Client refresh token (internal use only).
client_salted_key_passstringNo""Client salted key pass (internal use only).
client_uidstringNo""Client UID (internal use only).
descriptionstringNo""Description of the remote.
enable_cachingbooleanNotrueCache files/folders metadata to reduce API calls. Disable for VFS use.
encodingstringNo"52559874"Backend encoding.
mailbox_passwordstringNo""Mailbox password (for two-password Proton accounts).
original_file_sizebooleanNotrueReturn the file size before encryption.
passwordstringYes""Your Proton account password.
replace_existing_draftbooleanNofalseReplace an existing draft when filename conflict is detected.
usernamestringYes""Your Proton username.
{
"data": {
"backend_type": "protondrive",
"id": "backend_proton_a83f0e",
"mount_paths": [],
"type": "cloud"
},
"message": "Proton Drive backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/protondrive" \
-H "Content-Type: application/json" \
-d '{
"username": "user@proton.me",
"password": "proton-password",
"enable_caching": true,
"description": "Personal Proton Drive"
}'

Connect a Put.io backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"50438146"Backend encoding.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
{
"data": {
"backend_type": "putio",
"id": "backend_putio_4f7d12",
"mount_paths": [],
"type": "cloud"
},
"message": "Put.io backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/putio" \
-H "Content-Type: application/json" \
-d '{
"client_id": "putio-client-id",
"client_secret": "putio-client-secret",
"description": "Personal Put.io"
}'

Connect a Quatrix by Maytech backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
api_keystringYes""API key for accessing the Quatrix account.
descriptionstringNo""Description of the remote.
effective_upload_timestringNo"4s"Wanted upload time for one chunk.
encodingstringNo"50438146"Backend encoding.
hard_deletebooleanNofalseDelete files permanently instead of trashing them.
hoststringYes""Host name of the Quatrix account.
maximal_summary_chunk_sizestringNo"100000000"Max summary size for all chunks.
minimal_chunk_sizestringNo"10000000"Minimal size for one chunk.
skip_project_foldersbooleanNofalseSkip project folders in operations.
{
"data": {
"backend_type": "quatrix",
"id": "backend_quatrix_6b91c3",
"mount_paths": [],
"type": "cloud"
},
"message": "Quatrix backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/quatrix" \
-H "Content-Type: application/json" \
-d '{
"api_key": "your-quatrix-api-key",
"host": "your-account.quatrix.com",
"description": "Quatrix workspace"
}'

Connect a Seafile backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
2fabooleanNofalseSet to true if the account has 2FA enabled.
auth_tokenstringNo""Authentication token.
create_librarybooleanNofalseCreate a library if it does not exist.
descriptionstringNo""Description of the remote.
encodingstringNo"16850954"Backend encoding.
librarystringNo""Name of the library. Leave blank for all non-encrypted libraries.
library_keystringNo""Library password (encrypted libraries only).
passstringNo""Password.
urlstringYes""URL of the Seafile host. One of https://cloud.seafile.com/.
userstringYes""User name (usually email address).
{
"data": {
"backend_type": "seafile",
"id": "backend_seafile_d52e87",
"mount_paths": [],
"type": "cloud"
},
"message": "seafile backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/seafile" \
-H "Content-Type: application/json" \
-d '{
"url": "https://cloud.seafile.com/",
"user": "user@example.com",
"pass": "seafile-password",
"description": "Personal Seafile"
}'

Connect a Citrix Sharefile backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
chunk_sizestringNo"67108864"Upload chunk size. Must be a power of 2, at least 256k.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"57091982"Backend encoding.
endpointstringNo""Endpoint for API calls. Auto-discovered during OAuth.
root_folder_idstringNo""ID of the root folder. One of "", favorites, allshared, connectors, top.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
upload_cutoffstringNo"134217728"Cutoff for switching to multipart upload.
{
"data": {
"backend_type": "sharefile",
"id": "backend_sharefile_e71c44",
"mount_paths": [],
"type": "cloud"
},
"message": "Citrix Sharefile backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/sharefile" \
-H "Content-Type: application/json" \
-d '{
"client_id": "sharefile-client-id",
"client_secret": "sharefile-client-secret",
"root_folder_id": "top",
"description": "Sharefile workspace"
}'

Connect a Sugarsync backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
access_key_idstringNo""Sugarsync Access Key ID. Leave blank to use Hoody’s.
app_idstringNo""Sugarsync App ID. Leave blank to use Hoody’s.
authorizationstringNo""Sugarsync authorization. Auto-configured by Hoody.
authorization_expirystringNo""Sugarsync authorization expiry. Auto-configured by Hoody.
deleted_idstringNo""Sugarsync deleted folder id. Auto-configured by Hoody.
descriptionstringNo""Description of the remote.
encodingstringNo"50397186"Backend encoding.
hard_deletebooleanNofalsePermanently delete files; otherwise put them in the deleted files folder.
private_access_keystringNo""Sugarsync Private Access Key. Leave blank to use Hoody’s.
refresh_tokenstringNo""Sugarsync refresh token. Auto-configured by Hoody.
root_idstringNo""Sugarsync root id. Auto-configured by Hoody.
userstringNo""Sugarsync user. Auto-configured by Hoody.
{
"data": {
"backend_type": "sugarsync",
"id": "backend_sugarsync_1d8b3f",
"mount_paths": [],
"type": "cloud"
},
"message": "Sugarsync backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/sugarsync" \
-H "Content-Type: application/json" \
-d '{
"access_key_id": "your-access-key",
"private_access_key": "your-private-key",
"app_id": "your-app-id",
"description": "Personal Sugarsync"
}'

Connect a Uloz.to backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
app_tokenstringNo""Application token identifying the app (API key).
descriptionstringNo""Description of the remote.
encodingstringNo"50438146"Backend encoding.
list_page_sizeintegerNo500Size of a single page for list commands (1-500).
passwordstringNo""Password for the user.
root_folder_slugstringNo""Folder slug to use as the root for all operations.
usernamestringNo""Username of the principal to operate as.
{
"data": {
"backend_type": "ulozto",
"id": "backend_ulozto_22fbb0",
"mount_paths": [],
"type": "cloud"
},
"message": "Uloz.to backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/ulozto" \
-H "Content-Type: application/json" \
-d '{
"app_token": "your-ulozto-app-token",
"username": "uloz-user",
"password": "uloz-password",
"description": "Uloz.to account"
}'

Connect an Uptobox backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
access_tokenstringNo""Access token from https://uptobox.com/my_account.
descriptionstringNo""Description of the remote.
encodingstringNo"50561070"Backend encoding.
privatebooleanNofalseMake uploaded files private.
{
"data": {
"backend_type": "uptobox",
"id": "backend_uptobox_c44a17",
"mount_paths": [],
"type": "cloud"
},
"message": "Uptobox backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/uptobox" \
-H "Content-Type: application/json" \
-d '{
"access_token": "your-uptobox-access-token",
"private": false,
"description": "Uptobox account"
}'

Connect a Yandex Disk backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"50429954"Backend encoding.
hard_deletebooleanNofalseDelete files permanently instead of trashing them.
spoof_uabooleanNotrueSpoof the user agent to match an official Yandex Disk client.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
{
"data": {
"backend_type": "yandex",
"id": "backend_yandex_9c2d65",
"mount_paths": [],
"type": "cloud"
},
"message": "Yandex Disk backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/yandex" \
-H "Content-Type: application/json" \
-d '{
"client_id": "yandex-client-id",
"client_secret": "yandex-client-secret",
"description": "Personal Yandex Disk"
}'

Connect a Zoho backend.

This endpoint takes no parameters.

NameTypeRequiredDefaultDescription
auth_urlstringNo""Auth server URL. Leave blank for defaults.
client_credentialsbooleanNofalseUse the OAuth2 client credentials flow.
client_idstringNo""OAuth Client Id.
client_secretstringNo""OAuth Client Secret.
descriptionstringNo""Description of the remote.
encodingstringNo"16875520"Backend encoding.
regionstringNo""Zoho region. One of com, eu, in, jp, com.cn, com.au.
tokenstringNo""OAuth Access Token as a JSON blob.
token_urlstringNo""Token server URL.
upload_cutoffstringNo"10485760"Cutoff for switching to the large file upload API (at least 10 MiB).
{
"data": {
"backend_type": "zoho",
"id": "backend_zoho_3f0ab9",
"mount_paths": [],
"type": "cloud"
},
"message": "Zoho backend connected successfully",
"success": true
}
Terminal window
curl -X POST "https://prj-abc123-cnt-xyz789-files-1.us-east-1.containers.hoody.icu/api/v1/backends/zoho" \
-H "Content-Type: application/json" \
-d '{
"client_id": "zoho-client-id",
"client_secret": "zoho-client-secret",
"region": "com",
"description": "Work Zoho WorkDrive"
}'