Forms2sheetForms2sheet

Forms2sheet

Forms to Google Sheets in one endpoint

Connect a sheet, generate a POST URL, and watch submissions appear as rows.

View docs

Four steps. Zero backend.

Forms2sheet is a lightweight submission backend that writes straight to your spreadsheet.

01

Connect Google Sheets

Pick any spreadsheet with Google Picker. No Zapier. No CSV exports.

02

Generate an endpoint

Every form gets a stable POST URL you can drop into any site or backend.

03

Send submissions

JSON or multipart. Field names become columns. File inputs upload to Drive.

04

Data lands in Sheets

Rows append instantly. Headers are created when the sheet is empty.

Everything you need to collect & store

From spam controls to webhooks, built in so you can ship forms without standing up a backend.

Stable form endpoints

Each form gets a permanent POST URL. Point HTML forms, fetch calls, or server-side code at it. No API keys to rotate or leak.

Google Sheets sync

Connect any spreadsheet with Google Picker. New fields become columns; empty sheets get headers on the first submission.

JSON & multipart

Accept application/json or multipart/form-data. Text names map 1:1 to sheet columns; file fields upload to Google Drive with links in the sheet.

Attachments

File inputs upload to a Drive folder per form. Sheet cells get clickable links; multiple files on one field land as newline-separated links.

Domain allowlists

Lock submissions to trusted Origin or Referer hosts. Leave empty for quick testing; tighten before you go live.

Optional CAPTCHA

Turn on reCAPTCHA or Cloudflare Turnstile when spam shows up. Tokens via form fields or the X-Captcha-Token header.

Svix webhooks

Get submission.created, submission.failed, and form.updated with delivery history, retries, and a hosted portal.

Redirects & thank-you pages

Send HTML posts to your own URL, or show a custom success message on /thanks. JSON clients still get a clean success payload.

Email notifications

Wire up SMTP per form and get an email when someone submits, so you don’t have to watch the sheet.

Auto responder

Send a custom HTML reply to the submitter with {{field}} placeholders for any submitted value, plus form and submission metadata.

Submission analytics

See volume over time in the dashboard so you know which forms are active, without opening the spreadsheet.

Fair-use rate limits

Abuse is rate-limited automatically. Unlimited forms with fair-use unlimited submissions. See Fair Usage for the details.

Copy, paste, collect

Drop in a plain HTML form. Field names become sheet columns.

<form
  action="https://forms2sheet.com/api/forms/frm_abc123/submit"
  method="POST"
>
  <input name="name" placeholder="Name" required />
  <input name="email" type="email" placeholder="Email" required />
  <button type="submit">Send</button>
</form>

Simple annual pricing

One plan. Everything included - current and future features. No feature gating. 14 days free (no card), then $49/year.

Annual

$49/year

14-day free trial on signup · no card required

  • Unlimited forms
  • Fair-use unlimited submissions
  • Stable form endpoints
  • Google Sheets sync
  • JSON & multipart submissions
  • File attachments to Drive
  • Domain allowlists
  • Optional CAPTCHA
  • Svix webhooks
  • Redirects & thank-you pages
  • Email notifications
  • Auto responder
  • Submission analytics
  • All future features — no gating

FAQ

Do I need an API key?

No. Your form ID is the endpoint. Lock it down with allowed domains and optional CAPTCHA.

How much does it cost?

$49/year after a 14-day free trial (no card required). After the trial you need a subscription or lifetime code to keep using the product.

Is there a submission limit?

Unlimited forms and fair-use unlimited submissions on every plan. Abuse is rate-limited. See Fair Usage.

What about lifetime / AppSumo codes?

Redeem a lifetime code in Settings after signing in. Lifetime access has the same features as the annual plan.

What about Google quotas?

We write through your Google account. Sheets API quotas and row limits still apply. See Google Limits.

Can I get webhooks?

Yes. Svix delivers submission.created, submission.failed, and form.updated with delivery history and retries.