Developer-first Email Attachment Storage

Offload Email Attachments to Durable, Linkable Storage

Store email attachments with reliable access and global CDN delivery.

Transactional email providers were never built to be a file store. SES drops the raw MIME after delivery, SendGrid's Inbound Parse hands you the attachment once in a multipart webhook and then forgets it, and Postmark, Mailgun, and Resend behave the same way: the bytes exist for the duration of one HTTP callback and then they are gone. If a customer later asks for the PDF they emailed your support inbox, or your finance team needs the receipt a vendor mailed three months ago, there is nothing to retrieve. files.link gives those attachments a permanent home the moment they arrive.

The integration is a thin shim inside the webhook you already run. When SendGrid Inbound Parse, Mailgun routes, or a Gmail/Microsoft Graph push notification fires, you already have the attachment buffer in memory. Pipe it straight into the three-call upload: POST /v1/files/{folderId} with your raw API key in the Authorization header returns { success, urls:[{ url, id }] }; PUT the buffer to that presigned url; then POST /v1/files/confirm-upload with { ids:[id] }.

Store the returned permanent link next to the email's message-id in your database and you have a durable, deduplicated archive keyed by thread. Outbound is the mirror image: instead of stuffing a 9 MB invoice into the message body and tripping spam filters and the 25 MB Gmail ceiling, upload it first and drop a clean link in the email — deliverability improves and the recipient downloads from a global CDN instead of pulling a base64 blob through their mail client.

Organize by sender, customer, or ISO-week using folders so audits and GDPR data-subject requests become a single folder fetch rather than a mailbox grep. Sensitive attachments — signed agreements, ID scans — go to private files served only through short-lived signed URLs your backend mints per download, never a guessable public path. Everything is encrypted at rest and moves over TLS.

Because the links never expire, you run this migration once and your email plumbing stops being the system of record for files.

Benefits With No Complexity

Global CDN delivery

Your files are served from 450+ edge locations worldwide.

Edge-cached worldwide

Files are cached close to your users for fast delivery.

Signed-URL security

Private files stay protected with time-limited access.

What You Get

Unlimited files

Upload as many files as you need.

Unlimited storage

There is no storage limit.

Public + Private storage

Private files are fully secured.

CDN ready links

Upload directly to 450+ edge locations worldwide.

Prepaid credits

No subscription. Pay only for the storage and bandwidth you use.

More coming soon

We have plenty of features coming!

How files.link Works

1. Upload

Create a project and upload your first file.

2. Copy

Copy the CDN link.

3. Use Anywhere

Paste and enjoy the blazing speed.

Why Developers Choose files.link

A Better Way to Store & Deliver Files

Amazon S3SendGrid Inbound ParseGoogle Cloud Storagefiles.link
Keeps attachments after the email is processed
Permanent link to drop into outbound mail
Built-in CDN delivery to recipients
Capture directly from a parse webhook (3 calls)
Private files with signed-URL access
Prepaid credits (no per-request bill shock)

Calculate Your Needs

Storage

0GB

Egress

0GB

CDN Bandwidth

0GB
Total: $0.000/month

Start Storing Email Attachments

  • Global CDN delivery
  • Edge-cached worldwide
  • Signed-URL security
  • Unlimited files
  • Unlimited storage
  • Public + Private storage
  • No subscription — prepaid credits keep spend predictable
Start Storing Email Attachments

Frequently Asked Questions

How do I capture an attachment from a SendGrid or Mailgun inbound webhook?
Your parse webhook already receives the attachment as multipart form data. In the handler, read the file buffer, call POST /v1/files/{folderId} for a presigned URL, PUT the buffer to it, then POST /v1/files/confirm-upload with the file id. Save the returned permanent link against the email's message-id. The whole thing runs inside the request you already handle.
Should I keep emailing large files as attachments?
No. Uploading first and emailing a link sidesteps the 25 MB Gmail/Outlook attachment ceiling, improves deliverability because you are not shipping a large base64 payload, and lets the recipient download from a CDN instead of their mail server. The link is permanent so it keeps working long after the email is archived.
Can I keep sensitive attachments private?
Yes. Upload signed contracts, ID scans, or medical forms as private files. They have no public URL; your backend mints a short-lived signed URL only when an authorized user needs to download. Even if a link leaks it expires within minutes.
How do I organize attachments for an audit or GDPR request?
Use folders keyed by customer, sender domain, or time period. A data-subject access request then becomes a single folder fetch instead of searching across a mailbox, and a financial audit can pull an entire client's documents at once.
Is there a size limit on email attachments?
files.link handles files far larger than any mail server will ever accept, so inbound attachments are never the constraint — your mail provider's own limit is the bottleneck, and routing through storage removes it for outbound.
General Questions
Is there a subscription?
No. files.link uses prepaid credits, so storage, bandwidth, and API usage are deducted from your balance as you go. The app explains the payment step before uploads are enabled — no monthly subscription and no per-user fees.
What is files.link?
files.link is a developer-first file platform that makes it simple to store, secure, and deliver files globally. It provides signed URLs, public/private access, and an API-first design so you can integrate file delivery into any app without the usual complexity.
How does billing work?
files.link uses prepaid credits. As you use storage, bandwidth, and API requests, credits are deducted daily. When your balance runs low, we automatically recharge it using your saved card. If an auto-recharge doesn't go through, your files and links stay put — you simply update your payment method or top up manually to keep going. No monthly subscriptions — just simple usage-based pricing.
How secure is my data?
All files are encrypted at rest and in transit. You can use signed URLs for private files, control access with permissions, and rely on enterprise-grade infrastructure for data protection.

Related

files.link
Copyright © 2026
All rights reserved
ContactGuidesGlossaryStatusLegal