The file boundary for AI workflows

Give the next AI step the file URL it expects.

When an agent creates base64, receives a buffer, or gets a temporary attachment URL, FilePost turns it into a public HTTPS URL with metadata your workflow can pass downstream.

Get free API key View the base64 request Binary · base64 · remote URL · optional expiry
An AI workflow passing a generated file to FilePost and a public URL to the next step

How an AI agent uploads a generated file and passes the URL downstream

AI and automation steps often handle JSON better than files. FilePost is the small storage boundary between the step that creates or receives the bytes and the API, browser, or tool that needs a URL.

Generated base64

Send an image, PDF, CSV, or other encoded artifact as JSON and receive a normal public URL response.

Temporary source URL

Copy a public attachment into FilePost before the upstream URL expires, with SSRF-safe URL ingestion.

Downstream handoff

Pass url, file_id, size, and content_type to the next tool or agent.

Upload generated base64 content

curl -X POST https://upload.filepost.dev/v1/upload/base64 \
  -H "X-API-Key: fh_your_server_side_key" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "agent-report.pdf",
    "content_type": "application/pdf",
    "data_base64": "JVBERi0xLjQK...",
    "expires_in": "7d"
  }'

Use /v1/upload when the agent already has binary data. Use /v1/upload/url when it has a public HTTP source. Each successful response includes the public URL and file metadata.

Choose permanent or temporary deliberately

Generated previews, intermediate screenshots, and review artifacts should usually have an explicit expiry. Assets that a website, API record, or customer workflow needs to reference later should omit expiry and keep the returned URL.

FilePost public URLs are public by link. Keep API keys in a server-side worker or an automation platform's secret store, and do not use a public URL as an access-control mechanism for sensitive data.

Use it where the workflow already lives

For ready-made paths, import the n8n starters, use the Pipedream recipe, or map the Zapier upload action. For an HTTP-only agent, the API reference is the complete contract.

Questions we actually get

Which endpoint should I use?

Use multipart /v1/upload for binary data, /v1/upload/base64 for encoded content, and /v1/upload/url for a public or temporary source URL.

Can a generated artifact expire?

Yes. Add expires_in such as 24h or 7d. The response includes expires_at so the next step can record the lifetime.

Can I put the API key in a browser agent?

Do not put a production API key in a public browser bundle. Use a server-side route, private worker, or an authenticated automation credential.

Stop making every agent reinvent file storage.

Give the workflow one authenticated upload step and let every later system consume a normal public URL.

Get free API key 1 provisional / 15 verified uploads per month · no credit card