Project briefs
Receive a PDF alongside the client’s goals and contact details. Start the conversation with the context already in one place.
Private file attachments · Pro
Collect PDFs, screenshots and documents with your contact form on Pro. Store attachments with each submission, download them privately and choose when files expire.
250 submissions/month free. No credit card required.
A project brief, a screenshot, or a small document.
Up to 3 files. 5 MiB each. 10 MiB combined.
Choose small files to preview the attachment limits. Nothing is uploaded.
Private file storage is included with Pro.
Receive a PDF alongside the client’s goals and contact details. Start the conversation with the context already in one place.
Let a visitor show what they are seeing. Read the message and its image together instead of asking for a separate email.
Accept supported text and CSV files when a message needs structured detail. Clear limits keep expectations simple.
Start free with 250 submissions a month, spam protection and email delivery tracking. Pro adds private file uploads and 10,000 monthly submissions, shared across your forms, for $12/month or $120/year.
Collect project briefs and screenshots with 5 GiB of private storage included. Uploads require Pro: up to 3 files per submission, 5 MiB each and 10 MiB total. Extra usage is optional, with a monthly spending cap you choose.
Enable uploads on a Pro form, choose file retention, and copy the endpoint from your connection guide. A native HTML upload uses multipart encoding. The example below starts without Turnstile; add its generated widget markup if you enable protection.
<form action="https://api.formkoi.com/f/YOUR_PUBLIC_FORM_KEY" method="POST" enctype="multipart/form-data">
<label for="name">Your name</label>
<input id="name" name="name" autocomplete="name" required>
<label for="email">Email address</label>
<input id="email" name="email" type="email" autocomplete="email" required>
<label for="message">Your message</label>
<textarea id="message" name="message" required></textarea>
<label for="attachments">Attachments (optional)</label>
<input id="attachments" name="attachments" type="file" multiple accept=".pdf,.png,.jpg,.jpeg,.webp,.txt,.csv" aria-describedby="attachments-help">
<p id="attachments-help">Up to 3 files. 5 MiB each, 10 MiB total.</p>
<!-- Leave this hidden anti-spam field empty. -->
<input type="text" name="botcheck"
tabindex="-1" autocomplete="off" style="display:none" hidden>
<button type="submit">Send message</button>
</form>For JavaScript, send a FormData body and let the browser set Content-Type. Files cannot be preserved by converting the form to ordinary JSON. Read the upload guide.
| Limit | What’s included |
|---|---|
| Plan | Pro, with 5 GiB of private storage included and $0.25 per GiB beyond that with extra usage on |
| Files per submission | Up to 3 |
| File size | Up to 5 MiB per file, 10 MiB combined |
| Supported formats | PDF, PNG, JPEG, WebP, UTF-8 plain text and CSV |
| File expiry | Choose 1–365 days for new attachments |
File expiry is separate from message expiry. Choose a lifetime that gives you time to review and download what you need. Compare Free and Pro.
Frequently asked questions
Attachments use private storage and are accessed through the workspace’s download flow. They are not a public file-hosting service.
The accept attribute helps visitors choose a suitable file, but it is not a security check. The server independently checks supported content and limits for real uploads.
No. The supported formats and size limits are intended for small documents and images. Videos and ZIP archives are not supported by this upload flow.
It is no longer available to download. Message retention is configured separately, so a message may remain after its attachment has expired. Download needed files before their expiry.
Start with Form Koi Free