> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://apidocs.polytomic.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://apidocs.polytomic.com/_mcp/server.

# SFTP

Supports:
* ✅ Bulk sync source




## Connection

### Configuration
<table>
<thead>
<tr>
<th>Name</th><th>Type</th><th>Description</th><th>Required</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>auth_mode</code></td>
<td><code>string</code></td>
<td style="vertical-align: top;">Authentication method<br/><br/>Accepted values: `private_key` <a href="#auth-mode-private-key">↓</a>, `password` <a href="#auth-mode-password">↓</a></td>
<td><code>true</code></td>
</tr>
<tr>
<td><code>is_single_table</code></td>
<td><code>boolean</code></td>
<td style="vertical-align: top;">Files are time-based snapshots<br/><br/>Treat the files as a single table. <a href="#is-single-table">↓</a></td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>path</code></td>
<td><code>string</code></td>
<td style="vertical-align: top;">Path<br/><br/>The path to the directory on the SFTP server containing the files.</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>skip_lines</code></td>
<td><code>integer</code></td>
<td style="vertical-align: top;">Skip first lines<br/><br/>Skip first N lines of each CSV file.</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>ssh_host</code></td>
<td><code>string</code></td>
<td style="vertical-align: top;">Host</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>ssh_port</code></td>
<td><code>integer</code></td>
<td style="vertical-align: top;">Port</td>
<td><code>false</code></td>
</tr>
<tr>
<td><code>ssh_user</code></td>
<td><code>string</code></td>
<td style="vertical-align: top;">User</td>
<td><code>false</code></td>
</tr>
</tbody>
</table>

<h4 id="is-single-table">`is_single_table`</h4>

<h5 id="is-single-table-true">When `is_single_table` is `true`</h5>

<table>
<thead>
<tr>
<th>Name</th><th>Type</th><th>Description</th><th>Required</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>single_table_name</code></td>
<td><code>string</code></td>
<td style="vertical-align: top;">Collection name</td>
<td><code>false</code></td>
</tr>
</tbody>
</table>


<h4 id="auth-mode">`auth_mode`</h4>

<h5 id="auth-mode-password">When `auth_mode` is `password`</h5>

<table>
<thead>
<tr>
<th>Name</th><th>Type</th><th>Description</th><th>Required</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ssh_password</code></td>
<td><code>string</code></td>
<td style="vertical-align: top;">Password</td>
<td><code>true</code></td>
</tr>
</tbody>
</table>

<h5 id="auth-mode-private-key">When `auth_mode` is `private_key`</h5>

<table>
<thead>
<tr>
<th>Name</th><th>Type</th><th>Description</th><th>Required</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>ssh_private_key</code></td>
<td><code>string</code></td>
<td style="vertical-align: top;">Private key</td>
<td><code>true</code></td>
</tr>
</tbody>
</table>



#### Example

```json
{
  "name": "SFTP connection",
  "type": "sftp",
  "configuration": {
    "auth_mode": "private_key",
    "is_single_table": false,
    "path": "/path/to/files",
    "skip_lines": 0,
    "ssh_host": "sftp.example.net",
    "ssh_port": 22,
    "ssh_private_key": "",
    "ssh_user": "user"
  }
}
```



## Bulk Sync
### Source
SFTP connections may be used as a bulk sync source. No additional configuration options are required.