Zapier FTP Alternative: Upload Files and Get Public URLs
FTP still appears in automation workflows because it solves a simple problem: put a file somewhere another system can reach it. But in Zapier, FTP often creates more work than it removes. You need a server, credentials, directories, permissions, public hosting, cleanup, and a way to turn the uploaded file into a URL.
A file upload API is usually a cleaner replacement. Send the file to an API, get a public CDN URL back, and pass that URL into the next Zapier step.
This guide shows how to use FilePost as a Zapier FTP alternative for workflows that need file handoff, public links, and predictable cleanup.
Why FTP Is Awkward in Zapier
FTP is a transport protocol, not a product workflow. It moves files, but it does not solve the follow-up problems that automations usually need.
- No automatic public URL. Uploading to FTP does not automatically tell Zapier which HTTPS URL to store.
- Server maintenance. Someone has to run the FTP or SFTP server, patch it, monitor it, and handle credentials.
- Path mistakes. A workflow can upload to the wrong directory or overwrite a file if naming is not handled carefully.
- Cleanup is manual. Old generated files pile up unless you build another cleanup process.
- Security is easy to get wrong. Long-lived shared credentials are common in FTP workflows.
If your real requirement is "make this file available at a URL," a file hosting API is closer to the job.
The FilePost Pattern
FilePost turns a file into a public CDN URL. The upload response includes the URL and file ID, so later Zapier steps can save the link, email it, post it to Slack, update Airtable, or attach it to a CRM record.
The core request looks like this:
POST https://filepost.dev/v1/upload
X-API-Key: fh_your_api_key
Body: multipart/form-data with file=@your-file.pdf
The response:
{
"file_id": "a1b2c3d4e5f6",
"url": "https://cdn.filepost.dev/file/filepost/uploads/a1/a1b2c3/your-file.pdf",
"name": "your-file.pdf",
"size": 248120,
"content_type": "application/pdf"
}
Example Workflow: Form Attachment to Public URL
A common Zap looks like this:
- Trigger: A form submission arrives from Typeform, Tally, Jotform, or another form tool.
- File step: Zapier receives a file object or a temporary attachment URL.
- Upload: FilePost uploads the file and returns a permanent public URL.
- Store: Zapier writes the URL to Airtable, Google Sheets, HubSpot, Notion, or your database.
- Notify: Zapier sends Slack or email with the FilePost URL.
The important change is that downstream tools receive a normal HTTPS URL, not an FTP path and not a temporary signed attachment link.
Using Webhooks by Zapier
If you are using Webhooks by Zapier, configure a custom request:
| Setting | Value |
|---|---|
| Method | POST |
| URL | https://filepost.dev/v1/upload |
| Header | X-API-Key: fh_your_api_key |
| Body type | multipart/form-data |
| File field | file |
After the step runs, use the returned url field in the rest of the Zap.
Using Base64 JSON When Multipart Is Hard
Some automation steps produce a base64 string instead of a file object. In that case, use FilePost's base64 endpoint:
POST https://filepost.dev/v1/upload/base64
X-API-Key: fh_your_api_key
Content-Type: application/json
{
"filename": "invoice.pdf",
"content_type": "application/pdf",
"data_base64": "JVBERi0xLjQKJ..."
}
See the full base64 upload guide for cURL, JavaScript, and Python examples.
FTP vs File Upload API
| Need | FTP | FilePost API |
|---|---|---|
| Upload a file | Yes | Yes |
| Return public URL immediately | No, you build it yourself | Yes |
| No server to maintain | No | Yes |
| List uploaded files | Manual or server-specific | API endpoint |
| Delete uploaded files | Manual or server-specific | API endpoint |
| Works well in no-code automations | Often awkward | Designed for it |
Good Zapier Use Cases
- Lead forms: save resumes, screenshots, or project briefs to a permanent URL.
- Invoices: upload generated PDFs and send a link to the customer.
- Support tickets: host attachments and add URLs to Zendesk, Linear, Jira, or a spreadsheet.
- AI workflows: upload generated images, CSVs, or documents and pass the URL to another tool.
- Airtable records: replace expiring attachment URLs with permanent FilePost URLs.
Cleanup Strategy
If the file is a long-term record, keep it permanently. If it is a temporary handoff, include an expiration value when you upload or delete it later through the API.
curl -X DELETE https://filepost.dev/v1/files/a1b2c3d4e5f6 \
-H "X-API-Key: fh_your_api_key"
That gives you the practical part FTP does not solve: the workflow can own the file lifecycle from upload to cleanup.
Replace FTP with a File URL API
Upload files from Zapier and get a public CDN URL back in the same workflow step.
Get Your API Key