---
title: Secure File Transfer
slug: connectors/secure-file-transfer
createdAt: 2026-10-06T11:57:58.629Z
---

Secure File Transfer enables encrypted and authenticated file transfers using FTP or FTPS protocols between remote systems.

Secure File Transfer enables reliable and encrypted file transfers using FTP and FTPS protocols. This connector allows users to automate uploading, downloading, and listing files or directories on remote servers directly from Swimlane Turbine. By integrating Secure File Transfer, security teams can streamline the movement of critical files, ensure secure data exchange, and orchestrate file-based workflows without manual intervention. The connector supports recursive operations, compression, and flexible authentication, making it ideal for automating secure data handling in incident response and operational processes.

### Supported Version

- The Secure File Transfer connector supports the latest API version.

### Limitations

None to date.

## Prerequisites

To use the Secure File Transfer connector, ensure you have the following prerequisites:

- Authentication via username and password, requiring these parameters:
  - URL: The address of the FTP or FTPS server to connect to.
  - Username: The account name authorized to access the remote server.
  - Password: The corresponding password for the specified username.

## Capabilities

This Connector provides the following capabilities:

- Download Remote Directory files
- List Remote Directory files
- Upload Files to Remote Directory

### Download Remote Directory files

Files are downloaded from a remote directory.

### List Remote Directory files

Files in a remote directory are listed.

### Upload Files to Remote Directory

Files are uploaded to a remote directory.

# Configurations

## Asset

Authenticates using username and password.

### Configuration Parameters

| **Parameter** | **Description**                                                                                                                                                                                                                                                                                             | **Type** | **Required** |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------ |
| url           | URL with FTP protocol.                                                                                                                                                                                                                                                                                      | string   | Required     |
| username      | Username                                                                                                                                                                                                                                                                                                    | string   | Required     |
| password      | Password                                                                                                                                                                                                                                                                                                    | string   | Required     |
| verify\_ssl   | Verify SSL certificate                                                                                                                                                                                                                                                                                      | boolean  | Optional     |
| passive\_mode | When true (default), the client uses PASV/EPSV: the server returns a data host/port and the client opens the data connection (typical behind NAT/firewalls). When false, active (PORT) mode is used: the server opens the data connection to the client (requires inbound reachability on the client side). |          |              |
| boolean       | Optional                                                                                                                                                                                                                                                                                                    |          |              |
| http\_proxy   | A proxy to route requests through.                                                                                                                                                                                                                                                                          | string   | Optional     |

# Actions

## Download Remote Directory files

Download files from a specified remote path via FTP or FTPS, with options to include subdirectories recursively and compress results into a single ZIP file.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                                                                                  |
| ----------------- | -------- | ------------ | ------------------------------------------------------------------------------------------------ |
| `remote_path`     | string   | Required     | Directory or file path on the server.                                                            |
| `recursive`       | boolean  | Optional     | When true, include files in subdirectories (MLSD-based walk after CWD into remote\_path).        |
| `compress`        | boolean  | Optional     | When true, return a single ZIP attachment instead of per-file bodies in the response json\_body. |

### Input Example

`{"remote_path":"/app/nrd/"}`

### Output

| **Parameter**          | **Type** | **Description**                                              |
| ---------------------- | -------- | ------------------------------------------------------------ |
| `status_code`          | number   | HTTP status code of the response                             |
| `reason`               | string   | Response reason phrase                                       |
| `file`                 | array    | Present when a single file is returned (Turbine attachment). |
| `file.file_data`       | string   | Response data                                                |
| `file.filename`        | string   | Name of the resource                                         |
| `remote_path`          | string   | Output field: remote\_path                                   |
| `count`                | number   | Count value                                                  |
| `files`                | array    | Output field: files                                          |
| `files.name`           | string   | Name of the resource                                         |
| `files.remote_path`    | string   | Output field: files.remote\_path                             |
| `files.size`           | number   | Output field: files.size                                     |
| `files.content_base64` | string   | Response content                                             |

### Output Example

`{"status_code":200,"reason":"OK","response_headers":{},"file":[{"filename":"test.txt","file_data":""}],"json_body":{"remote_path":"/app/nrd","count":1,"files":[{}]}}`

## List Remote Directory files

Retrieve a list of files from a specified remote directory using Secure File Transfer by providing the remote path.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                                                                           |
| ----------------- | -------- | ------------ | ----------------------------------------------------------------------------------------- |
| `remote_path`     | string   | Required     | Directory or file path on the server.                                                     |
| `recursive`       | boolean  | Optional     | When true, include files in subdirectories (MLSD-based walk after CWD into remote\_path). |

### Input Example

`{"remote_path":"/app/nrd/"}`

### Output

| **Parameter**       | **Type** | **Description**                  |
| ------------------- | -------- | -------------------------------- |
| `status_code`       | number   | HTTP status code of the response |
| `reason`            | string   | Response reason phrase           |
| `remote_path`       | string   | Output field: remote\_path       |
| `recursive`         | boolean  | Output field: recursive          |
| `files`             | array    | Output field: files              |
| `files.name`        | string   | Name of the resource             |
| `files.remote_path` | string   | Output field: files.remote\_path |
| `files.size`        | number   | Output field: files.size         |
| `count`             | number   | Count value                      |

### Output Example

`{"status_code":200,"reason":"OK","json_body":{"remote_path":"/var/test/","recursive":false,"files":[{},{},{}],"count":3}}`

## Upload Files to Remote Directory

Upload one or more files to a specified remote directory via FTP or FTPS, with optional override of the remote file name for the first attachment.

### Endpoint

- **Method:** `GET`

### Input

| **Argument Name** | **Type** | **Required** | **Description**                                |
| ----------------- | -------- | ------------ | ---------------------------------------------- |
| `file`            | object   | Required     | File to upload (Turbine attachment).           |
| `file.file`       | string   | Required     | Parameter for Upload Files to Remote Directory |
| `file.file_name`  | string   | Required     | Name of the resource                           |
| `remote_path`     | string   | Required     | Parameter for Upload Files to Remote Directory |

### Input Example

`{"file":{"file":"","file_name":"sample.txt"},"remote_path":"/var/test/"}`

### Output

| **Parameter**      | **Type** | **Description**                      |
| ------------------ | -------- | ------------------------------------ |
| `status_code`      | number   | HTTP status code of the response     |
| `reason`           | string   | Response reason phrase               |
| `success`          | boolean  | Whether the operation was successful |
| `remote_path`      | string   | Output field: remote\_path           |
| `remote_directory` | string   | Output field: remote\_directory      |
| `uploaded`         | array    | Output field: uploaded               |
| `count`            | number   | Count value                          |

### Output Example

`{"status_code":200,"response_headers":{},"reason":"OK","json_body":{"success":true,"remote_path":"/var/test/","remote_directory":"/var/test/","uploaded":["mytest123.txt"],"count":1}}`

# Response Headers

| **Header**   | **Description**                                       | **Example**                   |
| ------------ | ----------------------------------------------------- | ----------------------------- |
| Content-Type | The media type of the resource                        | application/json              |
| Date         | The date and time at which the message was originated | Thu, 01 Jan 2024 00:00:00 GMT |
