The SmartFTP Client Software Development Kit (SDK) offers you the ability to extend SmartFTP and it allows you to automate SmartFTP. The objects are accessible through COM interfaces which can be used in any modern language.

Provided Samples

The samples shown here are part of the SDK setup that can be downloaded below.

Transfer Queue

Dynamic Transfer Queue Item Destination Path

Programmatically changes the destination path when a specific transfer queue item is processed.
Location: Samples\TransferQueueItem\JScript\DynamicDestination.js
Location: Samples\TransferQueueItem\VBScript\DynamicDestination.vbs

Dynamic Transfer Queue Item Source Path

Programmatically changes the source path when a specific transfer queue item is processed.
Location: Samples\TransferQueueItem\JScript\DynamicSource.js

Move source items after transfer to another folder

Moves the files and folders that have been transferred to a different folder on the source.
Location: Samples\TransferQueueItem\JScript\MoveSourceItemToFolder.js
Location: Samples\TransferQueueItem\JScript\MoveAddedSourceItemsToFolder.js

Move local file to final destination

Moves (or copies) local files have been transferred to a final destination folder.
Location: Samples\TransferQueueItem\JScript\MoveLocalDestinationFileToFolder.js

Downloads files to a final destination folder with skip

Downloads files to a temporary folder and then moves them to a final folder. Files that already exist in the final folder will be skipped.
Location: Samples\TransferQueueItem\JScript\MoveToLocalFinalDestinationWithSkip.js

Setups a script with arguments for each file that is being added

For each file that is being added to the transfer queue, the script file and arguments of the transfer queue item are set. This script is typically used for folders.
Location: Samples\TransferQueueItem\JScript\ApplyToFiles.js
Location: Samples\TransferQueueItem\JScript\ApplyToFilesRecursively.js

Encrypts file using openpgp before it is uploaded

The file is encrypted and alternatively signed with OpenPGP (requires GPGP) before it is uploaded. Can be combined with ApplyToFilesRecursively.js if complete content of a folder should be encrypted.
Location: Samples\TransferQueueItem\JScript\PgpEncryptFile.js

Filters files by date

Files for which the last modified date is not within a date range are skipped. E.g. only transfer files from the last 7 days.
Location: Samples\TransferQueueItem\JScript\FilterFilesByDate.js

Add Items to Transfer Queue

Creates new items and adds them to the transfer queue in a running instance of SmartFTP.
Location: Samples\TransferQueue\C#
Location: Samples\TransferQueue\C++
Location: Samples\TransferQueue\AddToQueue


Create new Favorite

Creates a new favorite item and saves it to an XML file.

Imports Favorites from CSV file

Parses a CSV file, creates the favorites and saves them as xml files.


Manage Browsers

Gets the current location of all open browsers. Opens new browsers or closes existing ones.

Transfer Statistics

Polls SmartFTP for the current upload and download rate and writes the data to a csv file.
Location: Samples\TransferQueue\Performance Counter

Transfer Statistics using RRDtool

Uses RRDtool to generate transfer statistics.
Location: Samples\SmartFTP\rrdtool


Following some ideas of applications and plugins that can be created using the SDK.


  • Import Favorites/Sites from other applications/database to SmartFTP.
  • Export favorites to a database

Transfer Queue

  • Fill transfer queue with items from a database, text file or RSS feed.
  • Create application which uses transfer queue to automate transfers.
  • Create Windows service to backup/synchronize files using the transfer queue.
  • Run commands, update a file, write a log or notify users after a transfer queue item has been processed.


Download SmartFTP SDK

Change Log