FormDexSecure form operations
Try FormDex
FormDexSecure form operations

A product by MeshDex

FormDex is a secure form operations platform for collecting, validating, and routing website submissions. Manage protected endpoints, email notifications, webhook delivery, and submission history from one reliable workspace.

Product

PlatformPricingDocumentation

Access

LoginRegisterReset password

Legal

Privacy PolicyTerms of ServiceRefund PolicyContact Us
  1. Home
  2. Documentation
  3. File attachments
Docs home

File attachments

Accept files without weakening your form.

Configure multipart uploads, enforce FormDex limits, and retrieve accepted files through authenticated submission records.

Availability and limits

Starter, Growth, and Scale plans

  • • Supported types: PDF, JPEG, and PNG.
  • • Maximum 5 files per submission.
  • • Maximum 5 MB per file and 20 MB combined.
  • • Free-plan submissions cannot include files.

Enable Settings › Protection › File attachments for each form. Both the active plan and the form-level toggle are enforced again when the request is accepted.

Native HTML

Use multipart form data

<form action="https://YOUR_FORMDEX_DOMAIN/api/forms/FORM_ID"
  method="POST" enctype="multipart/form-data">
  <input type="hidden" name="_api_key" value="YOUR_API_KEY" />
  <input type="email" name="email" required />
  <input type="file" name="attachments"
    accept=".pdf,.jpg,.jpeg,.png" multiple />
  <button type="submit">Send</button>
</form>

Repeat the same field name or use one input with multiple. FormDex accepts file parts independently of the text-field schema.

JavaScript and React

Send FormData unchanged

const body = new FormData(form);
const response = await fetch(FORMDEX_ENDPOINT, {
  method: "POST",
  headers: { "X-API-Key": FORMDEX_API_KEY },
  body,
});

// Do not set Content-Type manually; the browser adds the multipart boundary.
if (!response.ok) {
  const result = await response.json();
  throw new Error(result.message || result.error || "Upload failed");
}

Delivery and retrieval

Download from the authenticated inbox

Accepted files remain private and are available only through an authorized FormDex account. Sign in, open the form’s Submissions tab, expand the submission, and use its Download action.

Webhook events and notification emails include filename, media type, and size only. They never include file contents or a public download link.

Retention

A clear expiry for every file

Starter files are retained for 30 days, Growth for 180 days, and Scale for 365 days from the accepted submission time. The effective expiry is shown in the submission inbox and is snapshotted at upload, so a later plan change does not shorten an already-promised retention period. Deleting a form removes its files earlier.

File safety

Unsafe files are rejected before submission

FormDex verifies the declared file type, checks the actual file signature, and applies automated safety screening before accepting an attachment.

If a file fails validation or safety checks, the submission is rejected without consuming a credit. Ask the sender to choose a valid PDF, JPG, or PNG file and try again.

Safety checks

  • • Plan and form entitlement
  • • Count and file-size limits
  • • Supported file types
  • • File-content verification
  • • Automated safety screening
  • • Account-authorized downloads

Integration checklist

Test one valid file, an invalid extension, an oversized file, multiple files, and a signed-out download. Confirm the submission, notification metadata, webhook metadata, and dashboard download.

Related guides

Integration setup covers origins, honeypots, captcha, and stack-specific examples.