Client files without the email chain

Give every client a simple upload link.

Create a constrained FilePost intake page, collect the files your project needs, and keep your account API key on the server. Use permanent URLs for assets and expiry for previews.

Get free API key See the intake request Scoped upload page · file type, size, count, and expiry controls
A client upload link feeding an agency file workflow

One workflow for intake, review, and delivery

Agencies repeatedly receive logos, screenshots, contracts, exports, and review files. FilePost gives the project a durable file boundary without making every client create an account or sending an API key by email.

Collect

Create a hosted intake link with allowed extensions, a size limit, a file count, and a short expiry.

Review

Store a public URL for a client preview and let the storage layer remove it after the review window.

Deliver

Keep approved assets at stable URLs and map them into a CMS, project record, email, or downstream automation.

Create a constrained client upload link

Make the authenticated request from your server. Return only the hosted upload URL to the client.

curl -X POST https://filepost.dev/v1/intake-links \
  -H "X-API-Key: fh_your_server_side_key" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Northwind homepage review",
    "allowed_types": ["pdf", "png", "jpg", "zip"],
    "max_file_size_mb": 50,
    "max_files": 10,
    "expires_in": "7d"
  }'

The response includes upload_url. Open that hosted page for the client, or send files to the public intake endpoint from a permitted browser origin. Keep the API key on your server.

Use expiry where the job is temporary

For a design review or handoff, set expires_in to the shortest useful period. For approved campaign assets or a CMS record, omit expiry and retain the returned URL until the project no longer needs it.

FilePost URLs are public by link. Do not use them as identity-based access control, and do not upload confidential material unless the public-link boundary is appropriate for that project.

Connect it to the agency stack

Send intake events to your server with the optional webhook, then store the returned file URL in the project record. For ready-made automation paths, see the n8n workflow starters, Zapier app, or Pipedream guide.

Read the full secure browser upload guide and the intake-link API reference.

Questions we actually get

Does the client need an account?

No. The hosted intake page accepts the upload without giving the client your API key. The link itself is a bearer capability, so use a short expiry and share it only with the intended person.

Can I limit what clients send?

Yes. Set allowed extensions, a maximum file size, a maximum number of files, and an expiry when you create the link.

Can I be notified when a file arrives?

Yes. Set an HTTPS webhook URL on the intake link. FilePost sends the upload metadata after a successful intake upload.

Replace the attachment chase with one upload page.

Start with one client intake link. Add expiry for previews and keep permanent URLs for the assets that survive the project.

Get free API key Verify email to create intake links · no credit card