CrushFTP supports REST style operations for file transfer.  All you need is an auth header with BASIC auth, or a logged in cookie token.\\

You can get the CrushAuth cookie token via a POST with these parameters:\\
{{{
command=login&username=user&password=pass&encoded=true
}}}

Alternatively just issuing the HTTP BASIC auth header with its normal BASE64 encoded syntax is also valid but can't be tracked to a single session.  So its not always desirable even though its convenient.\\
\\
For file transfer, you can now do a GET or PUT command to download or upload.\\
{{{
GET /myfiles/file1.txt
PUT /anotherfolder/file2.txt
}}}

The path is for the user's VFS as configured in the User Manager.  It has nothing to do with your server's local filesystem.\\
\\
A rename can be done via the MOVE HTTP command, or via a POST with more parameters:\\
{{{
MOVE /myfiles/file1.txt
Location: http://serverdomain.com/anotherfolder/file3.txt
}}}
Or POST:\\
{{{
command=rename&path=/myfiles/&name1=file1.txt&name2=/anotherfolder/file3.txt
}}}