Contact forms for WordPress

Add a contact form to any WordPress page or post with a single Custom HTML block - no plugin to install or keep updated. Preview it live, copy the HTML, and paste it in. Submissions land in your inbox, spam filtered automatically.

How to create a WordPress form

  1. 1

    Create a form in your Formpaste dashboard and copy its access key.

  2. 2

    Edit a page or post and add a Custom HTML block (Gutenberg) or an HTML element in your builder.

  3. 3

    Copy the HTML above, paste it in, and replace YOUR_ACCESS_KEY_HERE with your access key.

Prompt for your AI coding agent

Give me a plain HTML contact form for a WordPress Custom HTML block that POSTs to https://api.formpaste.com/submit with a hidden access_key input. No plugin, no JavaScript required.

Or connect the Formpaste MCP server to Claude Code, Codex, Cursor, Claude Desktop, VS Code, or any mcp-remote client. See the setup guide.

Which editor you’re using

The form above is plain HTML, so it drops into whatever WordPress gives you. In the block editor (Gutenberg), add a Custom HTML block and paste it. In the Classic Editor, switch to the Text tab and paste. Page builders like Elementor, Divi, and Beaver Builder all have an HTML or Code widget that works the same way. There’s nothing to configure in wp-admin.

No plugin means nothing to maintain

A forms plugin is code running inside WordPress that has to be kept updated, stays compatible with your theme and PHP version, and is a common target for vulnerabilities. A Custom HTML block is inert markup - it can’t break on the next WordPress or plugin update because there’s nothing to update. Your form posts straight to Formpaste, where spam is filtered automatically and every verified submission is delivered to your inbox and stored in your dashboard.

Styling it to match your theme

The snippet is unstyled by default so it inherits your theme. Want it to match your site exactly? Switch the styling toggle above to CSS or Tailwind and paste the styled version instead, or add your own classes - the field names are all that matter to Formpaste.

How it works

Three simple steps for form submissions to land in your email inbox.
Create your form, set your form's action URL to Formpaste's endpoint, and add your access key.

1

Create your form

Sign up, verify your email, and create an access key in your dashboard.

2

Copy the code

Paste the snippet above into your project. Pick CSS or Tailwind to match your site.

<form action="https://api.formpaste.com/submit" method="POST" class="mx-auto flex w-full max-w-md flex-col gap-4 rounded-xl border border-gray-200 bg-white p-6 shadow-sm dark:border-gray-800 dark:bg-gray-950">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Name
    <input type="text" name="name" placeholder="Your name" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Email
    <input type="email" name="email" placeholder="you@example.com" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Message
    <textarea name="message" required class="min-h-28 rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100"></textarea>
  </label>
  <button type="submit" class="w-full rounded-md bg-gray-900 px-4 py-2 text-sm font-medium text-white shadow-sm transition-colors hover:bg-gray-800 disabled:opacity-60 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-200">Send</button>
</form>
3

Add your access key

Replace the placeholder with your access key to start receiving submissions.

<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">

Paste a form. Get submissions.

Instantly without setting up any backend, servers or databases. 250 submissions/mo free - no credit card.

What you get with Formpaste

No server, no DNS

Point your form at Formpaste - no backend, no DNS, no email server to run.

Spam filtered automatically

Heuristics + a quarantine folder you control. Real messages always get through.

Quarantine you control

Suspicious submissions land in a folder you review - nothing silently dropped.

Built for AI agents

An MCP server your coding agent calls to create a form and wire it up.

Copy-paste components

Accessible, copy-paste form code for HTML, React, TypeScript, JavaScript, and Astro.

Simple dashboard

Manage forms, inbox, quarantine, and delivery from one place.

Other platforms