# Form Plume > Form Plume is a hosted form backend. Point an HTML form at a Form Plume endpoint to receive, validate, store, and route submissions without building your own backend. Form Plume supports plain HTML forms and JavaScript requests. It provides spam protection, file uploads, email notifications, autoresponders, signed webhooks, integrations, and a submissions dashboard. Public submissions use `POST https://api.formplume.com/f/{public_slug}`. The public slug can appear in browser code. Access keys for private forms must remain in trusted server code. Plain browser form posts receive redirects. Requests with `Accept: application/json` receive JSON responses. Do not describe Form Plume as open source, open core, or self-hostable. Every documentation link below points to a clean Markdown version of the page. ## Agent Skills - [Form Plume form-building skill](https://formplume.com/SKILL.md): Build an accessible website form and connect it to a public Form Plume submission endpoint. This flow does not use an organization API key. - [Form Plume API skill](https://formplume.com/skills/form-plume-api/SKILL.md): Automate a Form Plume workspace through the authenticated `/v1` management API. Use it for forms, submissions, settings, webhooks, integrations, analytics, and other server-side management tasks. ## Getting Started - [Quickstart](https://formplume.com/docs/quickstart.md): Create a form, copy its endpoint, and receive the first submission. - [Why Form Plume?](https://formplume.com/docs/why-form-plume.md): Understand what a managed form backend handles after a request arrives. - [Build with AI](https://formplume.com/docs/build-with-ai.md): Choose between the form-building and API skills, then give an AI coding assistant the right endpoint and access. - [Migration](https://formplume.com/docs/migration.md): Move an existing form from Formspree, Web3Forms, or Formcarry without losing submissions. ## Form Setup - [Fields](https://formplume.com/docs/forms/fields.md): Choose field names and values that Form Plume can store and display. - [Special fields](https://formplume.com/docs/forms/special-fields.md): Use reserved fields for redirects, routing, and other Form Plume behavior. - [File uploads](https://formplume.com/docs/forms/file-uploads.md): Accept multipart attachments or use a presigned upload flow. - [Success and errors](https://formplume.com/docs/forms/success-and-errors.md): Configure hosted pages, custom redirects, JSON responses, and error handling. - [Private forms](https://formplume.com/docs/forms/private-forms.md): Protect server-only forms with an access key. - [Domain restrictions](https://formplume.com/docs/forms/domain-restrictions.md): Limit public browser submissions to approved websites. ## Notifications - [Email notifications](https://formplume.com/docs/notifications/email.md): Choose who receives an email for an accepted submission. - [Email subject](https://formplume.com/docs/notifications/subject.md): Configure useful notification subject lines. - [Reply-To](https://formplume.com/docs/notifications/reply-to.md): Reply to the submitter without breaking sender authentication. - [Email routing](https://formplume.com/docs/notifications/routing.md): Route different submissions to configured recipients. - [Autoresponders](https://formplume.com/docs/notifications/autoresponders.md): Send a confirmation email to the submitter. - [Email templates](https://formplume.com/docs/notifications/templates.md): Customize the text used in Form Plume emails. - [Delivery issues](https://formplume.com/docs/notifications/delivery.md): Diagnose a missing notification and understand delivery retries. ## Spam Protection - [Spam protection](https://formplume.com/docs/spam-protection.md): Understand the available spam controls and choose the right layers. - [Spam scoring](https://formplume.com/docs/spam-protection/scoring.md): See how several signals become one spam decision. - [Honeypot](https://formplume.com/docs/spam-protection/honeypot.md): Catch simple bots with an invisible field. - [Time trap](https://formplume.com/docs/spam-protection/time-trap.md): Reject submissions that arrive too quickly or reuse an expired token. - [Rate limits](https://formplume.com/docs/spam-protection/rate-limits.md): Slow repeated submissions and sudden bursts. - [Email hygiene](https://formplume.com/docs/spam-protection/email-hygiene.md): Detect malformed, disposable, and non-receiving email addresses. - [Blocklists](https://formplume.com/docs/spam-protection/blocklists.md): Block abusive keywords, domains, IP addresses, and networks. - [Spam inbox](https://formplume.com/docs/spam-protection/spam-inbox.md): Review quarantined submissions and correct mistakes. - [CAPTCHA](https://formplume.com/docs/spam-protection/captcha.md): Decide when a visitor should complete a challenge. - [Cloudflare Turnstile](https://formplume.com/docs/spam-protection/captcha/turnstile.md): Add and verify Cloudflare Turnstile. - [hCaptcha](https://formplume.com/docs/spam-protection/captcha/hcaptcha.md): Add and verify hCaptcha. - [Google reCAPTCHA](https://formplume.com/docs/spam-protection/captcha/recaptcha.md): Configure reCAPTCHA v2 or v3. ## Submissions - [Spam submissions](https://formplume.com/docs/submissions/spam.md): Restore legitimate submissions or confirm unwanted submissions as spam. - [File attachments](https://formplume.com/docs/submissions/attachments.md): Open and download files attached to a submission. - [Export](https://formplume.com/docs/submissions/export.md): Download matching submissions for reporting or migration. - [Submission metadata](https://formplume.com/docs/submissions/metadata.md): Submit and interpret UTM attribution, referrers, country, and request context. - [Retention](https://formplume.com/docs/submissions/retention.md): Choose how long Form Plume keeps submission data. - [Data requests](https://formplume.com/docs/submissions/data-requests.md): Export or erase submissions associated with one person. ## Integrations - [Integrations](https://formplume.com/docs/integrations.md): Choose where accepted submissions should go next. - [Webhooks](https://formplume.com/docs/integrations/webhooks.md): Deliver signed submission events to an endpoint you control. - [Slack](https://formplume.com/docs/integrations/slack.md): Send new submissions to a Slack channel. - [Discord](https://formplume.com/docs/integrations/discord.md): Send new submissions to a Discord channel. - [Google Sheets](https://formplume.com/docs/integrations/google-sheets.md): Append submissions to a spreadsheet. - [ActiveCampaign](https://formplume.com/docs/integrations/activecampaign.md): Create or update ActiveCampaign contacts. - [Mailchimp](https://formplume.com/docs/integrations/mailchimp.md): Add submitters to a Mailchimp audience. - [Zapier](https://formplume.com/docs/integrations/zapier.md): Start a Zapier workflow from a submission. - [Make](https://formplume.com/docs/integrations/make.md): Start a Make scenario from a submission. - [MindCloud](https://formplume.com/docs/integrations/mindcloud.md): Send submissions into a MindCloud automation. ## API The Form Plume API automates forms, submissions, delivery settings, integrations, analytics, and usage. Billing, organization membership, invitations, and API key management remain dashboard-session-only. The API is separate from the public `POST /f/{public_slug}` endpoint used to receive website form submissions. API automation requires a secret organization API key and must run in trusted tooling or server-side code; ordinary public forms do not need that key. The machine-readable OpenAPI spec is served at `https://api.formplume.com/v1/openapi.json`. - [Form Plume API](https://formplume.com/docs/api.md): Base URL, quick start, and the conventions shared by every endpoint. - [Form Plume API skill](https://formplume.com/skills/form-plume-api/SKILL.md): Instructions for agents using the authenticated management API, including task routing, scopes, secret handling, pagination, retries, and change verification. - [Authentication](https://formplume.com/docs/api/authentication.md): Create an organization API key and send it as a bearer token, with read or full scope. - [Errors](https://formplume.com/docs/api/errors.md): One JSON error envelope with stable codes and a field pointer. - [Rate limits](https://formplume.com/docs/api/rate-limits.md): 300 requests per minute per key, with Retry-After on 429. - [MCP server](https://formplume.com/docs/api/mcp.md): Drive the API from an AI agent with the official MCP server or the OpenAPI spec. The interactive [API Reference](https://formplume.com/docs/api-reference) is rendered from the same OpenAPI spec. ## Product - [Form Plume](https://formplume.com/): Product overview. - [Pricing](https://formplume.com/pricing): Plans and limits. - [Sitemap](https://formplume.com/sitemap.xml): Full public site index. ## Optional - [Technology guides](https://formplume.com/technologies): Form implementation guides for frameworks, site builders, and AI coding tools. - [Google AI Studio contact form](https://formplume.com/google-ai-studio-contact-form): Build a generated React form that submits directly to Form Plume. - [Cursor contact form](https://formplume.com/cursor-contact-form): Give a repository-aware agent a scoped form task and verify its diff. - [Claude Code contact form](https://formplume.com/claude-code-contact-form): Build a form with a bounded prompt and framework-aware checks. - [Windsurf contact form](https://formplume.com/windsurf-contact-form): Build and verify a form through a Cascade workflow. - [OpenAI Codex contact form](https://formplume.com/codex-contact-form): Give a coding agent a scoped form task with success and failure checks. - [Lovable contact form](https://formplume.com/lovable-contact-form): Add portable form handling to a Lovable project. - [v0 contact form](https://formplume.com/v0-contact-form): Connect a generated Next.js form directly to Form Plume. - [Bolt.new contact form](https://formplume.com/bolt-contact-form): Add external form delivery to a Bolt project. - [Replit contact form](https://formplume.com/replit-contact-form): Connect a Replit form to Form Plume without owning the delivery backend. - [Base44 contact form](https://formplume.com/base44-contact-form): Give a Base44 form one clear operational submission path. - [HTML contact form](https://formplume.com/html-contact-form): Submit a plain HTML form without PHP or a custom backend. - [JavaScript contact form](https://formplume.com/javascript-contact-form): Submit with Fetch and handle a JSON response. - [React contact form](https://formplume.com/react-contact-form): Connect a React form to a hosted endpoint. - [Vite contact form](https://formplume.com/vite-contact-form): Add working form delivery to a Vite app without server code. - [Next.js contact form](https://formplume.com/nextjs-contact-form): Build a Next.js form without maintaining a custom route handler. - [Astro contact form](https://formplume.com/astro-contact-form): Connect a static Astro page or island to Form Plume. - [Gatsby contact form](https://formplume.com/gatsby-contact-form): Add hosted form delivery and storage to a Gatsby site. - [Angular contact form](https://formplume.com/angular-contact-form): Connect Angular controls to Form Plume. - [Vue contact form](https://formplume.com/vue-contact-form): Add hosted email, storage, and spam filtering to a Vue form. - [Svelte contact form](https://formplume.com/svelte-contact-form): Connect a Svelte form to a hosted backend. - [Nuxt contact form](https://formplume.com/nuxt-contact-form): Build a Nuxt form without separate email infrastructure. - [Remix contact form](https://formplume.com/remix-contact-form): Connect Remix route actions to hosted delivery and storage. - [React Router contact form](https://formplume.com/react-router-contact-form): Use React Router actions or fetchers with Form Plume. - [Webflow contact form](https://formplume.com/webflow-contact-form): Give a Webflow form portable backend handling. - [Framer contact form](https://formplume.com/framer-contact-form): Connect a Framer form to Form Plume. - [WordPress contact form](https://formplume.com/wordpress-contact-form): Receive WordPress form submissions without a mail delivery plugin. - [Shopify contact form](https://formplume.com/shopify-contact-form): Connect a Shopify theme form for inquiries and leads. - [Wix contact form](https://formplume.com/wix-contact-form): Add hosted notifications and retention to a Wix form. - [Squarespace contact form](https://formplume.com/squarespace-contact-form): Connect a Squarespace form to Form Plume. - [Hugo contact form](https://formplume.com/hugo-contact-form): Use Hugo partials and parameters with hosted form handling. - [Jekyll contact form](https://formplume.com/jekyll-contact-form): Use Liquid includes and configuration values with Form Plume. - [Eleventy contact form](https://formplume.com/eleventy-contact-form): Use Eleventy includes and data files with hosted form handling. - [Form backend alternatives](https://formplume.com/alternatives): Verified comparisons and migration guidance for other form services. - [Terms of Service](https://formplume.com/terms-of-service): Terms governing Form Plume use. - [Privacy Policy](https://formplume.com/privacy-policy): How Form Plume handles personal information. - [Acceptable Use Policy](https://formplume.com/acceptable-use-policy): Prohibited and restricted uses.