/submit endpoint pattern
and already identifies itself with a hidden access_key field.
In most cases, you only need to replace your existing Web3Forms access key with the
Formpaste access key for the form you create. This guide covers that swap and the
behavioral differences worth checking before you go live.
The core swap
A typical Web3Forms form uses the shared endpoint and includes anaccess_key in the
request body:
redirect
field. Replace the endpoint and use the access key for your Formpaste form:
name, email, and message - stay exactly as they
are. Formpaste identifies the destination form through the access_key, rather than
reserving names for your custom fields.
Get your Formpaste access_key (fp_…) by creating a form in the
dashboard, or by asking an agent to create one with
the MCP create_form tool. See Your first form
for the full setup walkthrough.
If you’re using Web3Forms with AJAX or fetch
The migration follows the same approach: send your existing form fields to Formpaste’s endpoint and include the Formpasteaccess_key in the request body.
200 with:
res.ok or data.success in the same place you currently handle a successful
Web3Forms response.
Mapping the rest of your setup
Differences worth knowing before you switch
Your field structure can stay the same. Web3Forms and Formpaste both use a shared submission endpoint plus anaccess_key field. That means the migration does not
require you to rename standard fields such as name, email, or message. Replace
the URL, replace the key, and keep the rest of your markup intact.
Redirects must point to an allowed domain. If your form currently includes a
redirect field, you can keep using that field with Formpaste. Update the URL to a
success page on your own site, then add the relevant domain to the form’s
domain allowlist.
No spam puzzles. Formpaste does not use CAPTCHA of any kind. It relies on
server-side heuristics including honeypots, timing, link density, rate, and
disposable-email checks. If you add a honeypot field, it must be named botcheck and
hidden with CSS using display:none - not type="hidden" - so basic bots can still
interact with it. See Preventing spam.
Suspicious submissions are quarantined. Formpaste does not simply discard a
submission that looks suspicious. It appears in the dashboard’s Spam tab, where you
can inspect it. On Free, this view is read-only; rescuing and re-delivering a false
positive is a Pro feature.
No general REST API. Formpaste does not provide a REST API for creating forms or
listing submissions. Create forms through the dashboard or the MCP create_form tool.
Read submissions in the dashboard, through CSV export, or with the MCP
list_submissions tool. See Retrieving submissions.
MCP support is available for agent-driven workflows. If you are using an
MCP-capable agent, such as Claude Code or Cursor, it can create a Formpaste form and
return a ready-to-use snippet. See MCP server and the
cookbook prompts.
After you switch
- Change the form
actionfromhttps://api.web3forms.com/submittohttps://api.formpaste.com/submit. - Replace your Web3Forms key with the Formpaste
access_keyfor the new form. - Keep your existing custom fields, including
name,email, andmessage. - Review any
redirectvalue and add its domain to the domain allowlist. - Verify the destination email address through its one-time OTP.
- Add a CSS-hidden
botcheckhoneypot if you want one, and remove any CAPTCHA widget or script. - Submit a real test and confirm it reaches both the dashboard inbox and your email.
- Check the Spam tab occasionally after launch in case a legitimate submission is quarantined.
Your first form
Create a form, get an access key, and verify its destination email.
Framework snippets
Formpaste examples for HTML, React, Next.js, Astro, Vue, and Svelte.
Preventing spam
Learn how Formpaste filters suspicious submissions without CAPTCHA.
Retrieving submissions
Use the dashboard, CSV export, or MCP tools to access submissions.