Sign Up

File System

GET
/files

List files and directories in the specified path. Use the optional depth parameter to list recursively: depth=1 (default) lists the directory's entries, depth=2 also includes their children, and so on.

Query Parameters

path?string

Directory path to list (defaults to working directory)

depth?integer

How many levels deep to list (default: 1, must be >= 1)

Response Body

OK

application/json
  1. response
[index: integer]?
curl -X GET 'https://example.com/files'
[  {    "group": "string",    "isDir": true,    "modTime": "string",    "mode": "string",    "modifiedAt": "string",    "name": "string",    "owner": "string",    "path": "string",    "permissions": "string",    "size": 0  }]
DELETE
/files

Delete a file or directory at the specified path

Query Parameters

path*string

File or directory path to delete

recursive?boolean

Enable recursive deletion for directories

Response Body

No Content

curl -X DELETE 'https://example.com/files?path=string'
Empty

Download multiple files

POST
/files/bulk-download

Download multiple files by providing their paths. Successful files are returned as multipart parts named file. Per-file failures are returned as multipart parts named error with JSON payloads shaped like ErrorResponse.

Request Body

Paths of files to download

application/json
  1. body
paths*array<string>

Response Body

Multipart response with file parts and JSON error parts

multipart/form-data
  1. response
[key: string]?unknown
curl -X POST 'https://example.com/files/bulk-download' \  -H 'Content-Type: application/json' \  -d '{  "paths": [    "string"  ]}'
{  "property1": null,  "property2": null}

Upload multiple files

POST
/files/bulk-upload

Upload multiple files with their destination paths

Response Body

OK

application/json
  1. response
errors?array<string>
files?array<>
curl -X POST 'https://example.com/files/bulk-upload'
{  "errors": [    "string"  ],  "files": [    {      "bytes": 0,      "path": "string"    }  ]}

Download a file

GET
/files/download

Download a file by providing its path

Query Parameters

path*string

File path to download

Response Body

OK

response?unknownapplication/octet-stream
curl -X GET 'https://example.com/files/download?path=string'
null

Find text in files

GET
/files/find

Search for text pattern within files in a directory

Query Parameters

path*string

Directory path to search in

pattern*string

Text pattern to search for

Response Body

OK

application/json
  1. response
[index: integer]?
curl -X GET 'https://example.com/files/find?path=string&pattern=string'
[  {    "content": "string",    "file": "string",    "line": 0  }]

Create a folder

POST
/files/folder

Create a folder with the specified path and optional permissions

Query Parameters

path*string

Folder path to create

mode*string

Octal permission mode (default: 0755)

Response Body

Created

curl -X POST 'https://example.com/files/folder?path=string&mode=string'
Empty

Get file information

GET
/files/info

Get detailed information about a file or directory

Query Parameters

path*string

File or directory path

Response Body

OK

application/json
  1. response
group*string
isDir*boolean
modTime*string

Deprecated: ModTime uses Go's time.String() layout which is not a standard format. Use ModifiedAt instead, which is serialized as ISO 8601 / RFC 3339.

mode*string
modifiedAt*string
name*string
owner*string
path?string

Full path of the entry

permissions*string
size*integer
curl -X GET 'https://example.com/files/info?path=string'
{  "group": "string",  "isDir": true,  "modTime": "string",  "mode": "string",  "modifiedAt": "string",  "name": "string",  "owner": "string",  "path": "string",  "permissions": "string",  "size": 0}
POST
/files/move

Move or rename a file or directory from source to destination

Query Parameters

source*string

Source file or directory path

destination*string

Destination file or directory path

Response Body

OK

curl -X POST 'https://example.com/files/move?source=string&destination=string'
Empty

Set file permissions

POST
/files/permissions

Set file permissions, ownership, and group for a file or directory

Query Parameters

path*string

File or directory path

owner?string

Owner (username or UID)

group?string

Group (group name or GID)

mode?string

File mode in octal format (e.g., 0755)

Response Body

OK

curl -X POST 'https://example.com/files/permissions?path=string'
Empty

Replace text in files

POST
/files/replace

Replace text pattern with new value in multiple files

Request Body

Replace request

application/json
  1. body
files*array<string>
newValue*string
pattern*string

Response Body

OK

application/json
  1. response
[index: integer]?
curl -X POST 'https://example.com/files/replace' \  -H 'Content-Type: application/json' \  -d '{  "files": [    "string"  ],  "newValue": "string",  "pattern": "string"}'
[  {    "error": "string",    "file": "string",    "success": true  }]

Search files by pattern

GET
/files/search

Search for files matching a specific pattern in a directory

Query Parameters

path*string

Directory path to search in

pattern*string

File pattern to match (e.g., *.txt, *.go)

Response Body

OK

application/json
  1. response
files*array<string>
curl -X GET 'https://example.com/files/search?path=string&pattern=string'
{  "files": [    "string"  ]}

Upload a file

POST
/files/upload-v2

Upload a file to the specified path. Accepts either multipart/form-data (field "file") or a raw request body (e.g. application/octet-stream). Parent directories are created if missing; an existing file is overwritten.

Query Parameters

path*string

Destination path for the uploaded file

Request Body

multipart/form-data
  1. body
file?unknown

File to upload (multipart/form-data)

Response Body

OK

application/json
  1. response
name*string
path*string
type*string
curl -X POST 'https://example.com/files/upload-v2?path=string'
{  "name": "string",  "path": "string",  "type": "string"}