Turn a Zapier form upload into a CDN URL
The file starts as Zapier form file. Webhook step uploads the file. Map cdn url mapped into the next zap to the next step and keep the file ID beside the run for cleanup.
- Reviewed by
- GetFileURL technical team
- Updated
- Input
- Zapier form file
- Action
- Webhook step uploads the file
- Output
- CDN URL mapped into the next Zap
What this page answers
It turns a file already inside a workflow into a direct public URL that another API can fetch.
- Reviewed by
- GetFileURL technical team
- Last updated
One request in, a URL and JSON out
curl -X POST https://api.getfileurl.com/v1/files \
-H 'Authorization: Bearer $GETFILEURL_KEY' \
-F 'file=@workflow-output.pdf' \
-F 'visibility=public'{
"file_id": "file_8ks41p",
"url": "https://cdn.getfileurl.com/f/file_8ks41p/workflow-output.pdf",
"content_type": "application/pdf",
"expires_at": "2026-05-29T10:30:00Z"
}Make the file handoff visible.
A useful recipe shows four things: file in, upload request, returned URL, and cleanup handle.
Capture the file
Start from Zapier form file and keep the original content type when possible.
Upload and parse JSON
Keep the upload response visible as workflow data, not hidden inside a side effect.
Send onward
Pass the returned URL to cdn url mapped into the next zap and store the file ID for cleanup.
Validate the URL before the destination retries.
Most automation file issues are caused by a URL that looks fine in a browser but fails from a server-side API call.
Direct response
The URL should return file bytes, not an app preview, permission page, or redirect loop.
Useful headers
Content type, size, and disposition should match what the destination expects.
Enough retention
Expiry should account for queue delays, async processing, and retry branches.
Copy the same upload shape into code
curl -X POST https://api.getfileurl.com/v1/files \
-H 'Authorization: Bearer $GETFILEURL_KEY' \
-F 'file=@form-upload.png' \
-F 'visibility=public'Common questions
What does this recipe solve?
It turns a file already inside a workflow into a direct public URL that another API can fetch.
Should the URL be permanent?
Not by default. Use the shortest retention window that gives the destination enough time to fetch the file.
What should I log?
Log the returned URL, file ID, content type, size, expiry, and destination response status.