PushFTP/Docs

Getting Started

Everything you need to send files from Zapier (or any automation tool) to your SFTP server through PushFTP.

Quick start

1

Create an account

Sign up at pushftp.com/signup. Free plan includes 1 connection and 50 transfers/month.

2

Add your SFTP connection

Go to Dashboard → Add connection. Enter your server's hostname, port, username, and password (or SSH key). Click "Test Connection" to verify it works.

PushFTP encrypts all credentials with AES-256-GCM before storing them.

3

Whitelist the PushFTP IP

Add 178.104.35.54 to your server's firewall allowlist. This is the only IP that will ever connect to your server — it never changes.

4

Generate an API key

Go to Dashboard → API Keys → Generate. Copy the key — it's only shown once. It starts with pftp_.

5

Connect Zapier

See the Zapier guide below.

API Reference

Upload a file

POST https://pushftp.com/api/upload/{connectionId}

Authentication

Authorization: Bearer pftp_your_api_key

Option 1: Multipart form data

curl -X POST https://pushftp.com/api/upload/YOUR_CONNECTION_ID \
  -H "Authorization: Bearer pftp_your_key" \
  -F "[email protected]" \
  -F "path=/uploads/reports/"
filerequiredThe file to upload
pathoptionalRemote directory (defaults to connection's default path)
filenameoptionalOverride the filename

Option 2: JSON with base64

curl -X POST https://pushftp.com/api/upload/YOUR_CONNECTION_ID \
  -H "Authorization: Bearer pftp_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "report.csv",
    "content": "aGVsbG8gd29ybGQ=",
    "path": "/uploads/"
  }'
filenamerequiredName for the uploaded file
contentrequiredFile contents as base64 string
pathoptionalRemote directory

Response

{
  "success": true,
  "transfer": {
    "id": "abc123",
    "filename": "report.csv",
    "path": "/uploads/report.csv",
    "size": 1234,
    "durationMs": 350,
    "connection": {
      "id": "xyz789",
      "name": "Production SFTP",
      "type": "sftp"
    }
  }
}

Connecting Zapier

1

Create a Zap

Choose your trigger (e.g., "New Row in Google Sheets", "New Email in Gmail", etc.).

2

Add a "Webhooks by Zapier" action

Search for Webhooks by Zapier and select POST as the action event.

3

Configure the webhook

URLhttps://pushftp.com/api/upload/YOUR_CONNECTION_ID
Payload TypeForm
Data → file(map your file field from the trigger)
Data → path/uploads/ (or your preferred directory)
Headers → AuthorizationBearer pftp_your_api_key
4

Test and turn on

Click "Test step" in Zapier. If you see "success": true, your file was uploaded. Turn on the Zap and you're done.

Connecting Make (Integromat)

1

Add an HTTP module

In your scenario, add HTTP → Make a request.

2

Configure

URLhttps://pushftp.com/api/upload/YOUR_CONNECTION_ID
MethodPOST
Body typeMultipart/form-data
Fields → file(map your file)
HeadersAuthorization: Bearer pftp_your_api_key

Connecting n8n

1

Add an HTTP Request node

Set method to POST, URL to your upload endpoint.

2

Configure

AuthenticationHeader Auth → Authorization: Bearer pftp_your_key
Body Content TypeForm-Data
Body Parametersfile = (binary data from previous node)

FAQ

What file size limit is there?

Currently 50MB per upload. Need more? Contact us.

Can I upload to S3 or FTP (not just SFTP)?

Yes. PushFTP supports SFTP, FTP, and S3. Add any of these as a connection type.

What happens if the upload fails?

The API returns a detailed error response explaining what went wrong (unreachable server, auth failure, permission denied, etc.). Failed transfers are logged in your dashboard, and you'll get an email notification so nothing fails silently.

Is the fixed IP shared between customers?

Yes — all traffic goes through the same EU server. The IP never changes.

Do you store my files?

No. Files are forwarded immediately and never stored on our servers.