---
title: "SFTP"
slug: "sftp"
description: "Connect SFTP to Dataddo and load CSV, JSON, XML, or Parquet files into any dashboard, database, or data warehouse. No coding required."
updated: 2026-07-09T08:37:42Z
published: 2026-07-09T08:37:42Z
canonical: "docs.dataddo.com/sftp"
---

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

# SFTP

**SFTP (SSH File Transfer Protocol)** transfers files over an encrypted SSH connection. The SFTP connector reads a file from your server and turns it into a Dataddo data source, so you can send its content to any dashboard, database, or data warehouse.

## Authorize Connection to SFTP

Before you can create a data source, connect Dataddo to your SFTP server.

1. On the **Authorizers** page, click on **Authorize New Service** and select **SFTP**.
2. Fill in the following fields:

| Field | Details |
| --- | --- |
| Label | A name for this authorizer in Dataddo. |
| Server IP or Hostname | Public IP or hostname of your SFTP server. |
| Username | Username for authentication. |
| Password | Password for authentication. Leave it empty when you use a certificate. |
| Port | Port to connect to SFTP. The default value is 22. |
| Timeout | Connection timeout in seconds. Default: `90`. |
| Use Certificate | Turn on to authenticate with a key instead of a password. |
| Certificate | The key for certificate-based authentication. You can upload or generate it under **Settings > Security**. |

1. Click on **Save**. Dataddo validates the connection before the authorizer is created.

## Supported File Formats

The connector reads one file per data source, in any of these formats:

| Format | Notes |
| --- | --- |
| CSV | Set the **CSV Delimiter**, whether the file has a **Header** row, an optional **Comment** character (lines starting with it are skipped), and **Lazy Quotes** for files with imperfect quoting. |
| JSON | An array of objects, one object per row. |
| XML | Repeated elements become rows. |
| Parquet | Columnar files exported from data platforms. |

Files can be plain or **GZIP**-compressed; set **File compression** accordingly.

## Selecting the File

When you create the source, point it at the file:

- **Path** - the directory that holds the file.
- **File name** - the name of the file to read.

The path and file name support **dynamic date placeholders**, so one source can follow files that are named by date. `{{today}}` and `{{yesterday}}` are replaced at run time; add a date format after `|` (the default is `Ymd`):

| File name mask | Resolves to |
| --- | --- |
| `report_{{today}}.csv` | `report_` followed by the current date, e.g. `report_20260709.csv` |
| `export_{{yesterday\\|Y-m-d}}.csv` | `export_` followed by yesterday's date, e.g. `export_2026-07-08.csv` |

## How Data Extraction Works

There is no date range for this connector. Every run downloads the file at the configured location (after resolving the date placeholders) and extracts its full current content.

The two most common setups:

- **One file that is updated in place**: schedule the source as often as the file changes and use the **replace** write mode in the flow, so the destination table mirrors the file.
- **A new date-stamped file every day**: use a `{{yesterday}}` mask in the file name, schedule the source daily, and use the **append** write mode. Each run adds one day's file, which builds the history over time.

## Transformation

Before the data reaches your destination, an **initial transformation** turns the parsed file into rows. Dataddo pre-fills it based on the selected file format and header settings. You can edit it in the **Transformation** editor when creating the source, for example to rename fields, unwind nested arrays, or drop columns. You can also switch the **Transformation Engine** to **jq** and write a [jq](https://jqlang.org/) expression instead.

## How to Create a SFTP Data Source

1. In Dataddo, open **Sources** and click **Create Source**.
2. Select **SFTP** and choose the **Authorizer** you created above.
3. Fill in the path and file name, using date placeholders if the file is named by date.
4. Select the **File Format** and its options (delimiter and header for CSV), and the **File compression** if the file is gzipped.
5. (Optional) Adjust the pre-filled **Transformation**.
6. Click **Test Data** to preview the result, then click **Save**.

## Troubleshooting

### Data Preview Unavailable

No data preview when you click on **Test Data** might be caused by an issue with your ***source*** configuration. The most common causes are:

- **Date range**: Try a smaller date range. You can load the rest of your data afterward via [manual data load](https://docs.dataddo.com/docs/data-backfilling).
- **Insufficient permissions**: Please make sure your authorized account has at least admin-level permissions.

## Related Articles

Now that you have successfully created a ***data source***, see how you can connect your data to a dashboarding app or a data storage.

**Sending Data to Dashboarding Apps**

- [Simple Data Integration to Dashboards](https://docs.dataddo.com/docs/simple-data-integration-to-dashboards)
- [Data Backfilling to Dashboarding Apps](https://docs.dataddo.com/docs/data-backfilling-to-dashboarding-apps)

**Sending Data to Data Storages**

- [Batch Ingestion to Data Warehouses](https://docs.dataddo.com/docs/ingestion-to-data-warehouses)
- [Data Backfilling to Storages](https://docs.dataddo.com/docs/data-backfilling-to-storages)

**Other Resources**

- [Troubleshooting](https://docs.dataddo.com/docs/troubleshooting)
- [Extraction Logs](https://docs.dataddo.com/docs/extraction-logs)
- [Data Duplication](https://docs.dataddo.com/docs/data-duplication)
