> ## Documentation Index
> Fetch the complete documentation index at: https://www.integrate.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ETL: SFTP Destination

> How to configure the SFTP destination component to write files to an SFTP server in your Integrate.io ETL pipeline.

The SFTP destination writes pipeline output to any Secure File Transfer Protocol (SFTP) server. It supports CSV, TSV, JSON, Parquet, and Fixed width output formats, with optional compression and PGP encryption.

Once your connection is set up, see [File Storage Options](/docs/etl/file-storage-options) for the full set of write options (output formats, compression, PGP, and more) shared across every file storage provider.

## Connection Setup

See [SFTP Source](/docs/etl/using-components-sftp-source#connection-setup) for steps to create and configure an SFTP connection in Integrate.io ETL, including firewall rules, authentication options, and SSH tunnel setup.

***

## Destination Configuration

### Connection

Select your SFTP connection from the dropdown, or create a new one.

### Target Directory

The path on the SFTP server where output files will be written. Paths must begin with `/`. Integrate.io prepends the slash automatically if omitted. One or more files are created in this directory. By default, the job fails if the directory already exists. Use [package variables](/docs/etl/using-and-setting-variables-in-your-packages) to generate unique directory names per run (e.g. `/output/${_JOB_ID}`).

<Note>
  SFTP has no bucket or container field. The path is relative to the SFTP server root.
</Note>

<Snippet file="snippets/file-storage-destination-options.mdx" />

***

## FAQ

**Which destination actions are available for SFTP?**

All five destination actions are available: fail if exists, delete and recreate, replace files, copy to existing directory (with character encoding), and copy to new directory.

**Can I write to a different SFTP server than the one I read from?**

Yes. The source and destination components each have their own connection. You can use different servers, credentials, or paths.

***

## Related

<CardGroup cols={2}>
  <Card title="SFTP Source" icon="arrow-right" href="/docs/etl/using-components-sftp-source" horizontal />

  <Card title="File Storage Options" icon="arrow-right" href="/docs/etl/file-storage-options" horizontal />

  <Card title="Integrate.io IP Address List" icon="arrow-right" href="/docs/etl/integrateio-etls-ip-list" horizontal />

  <Card title="SSH Tunnel Access" icon="arrow-right" href="/docs/etl/allowing-integrateio-etl-access-to-my-server-behind-a-firewall" horizontal />

  <Card title="Using Variables in Packages" icon="arrow-right" href="/docs/etl/using-and-setting-variables-in-your-packages" horizontal />

  <Card title="SFTPtoGo" icon="arrow-right" href="/docs/etl/allowing-access-to-my-file-data-on-sftptogo" horizontal />
</CardGroup>
