SFTP and SCP URLs are similar to other URLs and you download files using these protocols the same as with others:

curl sftp://example.com/file.zip -u user


curl scp://example.com/file.zip -u user

SFTP (but not SCP) supports getting a file listing back when the URL ends with a trailing slash:

curl sftp://example.com/ -u user

Note that both these protocols work with "users" and you do not ask for a file anonymously or with a standard generic name. Most systems require that users authenticate, as outlined below.

When requesting a file from an SFTP or SCP URL, the file path given is considered to be the absolute path on the remote server unless you specifically ask for the path relative to the user's home directory. You do that by making sure the path starts with /~/. This is quite the opposite to how FTP URLs work and is a common cause for confusion among users.

For user daniel to transfer todo.txt from his home directory, it would look similar to this:

curl sftp://example.com/~/todo.txt -u daniel

or for SCP

curl scp://example.com/~/todo.txt -u daniel:secret