Host an AI-generated image long enough for the next APIURL
The file starts as AI image output. Upload image with short retention. Map image url for the next ai or social api to the next step and keep the file ID beside the run for cleanup.
- Reviewed by
- GetFileURL technical team
- Updated
- Input
- AI image output
- Action
- Upload image with short retention
- Output
- Image URL for the next AI or social API
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 AI image output 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 image url for the next ai or social api 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=@generated-image.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.